Function at 0x62f138
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x36
push 0
push 0
dec ecx
jne 0x62f140
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x6308f6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2e0], 0
je 0x6308a5
push 0x11
call sub.user32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
sete byte [ebp - 0x17]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x62f1c2
mov eax, dword [ebp - 0x24]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x24]
jne 0x62f1eb
lea edx, [ebp - 0xdc]
mov eax, dword [ebp - 4]
call fcn.00633b58
cmp dword [ebp - 0xdc], 0
je 0x62f1eb
mov eax, dword [ebp - 4]
mov byte [eax + 0x358], 1
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0xd
sete al
and al, byte [ebp - 0x17]
je 0x62f213
mov eax, dword [ebp - 8]
mov word [eax + 4], 0
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0xd
jne 0x62f2d7
mov word [ebp - 0x16], 0xd
mov eax, dword [ebp - 4]
cmp word [eax + 0x22a], 0
je 0x62f249
lea ecx, [ebp - 0x16]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x22c]
call dword [ebx + 0x228]
mov eax, dword [ebp - 8]
mov word [eax + 4], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x35a], 0
jne 0x6308a5
mov eax, dword [ebp - 4]
cmp dword [eax + 0x38], 0
je 0x6308a5
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
call fcn.00499e94
push eax
call sub.user32.dll_PostMessageW
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0052cca0
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x62f2b8
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2a4], 0
je 0x62f2b8
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp 0x6308a5
push 0
push 0xd
push 0x101
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
call fcn.00499e94
push eax
call sub.user32.dll_PostMessageW
jmp 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x1b
jne 0x62f359
mov eax, dword [ebp - 4]
cmp byte [eax + 0x35a], 0
jne 0x62f359
mov eax, dword [ebp - 4]
cmp dword [eax + 0x38], 0
je 0x62f359
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0052cca0
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x62f325
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2a4], 0
je 0x62f325
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp 0x6308a5
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
call fcn.00499e94
push eax
call sub.user32.dll_PostMessageW
push 0
push 0x1b
push 0x101
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
call fcn.00499e94
push eax
call sub.user32.dll_PostMessageW
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x1b
jne 0x62f37f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x35b], 0
jne 0x62f37f
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp 0x6308a5
cmp byte [ebp - 0x17], 0
je 0x62f3ae
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
sub ax, 3
je 0x62f39e
sub ax, 0x13
je 0x62f39e
sub ax, 2
jne 0x62f3ae
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2e
jne 0x62f3e2
mov eax, dword [ebp - 4]
cmp byte [eax + 0x35c], 0
je 0x62f3e2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
and eax, 0x400000
cmp eax, 0x400000
jne 0x62f3e2
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov word [edx + 4], ax
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2c
jne 0x62f416
mov eax, dword [ebp - 4]
cmp byte [eax + 0x35c], 0
je 0x62f416
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
and eax, 0x400000
cmp eax, 0x400000
jne 0x62f416
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov word [edx + 4], ax
mov eax, dword [ebp - 8]
cmp word [eax + 4], 8
jne 0x62f472
mov eax, dword [ebp - 4]
cmp dword [eax + 0x348], 0
je 0x62f472
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x62f457
mov eax, dword [ebp - 0x2c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x2c]
jg 0x62f472
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
je 0x6308a5
mov eax, dword [ebp - 4]
cmp word [eax + 0x342], 0
jle 0x62f504
lea edx, [ebp - 0xe0]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 4]
call fcn.00634fb4
mov edx, dword [ebp - 4]
movsx edx, word [edx + 0x342]
cmp eax, edx
jle 0x62f504
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
jne 0x62f504
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00634dec
cmp ebx, eax
jge 0x62f504
mov eax, dword [ebp - 8]
cmp word [eax + 4], 8
je 0x62f504
call fcn.0062bd3c
mov edx, dword [ebp - 8]
cmp ax, word [edx + 4]
je 0x62f504
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
mov eax, dword [ebp - 4]
call fcn.006348c0
test al, al
je 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 8
jne 0x62f5f3
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
jne 0x62f56c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x62f557
mov eax, dword [ebp - 0x34]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x34]
lea eax, [ebp - 0x14]
mov ecx, 1
call fcn.004093a8
jmp 0x62f5b2
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x62f597
mov eax, dword [ebp - 0x3c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov ecx, eax
mov edx, dword [ebp - 0x40]
sub edx, dword [ebp - 0x3c]
lea eax, [ebp - 0x14]
call fcn.004093a8
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
lea edx, [ebp - 0xe4]
mov eax, dword [ebp - 4]
call fcn.00633b58
cmp dword [ebp - 0xe4], 0
jne 0x6308a5
cmp dword [ebp - 0x14], 0
je 0x6308a5
mov eax, dword [ebp - 4]
mov si, 0xffae
call fcn.004069f0
jmp 0x6308a5
cmp byte [ebp - 0x17], 0
je 0x62f607
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0xa
je 0x6308a5
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x341]
dec eax
sub al, 2
jb 0x62f619
sub al, 4
jne 0x62f633
mov eax, dword [ebp - 4]
cmp byte [eax + 0x354], 0
jne 0x62f633
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2d
je 0x6308a5
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x341]
cmp eax, 0xb
ja case.default.0x62f646
jmp dword [eax*4 + 0x62f64d]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xfffffff8
sub ax, 2
jb 0x62f6cc
sub ax, 3
je 0x62f6cc
add eax, 0xffffffdd
sub ax, 0xa
jb 0x62f6cc
add eax, 0xfffffff9
sub ax, 0x1a
jb 0x62f6cc
add eax, 0xfffffffa
sub ax, 0x1a
jae case.default.0x62f646
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
lea eax, [ebp - 0xe8]
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
call fcn.00408f64
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x360]
call fcn.0040950c
test eax, eax
jg 0x62f71e
mov eax, dword [ebp - 8]
cmp word [eax + 4], 8
jne case.default.0x62f646
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2d
jne 0x62f903
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov dword [ebp - 0x4c], eax
lea edx, [ebp - 0xec]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x62f782
mov eax, dword [ebp - 0x48]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x48]
jne 0x62f7ac
mov edx, 0x630910
mov eax, dword [ebp - 4]
call fcn.005a8c20
mov edx, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
jmp 0x6308a5
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x14]
mov eax, 0x630910
call fcn.0040950c
test eax, eax
jle 0x62f898
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, 1
call fcn.004093a8
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x34c]
lea eax, [ebp - 0xf0]
mov edx, dword [ebp - 0x14]
call fcn.00409190
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 4]
call fcn.005a8c20
cmp dword [ebp - 0xc], 0
jle 0x62f840
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x62f834
mov eax, dword [ebp - 0x50]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x50]
setg byte [ebp - 0x51]
jmp 0x62f844
mov byte [ebp - 0x51], 0
cmp byte [ebp - 0x51], 0
je 0x62f85b
mov edx, dword [ebp - 0xc]
dec edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
jmp 0x62f886
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
je 0x62f878
mov eax, dword [ebp - 0x58]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10c]
jmp case.default.0x62f646
push 0x630910
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 4]
call fcn.00633b58
push dword [ebp - 0xf8]
mov eax, dword [ebp - 4]
push dword [eax + 0x34c]
lea eax, [ebp - 0xf4]
mov edx, 3
call fcn.00409218
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 4]
call fcn.005a8c20
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov edx, dword [ebp - 0xc]
inc edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
jmp case.default.0x62f646
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xfffffff8
sub ax, 2
jb 0x62f928
sub ax, 3
je 0x62f928
sub ax, 0x20
je 0x62f928
add eax, 0xfffffffd
sub ax, 0xa
jae 0x62f933
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
push 0xa3
call sub.user32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
je 0x62f969
push 0xa2
call sub.user32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
jne case.default.0x62f646
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
cmp ax, 0xff
ja 0x62f992
and eax, 0xff
bt dword [0x630914], eax
jae case.default.0x62f646
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xfffffff8
sub ax, 2
jb 0x62f9e4
sub ax, 3
je 0x62f9e4
add eax, 0xffffffe1
sub ax, 2
jb 0x62f9e4
add eax, 0xfffffffe
sub ax, 0xa
jb 0x62f9e4
sub ax, 1
jne case.default.0x62f646
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
lea edx, [ebp - 0xfc]
mov eax, dword [ebp - 4]
call fcn.005a8b8c
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0x14]
mov ecx, 0x630940
call fcn.00409190
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xffffffd4
sub ax, 2
jb 0x62fa29
sub ax, 0xd
jne 0x62fb15
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
je 0x62fa54
mov eax, dword [ebp - 0x5c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jle 0x6308a5
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
je 0x62fa8b
mov eax, dword [ebp - 0x64]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x64]
jle 0x62fab3
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov edx, dword [ebp - 0x14]
mov ax, word [edx + eax*2 - 2]
call fcn.0062c77c
test al, al
jne 0x6308a5
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
je 0x62fade
mov eax, dword [ebp - 0x6c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x6c]
jle 0x62fb05
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov edx, dword [ebp - 0x14]
mov ax, word [edx + eax*2]
call fcn.0062c77c
test al, al
jne 0x6308a5
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
jne 0x62fbf0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x100]
push eax
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x104]
call fcn.00408f64
mov eax, dword [ebp - 0x104]
pop edx
call fcn.0040950c
test eax, eax
jg 0x62fb7e
mov eax, dword [ebp - 4]
cmp word [eax + 0x344], 0
jne 0x62fbf0
mov eax, dword [ebp - 4]
cmp word [eax + 0x344], 0
jle 0x6308a5
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov dword [ebp - 0x7c], eax
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x62fbcb
mov eax, dword [ebp - 0x78]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x78]
jne 0x62fbe3
mov edx, 0x630950
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x1a0]
mov eax, dword [ebp - 4]
call fcn.00634220
jmp 0x6308a5
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xfffffff8
sub ax, 2
jb 0x62fc2a
sub ax, 3
je 0x62fc2a
sub ax, 0x20
je 0x62fc2a
add eax, 0xfffffffd
sub ax, 0xa
jb 0x62fc2a
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
jne case.default.0x62f646
call fcn.0062bd20
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
je 0x62fc4c
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
jne 0x62fc7c
push ebp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
push eax
lea edx, [ebp - 0x10c]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x10c]
pop edx
call fcn.0062ef54
pop ecx
test al, al
jne 0x6308a5
push ebp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
push eax
lea edx, [ebp - 0x110]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x110]
pop edx
call fcn.0062edec
pop ecx
test al, al
je 0x62fe7f
mov esi, 0x630958
lea edi, [ebp - 0x130]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.0062bd3c
cmp ax, 0xff
ja 0x62fcd5
and eax, 0xff
bts dword [ebp - 0x130], eax
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
cmp ax, 0xff
ja 0x62fcee
and eax, 0xff
bt dword [ebp - 0x130], eax
jae 0x62fe7f
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
jne 0x62fe7f
mov eax, dword [ebp - 4]
cmp word [eax + 0x344], 0
jle 0x62fd89
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x62fd42
mov eax, dword [ebp - 0x80]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x134]
push eax
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x138]
call fcn.00408f64
mov eax, dword [ebp - 0x138]
pop edx
call fcn.0040950c
mov edx, dword [ebp - 0x84]
sub edx, dword [ebp - 0x80]
cmp eax, edx
setle byte [ebp - 0x85]
jmp 0x62fd90
mov byte [ebp - 0x85], 0
cmp byte [ebp - 0x85], 0
je 0x62fdb2
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xffffffd0
sub ax, 0xa
setb al
mov byte [ebp - 0x86], al
jmp 0x62fdb9
mov byte [ebp - 0x86], 0
cmp byte [ebp - 0x86], 0
je 0x62fe5b
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x62fe00
mov eax, dword [ebp - 0x8c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x8c], eax
lea edx, [ebp - 0x13c]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x62fe40
mov eax, dword [ebp - 0x98]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x90]
sub eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x98]
setl byte [ebp - 0x99]
jmp 0x62fe62
mov byte [ebp - 0x99], 0
cmp byte [ebp - 0x99], 0
je 0x6308a5
mov edx, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
test eax, eax
jne 0x62ff08
lea edx, [ebp - 0x140]
mov eax, dword [ebp - 4]
call fcn.00633b58
cmp dword [ebp - 0x140], 0
jne 0x62ff08
call fcn.0062bd3c
mov edx, dword [ebp - 8]
cmp ax, word [edx + 4]
jne 0x62ff08
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x148]
call fcn.00408f64
mov ecx, dword [ebp - 0x148]
lea eax, [ebp - 0x144]
mov edx, 0x630984
call fcn.00409190
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 4]
call fcn.005a8c20
mov edx, 2
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
jmp 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2d
jne 0x6300dd
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
jne 0x6300dd
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 4]
movsx eax, word [eax + 0x344]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov word [eax + 0x344], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x14]
mov eax, 0x630910
call fcn.0040950c
test eax, eax
je 0x630052
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, 1
call fcn.004093a8
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x34c]
lea eax, [ebp - 0x14c]
mov edx, dword [ebp - 0x14]
call fcn.00409190
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 4]
call fcn.005a8c20
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
cmp dword [ebp - 0xc], 0
jle 0x62fff2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
je 0x62ffe0
mov eax, dword [ebp - 0xa0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0xa0]
setg byte [ebp - 0xa1]
jmp 0x62fff9
mov byte [ebp - 0xa1], 0
cmp byte [ebp - 0xa1], 0
je 0x630016
mov edx, dword [ebp - 0xc]
dec edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
jmp 0x6300ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
je 0x63003f
mov eax, dword [ebp - 0xa8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
jmp 0x6300ca
mov eax, dword [ebp - 4]
call fcn.00635b1c
fcomp dword [0x630988]
wait
fnstsw ax
sahf
push 0x630910
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 4]
call fcn.00633b58
push dword [ebp - 0x154]
mov eax, dword [ebp - 4]
push dword [eax + 0x34c]
lea eax, [ebp - 0x150]
mov edx, 3
call fcn.00409218
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 4]
call fcn.005a8c20
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov edx, dword [ebp - 0xc]
inc edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov eax, dword [ebp - 4]
mov dx, word [ebp - 0x10]
mov word [eax + 0x344], dx
jmp 0x6308a5
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
lea edx, [ebp - 0x158]
mov eax, dword [ebp - 4]
call fcn.00633b58
cmp dword [ebp - 0x158], 0
je case.default.0x62f646
lea edx, [ebp - 0x15c]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x15c]
mov edx, 0x630910
call fcn.00409328
je case.default.0x62f646
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
je case.default.0x62f646
mov eax, dword [ebp - 4]
call fcn.004ad1a8
test al, al
je 0x630152
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov eax, dword [ebp - 4]
call fcn.006355e0
jmp case.default.0x62f646
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2c
jne 0x630183
call fcn.0062bd3c
cmp ax, 0x2c
je 0x630183
call fcn.0062bd20
cmp ax, 0x2c
jne 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2e
jne 0x6301a7
call fcn.0062bd3c
cmp ax, 0x2e
je 0x6301a7
call fcn.0062bd20
cmp ax, 0x2e
jne 0x6308a5
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xfffffff8
sub ax, 2
jb 0x6301d1
sub ax, 3
je 0x6301d1
add eax, 0xffffffe1
sub ax, 3
jb 0x6301d1
dec eax
sub ax, 0xa
jae case.default.0x62f646
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
jne 0x630282
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [ebp - 0x160]
push eax
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x164]
call fcn.00408f64
mov eax, dword [ebp - 0x164]
pop edx
call fcn.0040950c
test eax, eax
jne 0x630282
lea edx, [ebp - 0x168]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x168]
push eax
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x16c]
call fcn.00408f64
mov eax, dword [ebp - 0x16c]
pop edx
call fcn.0040950c
test eax, eax
jg 0x630264
mov eax, dword [ebp - 4]
cmp word [eax + 0x344], 0
jne 0x630282
mov eax, dword [ebp - 4]
cmp word [eax + 0x344], 0
jle 0x6308a5
mov eax, dword [ebp - 4]
call fcn.00634220
jmp 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2c
jne 0x6302e8
lea edx, [ebp - 0x170]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov edx, dword [ebp - 0x170]
mov eax, 0x630998
call fcn.0040950c
test eax, eax
jle 0x6302e8
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov edx, dword [ebp - 0x174]
mov eax, 0x630998
call fcn.0040950c
test eax, eax
jne 0x6302e8
call fcn.0062bd20
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
jne 0x6308a5
call fcn.0062bd20
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
je 0x63030a
call fcn.0062bd3c
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
cmp ax, dx
jne 0x63033a
push ebp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
push eax
lea edx, [ebp - 0x178]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x178]
pop edx
call fcn.0062ef54
pop ecx
test al, al
jne 0x6308a5
push ebp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
push eax
lea edx, [ebp - 0x17c]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x17c]
pop edx
call fcn.0062edec
pop ecx
test al, al
je 0x630550
mov esi, 0x630958
lea edi, [ebp - 0x130]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.0062bd3c
cmp ax, 0xff
ja 0x630393
and eax, 0xff
bts dword [ebp - 0x130], eax
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
cmp ax, 0xff
ja 0x6303ac
and eax, 0xff
bt dword [ebp - 0x130], eax
jae 0x630550
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
jne 0x630550
mov eax, dword [ebp - 4]
cmp word [eax + 0x344], 0
jle 0x63045a
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x630410
mov eax, dword [ebp - 0xac]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xac], eax
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x180]
push eax
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x184]
call fcn.00408f64
mov eax, dword [ebp - 0x184]
pop edx
call fcn.0040950c
mov edx, dword [ebp - 0xb0]
sub edx, dword [ebp - 0xac]
cmp eax, edx
setle byte [ebp - 0xb1]
jmp 0x630461
mov byte [ebp - 0xb1], 0
cmp byte [ebp - 0xb1], 0
je 0x630483
mov eax, dword [ebp - 8]
mov ax, word [eax + 4]
add eax, 0xffffffd0
sub ax, 0xa
setb al
mov byte [ebp - 0xb2], al
jmp 0x63048a
mov byte [ebp - 0xb2], 0
cmp byte [ebp - 0xb2], 0
je 0x63052c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0
je 0x6304d1
mov eax, dword [ebp - 0xb8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xb8], eax
lea edx, [ebp - 0x188]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
je 0x630511
mov eax, dword [ebp - 0xc4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xbc]
sub eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0xc4]
setl byte [ebp - 0xc5]
jmp 0x630533
mov byte [ebp - 0xc5], 0
cmp byte [ebp - 0xc5], 0
je 0x6308a5
mov edx, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
test eax, eax
jne 0x6305d9
lea edx, [ebp - 0x18c]
mov eax, dword [ebp - 4]
call fcn.00633b58
cmp dword [ebp - 0x18c], 0
jne 0x6305d9
call fcn.0062bd3c
mov edx, dword [ebp - 8]
cmp ax, word [edx + 4]
jne 0x6305d9
call fcn.0062bd3c
mov edx, eax
lea eax, [ebp - 0x194]
call fcn.00408f64
mov ecx, dword [ebp - 0x194]
lea eax, [ebp - 0x190]
mov edx, 0x630984
call fcn.00409190
mov edx, dword [ebp - 0x190]
mov eax, dword [ebp - 4]
call fcn.005a8c20
mov edx, 2
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
jmp 0x6308a5
mov eax, dword [ebp - 8]
cmp word [eax + 4], 0x2d
jne 0x6307ab
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
test eax, eax
jne 0x6307ab
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 4]
movsx eax, word [eax + 0x344]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov word [eax + 0x344], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x14]
mov eax, 0x630910
call fcn.0040950c
test eax, eax
je 0x630720
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, 1
call fcn.004093a8
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x34c]
lea eax, [ebp - 0x198]
mov edx, dword [ebp - 0x14]
call fcn.00409190
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
call fcn.005a8c20
cmp dword [ebp - 0xc], 0
jle 0x6306b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
je 0x6306a7
mov eax, dword [ebp - 0xcc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0xcc]
setg byte [ebp - 0xcd]
jmp 0x6306c0
mov byte [ebp - 0xcd], 0
cmp byte [ebp - 0xcd], 0
je 0x6306da
mov edx, dword [ebp - 0xc]
dec edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
jmp 0x630714
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0
je 0x630703
mov eax, dword [ebp - 0xd4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
jmp 0x630798
mov eax, dword [ebp - 4]
call fcn.00635b1c
fcomp dword [0x630988]
wait
fnstsw ax
sahf
push 0x630910
lea edx, [ebp - 0x1a0]
mov eax, dword [ebp - 4]
call fcn.00633b58
push dword [ebp - 0x1a0]
mov eax, dword [ebp - 4]
push dword [eax + 0x34c]
lea eax, [ebp - 0x19c]
mov edx, 3
call fcn.00409218
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebp - 4]
call fcn.005a8c20
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov edx, dword [ebp - 0xc]
inc edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov eax, dword [ebp - 4]
mov dx, word [ebp - 0x10]
mov word [eax + 0x344], dx
jmp 0x6308a5
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
lea eax, [ebp - 0x1a4]
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
call fcn.00408f64
mov eax, dword [ebp - 0x1a4]
lea edx, [ebp - 0x14]
call fcn.004207f4
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
mov edx, dword [ebp - 8]
mov word [edx + 4], ax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
lea eax, [ebp - 0x1a8]
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
call fcn.00408f64
mov eax, dword [ebp - 0x1a8]
lea edx, [ebp - 0x14]
call fcn.00420830
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
mov edx, dword [ebp - 8]
mov word [edx + 4], ax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
jmp case.default.0x62f646
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x104]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00498c5c
lea edx, [ebp - 0x1b0]
mov eax, dword [ebp - 4]
call fcn.00633b58
mov eax, dword [ebp - 0x1b0]
lea edx, [ebp - 0x1ac]
call fcn.005ce590
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 4]
call fcn.005a8c20
mov edx, dword [ebp - 0xc]
inc edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x110]
mov eax, dword [ebp - 4]
call fcn.004ad1a8
test al, al
je 0x63089d
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00635910
mov eax, dword [ebp - 4]
call fcn.006364ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6308fd
lea eax, [ebp - 0x1b0]
mov edx, 0x20
call fcn.0040836c
lea eax, [ebp - 0x110]
mov edx, 5
call fcn.0040836c
lea eax, [ebp - 0xfc]
call fcn.0040830c
lea eax, [ebp - 0xf8]
mov edx, 9
call fcn.0040836c
lea eax, [ebp - 0x14]
call fcn.0040830c
ret