Function at 0x1002e600
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
cmp byte [edi + 0x1c8], 0
je 0x1002e627
mov byte [edi + 0x1c8], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x1b0], 0
mov dword [edi + 0xe4], 0
je 0x1002e652
push 0
call fcn.10006810
mov ecx, eax
call fcn.100b91c0
mov dword [edi + 0x1b0], 0
mov ecx, dword [edi + 0x1b8]
test ecx, ecx
je 0x1002e66d
cmp dword [edi + 0x14], 0
mov eax, dword [ecx]
ja 0x1002e668
push 1
jmp 0x1002e66a
push 0
call dword [eax + 0x40]
cmp dword [edi + 0x94], 0
je 0x1002e689
mov dword [edi + 0x94], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [edi + 0x1b4]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x1b4]
mov dword [edi + 0x7c], eax
mov eax, dword [ecx]
push 2
call dword [eax]
mov ecx, dword [edi + 0x1b4]
mov dword [edi + 0x80], eax
mov eax, dword [ecx]
push 4
call dword [eax]
mov ecx, dword [edi + 0x1b4]
mov dword [edi + 0x84], eax
mov eax, dword [ecx]
push 5
call dword [eax]
mov ecx, dword [edi + 0x1b4]
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], 0
mov dword [edi + 0x90], 0
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], 0
mov dword [edi + 0xbc], 0
mov dword [edi + 0xc0], 0
mov dword [edi + 0x1a0], 0
mov eax, dword [ecx]
push 0x1e
call dword [eax]
test eax, eax
je 0x1002e74f
cmp dword [edi + 0x80], 0
je 0x1002e74f
cmp dword [edi + 0x7c], 0
jne 0x1002e74f
mov ecx, dword [edi + 0x1b4]
mov dword [edi + 0x1a0], 1
mov eax, dword [ecx]
push 0x1f
call dword [eax]
add dword [edi + 0x1a0], eax
mov eax, dword [ebp + 0x10]
test byte [eax + 0x10], 0x80
je 0x1002e762
mov dword [edi + 0x8c], 1
test byte [eax + 0x11], 0x80
je 0x1002e772
mov dword [edi + 0x90], 1
mov eax, dword [ebp + 8]
mov esi, eax
shr esi, 0x10
movzx ebx, al
lea eax, [esi - 0x30]
mov dword [esp + 0x14], esi
mov word [edi + 0x1a4], si
mov dword [edi + 0x178], 0
cmp ax, 9
ja 0x1002e7be
cmp dword [edi + 0x34], 0
jne 0x1002e8db
mov ecx, dword [edi + 0xf8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
test eax, eax
jne 0x1002e7be
mov dword [edi + 0x178], 1
cmp dword [edi + 0x34], 0
jne 0x1002e8db
push dword [esp + 0x14]
mov esi, dword [edi + 0xf0]
lea eax, [esp + 0x17]
push eax
mov dword [edi + 0xb4], 0
mov dword [edi + 0xa0], 0
mov dword [edi + 0xa4], 0
push dword [esi + 4]
push dword [esi]
call fcn.10039f60
mov eax, dword [esi]
mov dword [esi + 4], eax
mov ecx, dword [edi + 0xf8]
add esp, 0x10
mov eax, dword [ecx]
call dword [eax + 0x2c]
test eax, eax
jle 0x1002e8b6
mov ecx, dword [edi + 0xf8]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x1002e8b6
mov eax, dword [eax + 4]
cmp eax, 0xffffffff
je 0x1002e83c
cmp eax, 1
jne 0x1002e8b6
mov esi, dword [esp + 0x14]
lea eax, [esi - 0x30]
cmp ax, 9
jbe 0x1002e8ba
lea eax, [ebx - 0x60]
cmp ax, 9
jbe 0x1002e8ba
cmp si, 0x20
je 0x1002e8ba
mov eax, 0xbd
cmp bx, ax
je 0x1002e8ba
mov eax, 0xbb
cmp bx, ax
je 0x1002e8ba
mov eax, 0xbc
cmp bx, ax
je 0x1002e8ba
mov eax, 0xbe
cmp bx, ax
je 0x1002e8ba
mov eax, 0xdb
cmp bx, ax
je 0x1002e8ba
mov eax, 0xdd
cmp bx, ax
je 0x1002e8ba
mov ecx, dword [edi + 0x1b8]
mov dword [edi + 0xbc], 1
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi + 0x1b8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
jmp 0x1002e8ba
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0xf4]
mov eax, dword [eax + 0x444]
cmp eax, 1
je 0x1002e8db
cmp eax, 0xffffffff
je 0x1002e8db
mov ecx, dword [edi + 0x1b8]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0xf4]
mov ecx, dword [eax + 0x444]
mov dword [esp + 0x14], ecx
mov dword [eax + 0x444], 0
cmp si, 0xd
jne 0x1002e914
mov ecx, edi
call fcn.100327c0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp si, 0x1b
jne 0x1002e945
mov ecx, edi
call fcn.10038da0
mov ecx, edi
call fcn.10038060
mov ecx, dword [edi + 0x1b8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp si, 0x20
jne 0x1002e964
mov ecx, edi
call fcn.10032aa0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 8
cmp ax, si
jne 0x1002e987
mov ecx, edi
call fcn.10033e70
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp ebx, 0x2e
jne 0x1002e9b5
mov ecx, edi
call fcn.10038da0
push 0
mov ecx, edi
call fcn.10037870
mov ecx, edi
call fcn.10035410
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp ebx, 9
jne 0x1002ea17
cmp dword [edi + 0x17c], ebx
jne 0x1002f492
mov ecx, edi
call fcn.10038da0
mov ecx, dword [edi + 0x1b4]
push 0x39
mov eax, dword [ecx]
call dword [eax]
test eax, eax
je 0x1002ea04
cmp dword [edi + 0x8c], 0
mov ecx, edi
je 0x1002e9ff
call fcn.10033cd0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10033da0
push 9
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp ebx, 0x26
jne 0x1002ea35
mov ecx, edi
call fcn.10032e80
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp ebx, 0x28
jne 0x1002ea53
mov ecx, edi
call fcn.10032fa0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0x25
cmp ax, bx
je 0x1002f481
mov eax, 0x27
cmp ax, bx
je 0x1002f481
mov eax, 0x24
cmp ax, bx
je 0x1002f467
mov eax, 0x23
cmp ax, bx
je 0x1002f467
mov eax, 0x21
cmp ax, bx
je 0x1002f467
mov eax, 0x22
cmp ax, bx
je 0x1002f467
cmp dword [edi + 0x34], 0
jne 0x1002eabb
mov dword [edi + 0x44], 0
mov dword [edi + 0x40], 0
mov eax, dword [edi + 0xf4]
mov eax, dword [eax + 0x440]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1002eaf5
push dword [ebp + 0x10]
lea eax, [ebp + 8]
push ecx
push eax
call fcn.10031cd0
cmp eax, 2
je 0x1002f492
cmp dword [edi + 0x34], 0x40
jge 0x1002f39b
cmp dword [edi + 0x44], 0x19
jge 0x1002f39b
mov ecx, dword [edi + 0x1b4]
push 0x4e
mov eax, dword [ecx]
call dword [eax]
mov ecx, 0xba
test eax, eax
je 0x1002ec28
cmp dword [edi + 0x34], 0
jne 0x1002ebc8
cmp bx, cx
jne 0x1002ec28
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
jne 0x1002f492
call fcn.10006910
mov dword [eax + 0x1c], 0
mov ecx, dword [edi + 0x1b4]
push 0x70
mov eax, dword [ecx]
call dword [eax]
cmp eax, 2
jne 0x1002eb7a
mov ecx, dword [edi + 0xf8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
test eax, eax
jg 0x1002ec23
cmp dword [edi + 0x8c], 0
jne 0x1002ec23
mov ecx, dword [edi + 0x1b4]
push 0x7a
mov eax, dword [ecx]
call dword [eax + 0x44]
test eax, eax
jne 0x1002ec23
test si, si
je 0x1002f492
push 0xba
push esi
mov ecx, edi
call fcn.100342d0
push 0xba
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x38], 0
jne 0x1002ebd8
cmp bx, cx
jne 0x1002ec28
jmp 0x1002eb4a
cmp dword [edi + 0x30], 8
lea eax, [edi + 0x1c]
jb 0x1002ebe3
mov eax, dword [eax]
cmp word [eax], 0x3b
jne 0x1002ec28
mov dword [edi + 0x1a0], 0
call fcn.10006910
mov dword [eax + 0x1c], 0
test si, si
je 0x1002f492
push ebx
push esi
mov ecx, edi
call fcn.100342d0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, 0xba
cmp dword [edi + 0x8c], 0
je 0x1002eca4
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
jne 0x1002f492
push ecx
push esi
mov ecx, edi
call fcn.10032660
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
mov ecx, dword [edi + 0x1b4]
mov dword [edi + 0x8c], 0
mov eax, dword [ecx]
push 0x72
call dword [eax]
cmp eax, 3
jne 0x1002ec87
push 0xa0
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 2
jne 0x1002f492
push 0xa1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xc0
cmp bx, ax
jne 0x1002ece9
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
jne 0x1002f492
test si, si
je 0x1002f492
mov ecx, edi
call fcn.10033400
push 0xc0
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xbd
cmp bx, ax
jne 0x1002ed34
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
jne 0x1002f492
test si, si
je 0x1002f492
push 0xbd
push ecx
mov ecx, edi
call fcn.10033050
push 0xbd
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xbb
cmp bx, ax
jne 0x1002ed6a
test si, si
je 0x1002f492
push 0xbb
push ecx
mov ecx, edi
call fcn.10033160
push 0xbb
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp bx, cx
jne 0x1002edb3
mov ecx, dword [edi + 0x1b4]
push 5
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1002efa7
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002ed9e
cmp dword [edi + 0x34], 0
je 0x1002f492
test si, si
je 0x1002f492
mov ecx, edi
call fcn.10033320
jmp 0x1002ebb2
mov eax, 0xbf
cmp bx, ax
jne 0x1002edfe
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002edd8
cmp dword [edi + 0x34], 0
je 0x1002f492
test si, si
je 0x1002f492
mov ecx, edi
call fcn.10033390
push 0xbf
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xdb
cmp bx, ax
jne 0x1002ee4f
test si, si
je 0x1002f492
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002ee2c
cmp dword [edi + 0x34], 0
je 0x1002f492
push 0xdb
push ecx
mov ecx, edi
call fcn.10033550
push 0xdb
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xdd
cmp bx, ax
jne 0x1002eea0
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002ee74
cmp dword [edi + 0x34], 0
je 0x1002f492
test si, si
je 0x1002f492
push 0xdd
push ecx
mov ecx, edi
call fcn.10033660
push 0xdd
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xde
cmp bx, ax
jne 0x1002eeeb
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002eec5
cmp dword [edi + 0x34], 0
je 0x1002f492
test si, si
je 0x1002f492
mov ecx, edi
call fcn.10033280
push 0xde
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xbc
cmp bx, ax
jne 0x1002ef3c
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002ef10
cmp dword [edi + 0x34], 0
je 0x1002f492
test si, si
je 0x1002f492
push 0xbc
push ecx
mov ecx, edi
call fcn.10033760
push 0xbc
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xbe
cmp bx, ax
jne 0x1002efa7
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
je 0x1002ef61
cmp dword [edi + 0x34], 0
je 0x1002f492
test si, si
je 0x1002f492
mov ecx, dword [edi + 0x1b4]
push 0x53
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1002ef84
mov dword [edi + 0xa0], 1
push 0xbe
push ecx
mov ecx, edi
call fcn.10033860
push 0xbe
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [edi + 0xf8]
mov eax, dword [ecx]
call dword [eax + 0x44]
cmp dword [edi + 0x1a0], 0
mov ecx, eax
jle 0x1002f125
test ecx, ecx
jle 0x1002f125
cmp dword [esp + 0x14], 0xffffffff
je 0x1002f125
movzx eax, si
lea edx, [eax - 0x60]
add eax, 0xffffffd0
mov dword [esp + 0x14], eax
cmp eax, ecx
jle 0x1002f05f
cmp eax, 9
jle 0x1002f05f
cmp edx, ecx
jg 0x1002f009
cmp dword [edi + 0x1a0], 2
jne 0x1002f009
push ecx
push edx
mov ecx, edi
call fcn.10030bd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ecx
push 1
mov ecx, edi
call fcn.10030bd0
mov ecx, dword [edi + 0x1b4]
push 0x70
mov edx, dword [ecx]
mov ebx, eax
call dword [edx]
test eax, eax
jne 0x1002f492
test ebx, ebx
je 0x1002f492
push esi
mov ecx, edi
call fcn.10037950
mov ecx, edi
call fcn.100365c0
call fcn.100068d0
mov edx, dword [eax]
push dword [edi + 0x34]
mov ecx, eax
call dword [edx + 0x14]
mov ecx, edi
call fcn.10036b00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebx - 0x60]
cmp ax, 9
ja 0x1002f07c
mov ecx, dword [edi + 0x1b4]
push 0x4c
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1002f492
push ecx
push dword [esp + 0x18]
mov ecx, edi
call fcn.10030bd0
test eax, eax
jne 0x1002f492
push esi
mov ecx, edi
call fcn.10037950
lea eax, [edi + 4]
lea esi, [edi + 0x60]
cmp esi, eax
je 0x1002f0ae
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.10004790
cmp dword [esi + 0x14], 8
jb 0x1002f0b6
mov esi, dword [esi]
mov eax, dword [edi + 0xf4]
push esi
add eax, 0x208
push 0x10192050
push eax
call fcn.10091da4
mov ecx, dword [edi + 0xf4]
add esp, 0xc
mov ecx, dword [ecx + 0x440]
call fcn.10013600
mov ecx, dword [edi + 0xf0]
call fcn.10039530
mov ecx, dword [edi + 0xf4]
mov eax, dword [edi + 0x34]
mov dword [ecx + 0x4f8], eax
call fcn.100068d0
mov edx, dword [eax]
push dword [edi + 0x34]
mov ecx, eax
call dword [edx + 0x14]
mov ecx, dword [edi + 0xf8]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, edi
call fcn.10036b00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x34], 0
jle 0x1002f215
mov ecx, dword [edi + 0x1b4]
push 0x81
mov eax, dword [ecx]
call dword [eax + 0x44]
test eax, eax
jne 0x1002f215
mov ecx, edi
call fcn.10037dc0
test eax, eax
jne 0x1002f180
lea eax, [esi - 0x30]
push esi
cmp ax, 9
ja 0x1002f18c
lea eax, [ebx - 0x60]
cmp ax, 9
ja 0x1002f3f7
call fcn.1002f920
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10037d90
mov ecx, edi
test eax, eax
je 0x1002f1a3
push esi
call fcn.10034040
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10037f00
mov ecx, edi
test eax, eax
je 0x1002f1c6
push esi
call fcn.10035180
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10037ea0
mov ecx, edi
test eax, eax
je 0x1002f1e9
push esi
call fcn.10034180
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10037e20
test eax, eax
je 0x1002f215
call fcn.100186e0
test eax, eax
je 0x1002f215
push esi
mov ecx, edi
call fcn.10034040
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [edi + 0x1b4]
push 0x53
mov eax, dword [ecx]
call dword [eax]
test eax, eax
je 0x1002f2a4
cmp dword [edi + 0x34], 5
jl 0x1002f25a
cmp dword [edi + 0x30], 8
lea ecx, [edi + 0x1c]
jb 0x1002f236
mov ecx, dword [ecx]
call fcn.10018860
test eax, eax
je 0x1002f25a
push esi
mov ecx, edi
mov dword [edi + 0xac], 1
call fcn.10035210
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x30], 8
lea eax, [edi + 0x1c]
jb 0x1002f265
mov eax, dword [eax]
mov ecx, eax
call fcn.10018960
test eax, eax
jne 0x1002f23f
mov ecx, dword [edi + 0x30]
lea eax, [edi + 0x1c]
mov dword [esp + 0x14], ecx
cmp ecx, 8
jb 0x1002f281
mov eax, dword [eax]
mov ecx, eax
call fcn.10014e60
test eax, eax
jne 0x1002f23f
cmp dword [esp + 0x14], 8
jb 0x1002f298
mov ecx, dword [edi + 0x1c]
jmp 0x1002f29b
lea ecx, [edi + 0x1c]
call fcn.100189e0
test eax, eax
jne 0x1002f23f
mov ecx, edi
cmp ebx, 0x6e
jne 0x1002f2c2
call fcn.10033ad0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.1002f4a0
test eax, eax
jne 0x1002f492
lea eax, [esi - 0x30]
cmp ax, 9
ja 0x1002f32d
mov ecx, dword [edi + 0x1b4]
push 0x3a
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1002f31c
mov ecx, dword [edi + 0x1b4]
push 0x3b
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1002f31c
mov ecx, dword [edi + 0x1b4]
push 0x3c
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1002f31c
mov dword [edi + 0x198], eax
push esi
mov ecx, edi
jmp 0x1002f15c
mov eax, dword [edi + 0x44]
mov dword [edi + 0x198], eax
push esi
mov ecx, edi
jmp 0x1002f15c
lea eax, [ebx - 0x6a]
cmp ax, 5
ja 0x1002f350
push ebx
mov ecx, edi
call fcn.1002fcb0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
lea eax, [ebp + 8]
push ecx
push eax
call fcn.10031d40
dec eax
je 0x1002f381
dec eax
jne 0x1002f492
push esi
mov ecx, edi
call fcn.10031d80
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push esi
mov ecx, edi
call fcn.1002f7c0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
lea eax, [ebp + 8]
push ecx
push eax
call fcn.10031cd0
cmp eax, 1
je 0x1002f492
cmp eax, 2
je 0x1002f492
cmp eax, 3
je 0x1002f492
lea eax, [esi - 0x30]
cmp ax, 9
ja 0x1002f40e
cmp ebx, 0x60
jb 0x1002f3da
cmp ebx, 0x69
jbe 0x1002f492
mov ecx, dword [edi + 0xf8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
cmp eax, 1
jne 0x1002f3f4
cmp si, 0x31
jne 0x1002f492
push esi
mov ecx, edi
call fcn.1002fab0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0xbd
cmp bx, ax
je 0x1002ed08
mov eax, 0xbb
cmp bx, ax
je 0x1002ed3e
mov eax, 0xbc
cmp bx, ax
je 0x1002ef10
mov eax, 0xbe
cmp bx, ax
je 0x1002ef61
mov eax, 0xdb
cmp bx, ax
jne 0x1002f458
test si, si
jmp 0x1002ee26
mov eax, 0xdd
cmp bx, ax
jne 0x1002f492
jmp 0x1002ee74
push ebx
mov ecx, edi
call fcn.10032e00
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ebx
mov ecx, edi
call fcn.10032bf0
push ebx
push ecx
mov ecx, edi
call fcn.1002f760
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc