PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __00485C5Ah
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [0049AA04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [0049ABA4h] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__0040688Ch ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [0049ADF8h]
RET
NOP
__SkipFirsts:
(...)
PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __00485B6Ah
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [0049AA04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [0049ABA4h] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__0040688Ch ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [0049ADF8h]
RET
NOP
__SkipFirsts:
(...)
PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __0048AC51h
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [0049FA04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [0049FB8Ch] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__004068ACh ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [0049FDD0h]
RET
NOP
__SkipFirsts:
(...)
PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __0048AD6Dh
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [0049FA04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [0049FB8Ch] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__004068B4h ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [0049FDD0h]
RET
NOP
__SkipFirsts:
(...)
PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __004895DDh
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [0049FA04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [0049FB8Ch] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__004068BCh ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [0049FDD0h]
RET
NOP
__SkipFirsts:
(...)
PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __00489FADh
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [004A0A04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [004A0B8Ch] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__004068D0h ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [004A0DD0h]
RET
NOP
__SkipFirsts:
(...)
PUSH ESI
XOR ESI, ESI
TEST DL, DL
JZ __0048C675h
CMP BYTE PTR [EAX+10h], 0
JZ __SkipFirsts
PUSH EDI
MOV EDI, ESI
INC EDI
MOV ECX, EDI
__KeysLoop:
MOV EDX, [004A0A04h]
MOV EDX, [EDX]
TEST BYTE PTR [EDX+15Eh], CL
JE __DontSet
MOV ESI, EDI
__DontSet:
INC EDI
SHL ECX, 1
CMP ECX, 8
JLE __KeysLoop
POP EDI
JMP __SkipFirsts
PROC__CatchKBState:
MOV EAX, [004A0B8Ch] ; TLcfgSystem
MOV EAX, [EAX]
CMP DWORD PTR [EAX+24h], 4256 ; Does Variable 4256 exist?
JB __SkipKBState
MOV EAX, [EAX+28h] ; Variables Array
ADD EAX, 16000 ; Point to Address of Variable 4001
PUSH EAX
PUSH EAX
CALL PROC__004068D0h ; user32::GetKeyboardState
POP EAX
XOR ECX, ECX
MOV CL, 255
__LoopRebuild:
MOVZX EDX, BYTE PTR [EAX+ECX]
MOV DWORD PTR [EAX+ECX*4], EDX
DEC ECX
JGE __LoopRebuild
__SkipKBState:
MOV EAX, [004A0DD0h]
RET
NOP
__SkipFirsts:
(...)