Function at 0x41fd20
Capabilities:
Parse pe header

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4bd3d8
push eax
mov dword fs:[0], esp
mov eax, str.KEY_ESCAPE
mov dword [esp + 8], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41fd45
sub eax, edx
push eax
mov eax, dword [esp + 0x28]
push str.KEY_ESCAPE
push eax
push 0
lea ecx, [esp + 0x20]
call fcn.00401470
test eax, eax
jne 0x41fd92
cmp dword [esp + 0x28], 0x10
jb 0x41fd7c
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004ade5d
add esp, 4
mov eax, 1
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
mov eax, str.KEY_1
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41fda0
sub eax, edx
mov edx, dword [esp + 0x24]
push eax
push str.KEY_1
push edx
push 0
lea ecx, [esp + 0x20]
call fcn.00401470
test eax, eax
jne 0x41fded
cmp dword [esp + 0x28], 0x10
jb 0x41fdd7
mov eax, dword [esp + 0x14]
push eax
call fcn.004ade5d
add esp, 4
mov eax, 2
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
mov eax, str.KEY_2
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41fdf5
mov ecx, dword [esp + 0x24]
sub eax, edx
push eax
push str.KEY_2
push ecx
push 0
lea ecx, [esp + 0x20]
call fcn.00401470
test eax, eax
jne 0x41fe42
cmp dword [esp + 0x28], 0x10
jb 0x41fe2c
mov edx, dword [esp + 0x14]
push edx
call fcn.004ade5d
add esp, 4
mov eax, 3
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_3
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x41fe77
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 4
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_4
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x41feac
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 5
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_5
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x41fee1
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 6
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_6
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x41ff16
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 7
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_7
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x41ff4b
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 8
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_8
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x41ff80
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 9
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_9
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x41ffb5
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0xa
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_0
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x41ffea
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0xb
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_MINUS
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42001f
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0xc
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_EQUALS
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420054
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0xd
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_BACK
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420089
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0xe
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_TAB
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4200be
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0xf
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_Q
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4200f3
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x10
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_W
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420128
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x11
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_E
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42015d
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x12
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_R
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420192
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x13
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_T
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4201c7
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x14
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_Y
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4201fc
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x15
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_U
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420231
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x16
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_I
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420266
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x17
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_O
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42029b
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x18
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_P
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4202d0
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x19
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_LBRACKET
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420305
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x1a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_RBRACKET
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42033a
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x1b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_RETURN
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x42036f
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x1c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_LCONTROL
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4203a4
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x1d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_A
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4203d9
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x1e
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_S
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x42040e
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x1f
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_D
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420443
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x20
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420478
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x21
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_G
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4204ad
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x22
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_H
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4204e2
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x23
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_J
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420517
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x24
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_K
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x42054c
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x25
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_L
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420581
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x26
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_SEMICOLON
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4205b6
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x27
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_APOSTROPHE
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4205eb
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x28
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_GRAVE
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420620
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x29
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_LSHIFT
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420655
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x2a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_BACKSLASH
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x42068a
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x2b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_Z
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4206bf
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x2c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_X
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4206f4
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x2d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_C
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420729
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x2e
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_V
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42075e
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x2f
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_B
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420793
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x30
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_N
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4207c8
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x31
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_M
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4207fd
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x32
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_COMMA
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420832
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x33
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_PERIOD
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420867
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x34
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_SLASH
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42089c
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x35
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_RSHIFT
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4208d1
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x36
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_MULTIPLY
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420906
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x37
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_LMENU
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42093b
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x38
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_ALT
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420970
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x39
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_SPACE
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4209a5
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x3a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_CAPITAL
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4209da
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x3b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F1
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420a0f
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x3c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_F2
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420a44
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x3d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_F3
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420a79
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x3e
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F4
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420aae
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x3f
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_F5
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420ae3
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x40
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_F6
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420b18
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x41
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F7
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420b4d
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x42
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_F8
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420b82
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x43
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_F9
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420bb7
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x44
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F10
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420bec
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x45
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NUMLOCK
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420c21
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x46
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_SCROLL
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420c56
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x47
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_NUMPAD7
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420c8b
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x48
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NUMPAD8
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420cc0
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x49
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_NUMPAD9
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420cf5
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x4a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_SUBTRACT
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420d2a
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x4b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NUMPAD4
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420d5f
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x4c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_NUMPAD5
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420d94
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x4d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_NUMPAD6
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420dc9
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x4e
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_ADD
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420dfe
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x4f
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_NUMPAD1
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420e33
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x50
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_NUMPAD2
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420e68
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x51
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NUMPAD3
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420e9d
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x52
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_NUMPAD0
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420ed2
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x53
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_DECIMAL
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420f07
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x54
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_OEM_102
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420f3c
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x55
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_F11
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420f71
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x56
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F12
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x420fa6
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x57
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_F13
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x420fdb
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x58
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_F14
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421010
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x59
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_F15
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421045
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x5a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_KANA
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x42107a
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x5b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_ABNT_C1
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4210af
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x5c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_CONVERT
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4210e4
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x5d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NOCONVERT
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x421119
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x5e
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_YEN
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42114e
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x5f
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_ABNT_C2
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421183
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x60
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NUMPADEQUALS
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4211b8
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x61
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_PREVTRACK
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4211ed
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x62
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_AT
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421222
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x63
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_COLON
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x421257
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x64
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_UNDERLINE
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42128c
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x65
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_KANJI
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4212c1
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x66
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_STOP
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4212f6
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x67
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_AX
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42132b
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x68
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_UNLABELED
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421360
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x69
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_NEXTTRACK
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x421395
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x6a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_NUMPADENTER
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4213ca
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x6b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_RCONTROL
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4213ff
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x6c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_MUTE
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x421434
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x6d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_CALCULATOR
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421469
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x6e
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_PLAYPAUSE
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42149e
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x6f
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_MEDIASTOP
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4214d3
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x70
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_VOLUMEDOWN
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421508
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x71
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_VOLUMEUP
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42153d
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x72
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_WEBHOME
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x421572
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x73
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_NUMPADCOMMA
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4215a7
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x74
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_DIVIDE
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4215dc
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x75
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_SYSRQ
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x421611
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x76
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_RMENU
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421646
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x77
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_PAUSE
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42167b
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x78
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_HOME
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x4216b0
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x79
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_UP
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4216e5
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x7a
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_PRIOR
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x42171a
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x7b
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea eax, [esp + 0x10]
push str.KEY_LEFT
push eax
call fcn.00401dc0
add esp, 8
test al, al
je 0x42174f
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x7c
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea ecx, [esp + 0x10]
push str.KEY_RIGHT
push ecx
call fcn.00401dc0
add esp, 8
test al, al
je 0x421784
lea ecx, [esp + 0x10]
call fcn.00401b90
mov eax, 0x7d
mov ecx, dword [esp]
mov dword fs:[0], ecx
add esp, 0xc
ret 0x1c
lea edx, [esp + 0x10]
push str.KEY_END
push edx
call fcn.00401dc0
add esp, 8
test al, al
je 0x4217b9