Function at 0x40f0c4
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1a
push 0
push 0
dec ecx
jne 0x40f0cc
push ebx
push esi
push edi
mov edi, 0x428e4c
xor eax, eax
push ebp
push 0x410427
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [edi]
call fcn.00402c60
mov dword [0x428e48], eax
mov bl, 8
mov esi, 0x42904c
xor eax, eax
mov al, bl
push eax
call sub.user32.dll_GetAsyncKeyState
cmp ax, 0x8001
jne 0x4102cb
mov eax, dword [esi]
mov edx, 0x410440
call fcn.00402da4
jne 0x40f1db
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f185
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f160
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x7e
je 0x4102cb
mov eax, edi
mov edx, 0x41044c
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
je 0x4102cb
mov eax, edi
mov edx, 0x410458
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f1b6
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
je 0x4102cb
mov eax, edi
mov edx, 0x410458
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x7e
je 0x4102cb
mov eax, edi
mov edx, 0x41044c
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [esi]
mov edx, 0x410464
call fcn.00402da4
jne 0x40f2a6
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f250
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f22b
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
je 0x4102cb
mov eax, edi
mov edx, 0x410470
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
je 0x4102cb
mov eax, edi
mov edx, 0x41047c
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f281
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
je 0x4102cb
mov eax, edi
mov edx, 0x41047c
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
je 0x4102cb
mov eax, edi
mov edx, 0x410470
call fcn.00402c68
jmp 0x4102cb
xor eax, eax
mov al, bl
cmp eax, 0x28
jg 0x40f34c
je 0x40f456
add eax, 0xfffffff8
cmp eax, 0x1f
ja case.0x40f2c5.9
jmp dword [eax*4 + 0x40f2cc]
cmp eax, 0x49
jg 0x40f37e
je 0x40f9f6
sub eax, 0x2d
je 0x40f467
dec eax
je 0x40f478
sub eax, 0x13
je 0x40f49a
sub eax, 4
je 0x40f78f
jmp case.0x40f2c5.9
sub eax, 0x4f
je 0x40fc5d
sub eax, 6
je 0x40ff52
sub eax, 0x3b
je 0x40f489
jmp case.0x40f2c5.9
mov eax, dword [0x4274d0]
cmp byte [eax], 0
jne 0x40f3b9
mov eax, edi
mov edx, 0x410488
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
mov eax, dword [edi]
call fcn.00402c60
mov dword [0x428e48], eax
jmp 0x4102cb
mov eax, edi
mov edx, 0x41049c
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4104a8
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4104b4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4104c4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4104d4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4104e4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4104f4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410504
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410514
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410528
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x41053c
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
jne 0x40f528
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f4fa
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f4e9
mov eax, edi
mov edx, 0x410550
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x41055c
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f517
mov eax, edi
mov edx, 0x41055c
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410550
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
jne 0x40f5b6
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f588
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f577
mov eax, edi
mov edx, 0x410568
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410574
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f5a5
mov eax, edi
mov edx, 0x410574
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410568
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x7e
jne 0x40f644
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f616
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f605
mov eax, edi
mov edx, 0x410580
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x41058c
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f633
mov eax, edi
mov edx, 0x41058c
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410580
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
jne 0x40f6d2
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f6a4
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f693
mov eax, edi
mov edx, 0x410598
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105a4
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f6c1
mov eax, edi
mov edx, 0x4105a4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410598
call fcn.00402c68
jmp 0x4102cb
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f737
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f711
lea edx, [ebp - 8]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 8]
lea edx, [ebp - 4]
call fcn.00406644
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x10]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0xc]
call fcn.004065c0
mov edx, dword [ebp - 0xc]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f769
lea edx, [ebp - 0x18]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.004065c0
mov edx, dword [ebp - 0x14]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x20]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00406644
mov edx, dword [ebp - 0x1c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
jne 0x40f81d
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f7ef
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f7de
mov eax, edi
mov edx, 0x4105b0
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105bc
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f80c
mov eax, edi
mov edx, 0x4105bc
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105b0
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
jne 0x40f8ab
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f87d
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f86c
mov eax, edi
mov edx, 0x4105c8
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105d4
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f89a
mov eax, edi
mov edx, 0x4105d4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105c8
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
jne 0x40f939
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f90b
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f8fa
mov eax, edi
mov edx, 0x4105e0
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105ec
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f928
mov eax, edi
mov edx, 0x4105ec
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105e0
call fcn.00402c68
jmp 0x4102cb
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40f99e
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f978
lea edx, [ebp - 0x28]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x24]
call fcn.00406644
mov edx, dword [ebp - 0x24]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x30]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.004065c0
mov edx, dword [ebp - 0x2c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40f9d0
lea edx, [ebp - 0x38]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.004065c0
mov edx, dword [ebp - 0x34]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x40]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.00406644
mov edx, dword [ebp - 0x3c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
jne 0x40fa84
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fa56
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fa45
mov eax, edi
mov edx, 0x4105f8
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410604
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fa73
mov eax, edi
mov edx, 0x410604
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4105f8
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
jne 0x40fb12
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fae4
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fad3
mov eax, edi
mov edx, 0x410610
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x41061c
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fb01
mov eax, edi
mov edx, 0x41061c
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410610
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
jne 0x40fba0
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fb72
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fb61
mov eax, edi
mov edx, 0x410628
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410634
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fb8f
mov eax, edi
mov edx, 0x410634
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410628
call fcn.00402c68
jmp 0x4102cb
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fc05
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fbdf
lea edx, [ebp - 0x48]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x44]
call fcn.00406644
mov edx, dword [ebp - 0x44]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x50]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x4c]
call fcn.004065c0
mov edx, dword [ebp - 0x4c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fc37
lea edx, [ebp - 0x58]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x54]
call fcn.004065c0
mov edx, dword [ebp - 0x54]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x60]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x60]
lea edx, [ebp - 0x5c]
call fcn.00406644
mov edx, dword [ebp - 0x5c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
jne 0x40fceb
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fcbd
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fcac
mov eax, edi
mov edx, 0x410640
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x41064c
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fcda
mov eax, edi
mov edx, 0x41064c
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410640
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
jne 0x40fd79
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fd4b
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fd3a
mov eax, edi
mov edx, 0x410658
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410664
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fd68
mov eax, edi
mov edx, 0x410664
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410658
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x7e
jne 0x40fe07
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fdd9
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fdc8
mov eax, edi
mov edx, 0x410670
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x41067c
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fdf6
mov eax, edi
mov edx, 0x41067c
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410670
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
jne 0x40fe95
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fe67
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fe56
mov eax, edi
mov edx, 0x410688
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410694
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fe84
mov eax, edi
mov edx, 0x410694
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x410688
call fcn.00402c68
jmp 0x4102cb
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40fefa
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40fed4
lea edx, [ebp - 0x68]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x68]
lea edx, [ebp - 0x64]
call fcn.00406644
mov edx, dword [ebp - 0x64]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x70]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0x6c]
call fcn.004065c0
mov edx, dword [ebp - 0x6c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40ff2c
lea edx, [ebp - 0x78]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x78]
lea edx, [ebp - 0x74]
call fcn.004065c0
mov edx, dword [ebp - 0x74]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x80]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x80]
lea edx, [ebp - 0x7c]
call fcn.00406644
mov edx, dword [ebp - 0x7c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0xb4
jne 0x40ffe0
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x40ffb2
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40ffa1
mov eax, edi
mov edx, 0x4106a0
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4106ac
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x40ffcf
mov eax, edi
mov edx, 0x4106ac
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4106a0
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x60
jne 0x41006e
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x410040
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x41002f
mov eax, edi
mov edx, 0x4106b8
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4106c4
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x41005d
mov eax, edi
mov edx, 0x4106c4
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4106b8
call fcn.00402c68
jmp 0x4102cb
mov eax, dword [edi]
call fcn.00402c60
mov edx, dword [edi]
cmp byte [edx + eax - 1], 0x5e
jne 0x4100fc
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x4100ce
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x4100bd
mov eax, edi
mov edx, 0x4106d0
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4106dc
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x4100eb
mov eax, edi
mov edx, 0x4106dc
call fcn.00402c68
jmp 0x4102cb
mov eax, edi
mov edx, 0x4106d0
call fcn.00402c68
jmp 0x4102cb
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x410179
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x410147
lea edx, [ebp - 0x88]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x88]
lea edx, [ebp - 0x84]
call fcn.00406644
mov edx, dword [ebp - 0x84]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0x90]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.004065c0
mov edx, dword [ebp - 0x8c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x4101b7
lea edx, [ebp - 0x98]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x94]
call fcn.004065c0
mov edx, dword [ebp - 0x94]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0xa0]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0xa0]
lea edx, [ebp - 0x9c]
call fcn.00406644
mov edx, dword [ebp - 0x9c]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x410263
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x410234
lea edx, [ebp - 0xa8]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0xa8]
lea edx, [ebp - 0xa4]
call fcn.00406644
mov edx, dword [ebp - 0xa4]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0xb0]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0xb0]
lea edx, [ebp - 0xac]
call fcn.004065c0
mov edx, dword [ebp - 0xac]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
jge 0x41029e
lea edx, [ebp - 0xb8]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0xb8]
lea edx, [ebp - 0xb4]
call fcn.004065c0
mov edx, dword [ebp - 0xb4]
mov eax, edi
call fcn.00402c68
jmp 0x4102cb
lea edx, [ebp - 0xc0]
xor eax, eax
mov al, bl
call fcn.0040f050
mov eax, dword [ebp - 0xc0]
lea edx, [ebp - 0xbc]
call fcn.00406644
mov edx, dword [ebp - 0xbc]
mov eax, edi
call fcn.00402c68
inc ebx
add esi, 4
test bl, bl
jne 0x40f0fc
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [edi]
call fcn.00402eb4
mov eax, dword [ebp - 0xc4]
mov edx, 0x410464
call fcn.00402da4
jne 0x410320
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
jmp 0x4103f3
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [edi]
call fcn.00402eb4
mov eax, dword [ebp - 0xc8]
mov edx, 0x4106e8
call fcn.00402da4
jne 0x410369
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
jmp 0x4103f3
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [edi]
call fcn.00402eb4
mov eax, dword [ebp - 0xcc]
mov edx, 0x410440
call fcn.00402da4
jne 0x4103af
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
jmp 0x4103f3
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [edi]
call fcn.00402eb4
mov eax, dword [ebp - 0xd0]
mov edx, 0x4106f4
call fcn.00402da4
jne 0x4103f3
mov eax, dword [edi]
call fcn.00402c60
mov edx, eax
mov eax, edi
mov ecx, 1
call fcn.00402ef4
mov eax, dword [edi]
call fcn.00402c60
cmp eax, dword [0x428e48]
jle 0x410409
mov byte [0x428e54], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41042e
lea eax, [ebp - 0xd0]
mov edx, 0x34
call fcn.00402a08
ret