Function at 0x536744
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x26
push 0
push 0
dec ecx
jne 0x53674c
push ebx
push esi
push edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x53883c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [0x5903f8]
call fcn.0046c6f4
mov eax, dword [ebp - 4]
add eax, 0x2208
mov edx, 1
mov cl, 1
call fcn.004165f0
mov eax, dword [ebp - 4]
add eax, 0x2218
xor edx, edx
mov cl, 1
call fcn.004165f0
mov eax, dword [ebp - 4]
mov word [eax + 0x2208], 0xb
mov eax, dword [ebp - 4]
mov word [eax + 0x2218], 0xb
mov eax, dword [0x5892f4]
mov eax, dword [eax]
cmp byte [eax + 0x7a9], 0
jne 0x5367d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov edx, dword [eax]
call dword [edx + 0xf0]
mov eax, dword [0x5892f4]
mov eax, dword [eax]
mov byte [eax + 0x7a9], 0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov eax, dword [eax + 0x280]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3bc]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
push 0
mov eax, dword [ebp - 4]
add eax, 0x3c0
mov ecx, 1
mov edx, dword [0x4e3218]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 4]
mov byte [eax + 0x1e64], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x1e65], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x37d], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x37e], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3a4], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3a8], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3b0], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3b4], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3ac], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x20b5], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x20b8], 0xffffffff
mov eax, dword [ebp - 4]
mov byte [eax + 0x207c], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x207d], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x207e], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x2243], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x207f], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x2080], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x2081], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x2082], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x2083], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x2098], 0xffffffff
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x2084], edx
mov eax, dword [ebp - 4]
add eax, 0x2088
call fcn.004052f4
mov eax, dword [ebp - 4]
add eax, 0x208c
call fcn.004052f4
mov eax, dword [ebp - 4]
add eax, 0x2090
call fcn.004052f4
mov eax, dword [ebp - 4]
add eax, 0x2094
call fcn.004052f4
mov eax, dword [ebp - 4]
mov byte [eax + 0x2240], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x2241], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x20e0], edx
mov dword [eax + 0x20e4], edx
mov eax, dword [ebp - 4]
add eax, 0x380
call fcn.004052f4
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp eax, 1
jbe 0x536987
call fcn.00403a58
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x384]
call fcn.004052f4
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 2
jne 0x53697a
mov dword [ebp - 0x38], 2
mov eax, dword [ebp - 0x38]
add eax, 0xfffffffe
cmp eax, 5
jbe 0x5369b6
call fcn.00403a58
add eax, 2
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + eax*4 + 0x384], ecx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 8
jne 0x5369a6
mov eax, dword [ebp - 4]
mov byte [eax + 0x222a], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x222c], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x2228], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x20b4], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbfc]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc00]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc04]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe0]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe4]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe8]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbec]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbf0]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbf4]
mov edx, dword [eax]
call dword [edx + 0x48]
push 0
mov eax, dword [ebp - 4]
add eax, 0xbf8
mov ecx, 1
mov edx, dword [0x4e3270]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b8]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 4]
add eax, 0x2174
call fcn.00406ae0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x2178], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x2180], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x21ac], edx
push 0
mov eax, dword [ebp - 4]
add eax, 0x21fc
mov ecx, 1
mov edx, dword [0x4e3380]
call fcn.004063f0
add esp, 4
push 0
mov eax, dword [ebp - 4]
add eax, 0x2200
mov ecx, 1
mov edx, dword [0x4e33a0]
call fcn.004063f0
add esp, 4
push 0
mov eax, dword [ebp - 4]
add eax, 0x21f8
mov ecx, 1
mov edx, dword [0x4e3360]
call fcn.004063f0
add esp, 4
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp eax, 0x3f
jbe 0x536b45
call fcn.00403a58
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + eax*4 + 0xc0c], ecx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x40
jne 0x536b38
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp eax, 0x3f
jbe 0x536b6c
call fcn.00403a58
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + eax*4 + 0x224c], ecx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x40
jne 0x536b5f
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, 0x40
jbe 0x536b93
call fcn.00403a58
imul eax, eax, 8
jno 0x536b9d
call fcn.00403a60
mov edx, dword [ebp - 4]
lea eax, [edx + eax*8 + 0xd0c]
mov dword [ebp - 0x48], eax
push 0
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov edx, dword [0x4e2ecc]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 4]
call fcn.00406234
sub eax, 1
jno 0x536bd7
call fcn.00403a60
test eax, eax
jl 0x536c1d
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
push 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 4]
test edx, edx
je 0x536bfa
cmp eax, dword [edx - 4]
jb 0x536bff
call fcn.00403a58
lea eax, [edx + eax*4]
mov ecx, 1
mov edx, dword [0x4e2eec]
call fcn.004063f0
add esp, 4
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x536be6
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 8]
call fcn.00406234
sub eax, 1
jno 0x536c32
call fcn.00403a60
test eax, eax
jl 0x536c78
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
push 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 8]
test edx, edx
je 0x536c55
cmp eax, dword [edx - 4]
jb 0x536c5a
call fcn.00403a58
lea eax, [edx + eax*4]
mov ecx, 1
mov edx, dword [0x4e2f2c]
call fcn.004063f0
add esp, 4
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x536c41
push 0
mov eax, dword [ebp - 0x48]
add eax, 4
mov ecx, 1
mov edx, dword [0x4e2f0c]
call fcn.004063f0
add esp, 4
push 0
mov eax, dword [ebp - 0x48]
add eax, 8
mov ecx, 1
mov edx, dword [0x4e2f4c]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 0x48]
xor edx, edx
mov dword [eax + 0x3c], edx
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0x41
jne 0x536b86
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp eax, 0x3f
jbe 0x536cd5
call fcn.00403a58
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x1e7c]
call fcn.004052f4
mov eax, dword [ebp - 0x38]
cmp eax, 0x3f
jbe 0x536cf1
call fcn.00403a58
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + eax*4 + 0x1f7c], ecx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x40
jne 0x536cc8
mov eax, dword [ebp - 4]
add eax, 0x1d50
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x74]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x6c]
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x70]
call fcn.00406234
sub eax, 1
jno 0x536d44
call fcn.00403a60
test eax, eax
jl 0x536d7a
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x50]
mov edx, dword [edx + 0x70]
test edx, edx
je 0x536d65
cmp eax, dword [edx - 4]
jb 0x536d6a
call fcn.00403a58
mov eax, dword [edx + eax*4]
call fcn.00403b90
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x536d53
push 0
mov eax, dword [ebp - 0x50]
add eax, 0x70
mov ecx, 1
mov edx, dword [0x4e2d9c]
call fcn.004063f0
add esp, 4
push 0
push 0
mov eax, dword [ebp - 0x50]
add eax, 0x78
mov ecx, 2
mov edx, dword [0x4e2ddc]
call fcn.004063f0
add esp, 8
push 0
push 0
mov eax, dword [ebp - 0x50]
add eax, 0x7c
mov ecx, 2
mov edx, dword [0x4e2e1c]
call fcn.004063f0
add esp, 8
push 0
mov eax, dword [ebp - 0x50]
add eax, 0x80
mov ecx, 1
mov edx, dword [0x4e2e3c]
call fcn.004063f0
add esp, 4
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
push eax
call sub.user32.dll_GetAsyncKeyState
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x100
jne 0x536df1
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp eax, 2
jbe 0x536e18
call fcn.00403a58
mov edx, dword [ebp - 4]
mov byte [edx + eax + 0x2248], 0
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jne 0x536e0b
push 0
mov eax, dword [ebp - 4]
add eax, 0x1e6c
mov ecx, 1
mov edx, dword [0x4e32c8]
call fcn.004063f0
add esp, 4
push 0
mov eax, dword [ebp - 4]
add eax, 0x1e70
mov ecx, 1
mov edx, dword [0x4e32e8]
call fcn.004063f0
add esp, 4
lea eax, [ebp - 0x60]
call fcn.004b2dfc
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 4]
add eax, 0x36c
call fcn.00405330
call sub.kernel32.dll_GetCurrentThreadId_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x21b0], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe0]
mov ecx, dword [eax]
call dword [ecx + 0x28]
push 0x17
call sub.user32.dll_GetSystemMetrics
test eax, eax
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x37c], al
call fcn.00403150
movzx eax, ax
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x20e8]
je 0x536efe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20e8]
cmp eax, 0xffff
jbe 0x536ef9
call fcn.00403a58
call fcn.00403140
mov eax, dword [0x5892f4]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c0]
xor edx, edx
call fcn.00405614
je 0x536f38
lea eax, [ebp - 0x64]
mov edx, dword [0x5892f4]
mov edx, dword [edx]
mov edx, dword [edx + 0x7c0]
call fcn.00404d70
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.0042d07c
mov eax, dword [0x5892f4]
mov eax, dword [eax]
cmp dword [eax + 0x7c4], 0
jle 0x536f60
mov eax, dword [0x5892f4]
mov eax, dword [eax]
mov edx, dword [eax + 0x7c4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.0042d0f4
xor eax, eax
push ebp
push 0x538726
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
call fcn.004052f4
mov byte [ebp - 9], 0
mov byte [ebp - 0xa], 0
mov byte [ebp - 0x1d], 0
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 1
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x31], 1
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
sub eax, 1
jno 0x536fae
call fcn.00403a60
test eax, eax
jl 0x537598
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x44]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov ebx, dword [eax]
call dword [ebx + 0xc]
cmp byte [ebp - 0x1d], 0
jne 0x53711d
mov edx, dword [ebp - 0x44]
mov eax, 0x538854
call fcn.00405810
test eax, eax
jle 0x537053
push 1
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x538860
mov edx, 0x538874
mov eax, dword [ebp - 0x44]
call fcn.004ad270
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x44]
call fcn.00405358
push 1
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x538884
mov edx, 0x538898
mov eax, dword [ebp - 0x44]
call fcn.004ad270
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 0x44]
call fcn.00405358
push 1
lea eax, [ebp - 0x70]
push eax
mov ecx, 0x5388ac
mov edx, 0x5388c0
mov eax, dword [ebp - 0x44]
call fcn.004ad270
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0x44]
call fcn.00405358
push 0
push 1
xor ecx, ecx
mov edx, dword [ebp - 0x44]
mov eax, 0x5388d4
call fcn.004ad010
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x53711d
push 0
push 0
mov ecx, dword [ebp - 0x44]
mov dx, 0x28
mov eax, dword [ebp - 4]
call fcn.004e7cc0
mov ebx, eax
push 0
push 0
mov ecx, dword [ebp - 0x44]
mov dx, 0x29
mov eax, dword [ebp - 4]
call fcn.004e7cc0
cmp ebx, eax
je 0x5370ae
lea eax, [ebp - 0x44]
mov edx, 0x5388e0
call fcn.00405358
jmp 0x53711d
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
dec eax
test edx, edx
je 0x5370be
cmp eax, dword [edx - 4]
jb 0x5370c3
call fcn.00403a58
inc eax
mov word [edx + eax*2 - 2], 0x5d
mov edx, dword [ebp - 0x3c]
sub edx, 1
jno 0x5370d8
call fcn.00403a60
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.005333a4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jge 0x5370fb
lea eax, [ebp - 0x44]
mov edx, 0x5388e0
call fcn.00405358
jmp 0x53711d
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
dec eax
test edx, edx
je 0x53710b
cmp eax, dword [edx - 4]
jb 0x537110
call fcn.00403a58
inc eax
mov word [edx + eax*2 - 2], 0x5b
jmp 0x537053
add dword [ebp - 0x18], 1
jno 0x537128
call fcn.00403a60
mov eax, dword [ebp - 0x44]
mov edx, 0x5388e0
call fcn.00405614
jne 0x5371b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, 0x53890c
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x7c]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
jno 0x53715a
call fcn.00403a60
call fcn.0040a308
lea eax, [ebp - 0x7c]
mov edx, 0x538958
call fcn.00404db4
mov edx, dword [ebp - 0x7c]
lea eax, [ebp - 0x78]
call fcn.004054d0
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x80]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x80]
pop eax
call fcn.004054fc
mov edx, dword [ebp - 0x78]
lea ecx, [ebp - 0x74]
mov eax, dword [ebp - 4]
call fcn.004e7068
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe0]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x53758c
mov byte [ebp - 0x32], 0
cmp byte [ebp - 0x1d], 0
jne 0x53722d
lea eax, [ebp - 0x84]
push eax
mov ecx, 8
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0x84]
mov edx, 0x538960
call fcn.00405614
je 0x53722d
lea eax, [ebp - 0x88]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0x88]
mov edx, 0x538978
call fcn.00405614
je 0x537231
push 0
push 1
xor ecx, ecx
mov edx, dword [ebp - 0x44]
mov eax, 0x538984
call fcn.004ad010
test eax, eax
jne 0x537231
mov byte [ebp - 0x32], 1
cmp byte [ebp - 0x1d], 0
je 0x5372a2
mov edx, dword [ebp - 0x44]
mov eax, 0x538984
call fcn.00405810
test eax, eax
jle 0x5372a2
lea eax, [ebp - 0x8c]
push eax
mov ecx, 0xd
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0x8c]
mov edx, 0x53898c
call fcn.00405614
je 0x53729e
lea eax, [ebp - 0x90]
push eax
mov ecx, 0xd
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0x90]
mov edx, 0x5389ac
call fcn.00405614
jne 0x5372a2
mov byte [ebp - 0x32], 0
cmp byte [ebp - 0x32], 0
je 0x5373fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x44]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push ebp
call fcn.00533f24
pop ecx
mov byte [ebp - 0x33], 0
lea eax, [ebp - 0x94]
push eax
mov ecx, 0xa
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0x94]
mov edx, 0x5389cc
call fcn.00405614
jne 0x53734a
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x44]
call fcn.004054f0
mov edx, eax
sub edx, 5
jno 0x53730e
call fcn.00403a60
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0x98]
mov edx, 0x5389e8
call fcn.00405614
jne 0x53734a
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 1
add dword [ebp - 0x2c], 1
jno 0x537346
call fcn.00403a60
mov byte [ebp - 0x31], 1
cmp byte [ebp - 0x31], 0
je 0x53736e
mov eax, dword [ebp - 0x44]
mov edx, 0x5389fc
call fcn.00405614
jne 0x53736e
mov dword [ebp - 0x1c], 2
mov byte [ebp - 0x31], 0
mov byte [ebp - 0x33], 1
lea edx, [ebp - 0xa4]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
jno 0x537381
call fcn.00403a60
call fcn.0040a308
lea eax, [ebp - 0xa4]
mov edx, 0x538958
call fcn.00404db4
mov edx, dword [ebp - 0xa4]
lea eax, [ebp - 0xa0]
call fcn.004054d0
lea eax, [ebp - 0xa0]
mov edx, dword [ebp - 0x44]
call fcn.004054fc
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0x9c]
mov eax, dword [ebp - 4]
call fcn.004e7068
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe0]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp byte [ebp - 0x33], 0
je 0x53758c
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x53758c
lea eax, [ebp - 0x40]
call fcn.004052f4
jmp 0x53758c
lea eax, [ebp - 0xa8]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 0x44]
call fcn.00405698
mov eax, dword [ebp - 0xa8]
mov edx, 0x538978
call fcn.00405614
jne 0x537438
push ebp
mov eax, dword [ebp - 0x44]
call fcn.00533910
pop ecx
jmp 0x53758c
lea edx, [ebp - 0xac]
mov eax, dword [ebp - 0x44]
call fcn.00409f90
mov eax, dword [ebp - 0xac]
xor edx, edx
call fcn.00405614
je 0x53758c
push 1
push 1
push 1
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x44]
mov cl, 1
mov edx, 0x538984
call fcn.004acb58
mov eax, dword [ebp - 0xb0]
lea edx, [ebp - 0x40]
call fcn.00409f90
mov eax, dword [ebp - 0x40]
xor edx, edx
call fcn.00405614
je 0x537438
lea eax, [ebp - 0xb4]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 0x40]
call fcn.00405698
mov eax, dword [ebp - 0xb4]
mov edx, 0x538978
call fcn.00405614
jne 0x5374c9
push ebp
mov eax, dword [ebp - 0x40]
call fcn.00533910
pop ecx
jmp 0x537438
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x40]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push ebp
call fcn.00533f24
pop ecx
lea edx, [ebp - 0xc0]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
jno 0x5374f4
call fcn.00403a60
call fcn.0040a308
lea eax, [ebp - 0xc0]
mov edx, 0x538958
call fcn.00404db4
mov edx, dword [ebp - 0xc0]
lea eax, [ebp - 0xbc]
call fcn.004054d0
lea eax, [ebp - 0xbc]
mov edx, dword [ebp - 0x40]
call fcn.004054fc
mov edx, dword [ebp - 0xbc]
lea ecx, [ebp - 0xb8]
mov eax, dword [ebp - 4]
call fcn.004e7068
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbe0]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp byte [ebp - 0x1d], 0
je 0x537438
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, eax
sub edx, 1
jno 0x537574
call fcn.00403a60
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538a0c
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x537438
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x536fc1
mov eax, dword [ebp - 4]
add eax, 0x209c
call fcn.004052f4
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.00405614
je 0x537630
mov eax, dword [0x589364]
cmp byte [eax], 0
je 0x5375f5
push 0
push 0
push 0x538a54
push dword [ebp - 8]
push 0x538a78
lea eax, [ebp - 0xc4]
mov edx, 3
call fcn.004055cc
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x1d50]
mov eax, dword [ebp - 4]
call fcn.004e770c
jmp 0x537623
push 0
push 0
lea eax, [ebp - 0xc8]
mov ecx, dword [ebp - 8]
mov edx, 0x538ab8
call fcn.0040555c
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x1d50]
mov eax, dword [ebp - 4]
call fcn.004e770c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53878e
cmp byte [ebp - 0x1d], 0
je 0x537683
mov eax, dword [0x589364]
cmp byte [eax], 0
je 0x53765c
push 0
push 0
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x1d50]
mov edx, 0x538b20
mov eax, dword [ebp - 4]
call fcn.004e770c
jmp 0x537676
push 0
push 0
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x1d50]
mov edx, 0x538b4c
mov eax, dword [ebp - 4]
call fcn.004e770c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53878e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
mov eax, dword [ebp - 4]
add eax, 0x1d4c
mov ecx, 1
mov edx, dword [0x4e32a8]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 4]
add eax, 0xd0c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
mov eax, dword [ebp - 0x54]
mov ecx, 1
mov edx, dword [0x4e2ecc]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
mov eax, dword [ebp - 0x54]
add eax, 4
mov ecx, 1
mov edx, dword [0x4e2f0c]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
mov eax, dword [ebp - 0x54]
add eax, 8
mov ecx, 1
mov edx, dword [0x4e2f4c]
call fcn.004063f0
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
sub eax, 1
jno 0x537745
call fcn.00403a60
test eax, eax
jl 0x53777a
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537769
cmp eax, dword [edx - 4]
jb 0x53776e
call fcn.00403a58
mov byte [edx + eax], 0
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x537754
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [eax]
call dword [edx + 0x14]
sub eax, 1
jno 0x537792
call fcn.00403a60
test eax, eax
jl 0x53855b
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push 0
lea eax, [ebp - 0x44]
push eax
lea edx, [ebp - 0x40]
mov cx, 0x20
mov eax, dword [ebp - 4]
call fcn.004e50c0
mov eax, dword [ebp - 0x44]
mov edx, 0x538b88
call fcn.00405614
je 0x5377ec
mov eax, dword [ebp - 0x44]
mov edx, 0x538b94
call fcn.00405614
jne 0x537836
lea ecx, [ebp - 0xcc]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.00539548
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537825
cmp eax, dword [edx - 4]
jb 0x53782a
call fcn.00403a58
mov dword [edx + eax*4], 0xc
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538ba8
call fcn.00405614
jne 0x53788f
lea ecx, [ebp - 0xd0]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0053a2d0
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x53787e
cmp eax, dword [edx - 4]
jb 0x537883
call fcn.00403a58
mov dword [edx + eax*4], 0xf
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538bb4
call fcn.00405614
jne 0x5378e8
lea ecx, [ebp - 0xd4]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0053aaf0
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5378d7
cmp eax, dword [edx - 4]
jb 0x5378dc
call fcn.00403a58
mov dword [edx + eax*4], 0x11
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538bc4
call fcn.00405614
jne 0x537941
lea ecx, [ebp - 0xd8]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0053ae48
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537930
cmp eax, dword [edx - 4]
jb 0x537935
call fcn.00403a58
mov dword [edx + eax*4], 0x13
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538bd8
call fcn.00405614
jne 0x53799a
lea ecx, [ebp - 0xdc]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.00539c98
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537989
cmp eax, dword [edx - 4]
jb 0x53798e
call fcn.00403a58
mov dword [edx + eax*4], 0x16
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538bec
call fcn.00405614
jne 0x5379f3
lea ecx, [ebp - 0xe0]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0053b2c8
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5379e2
cmp eax, dword [edx - 4]
jb 0x5379e7
call fcn.00403a58
mov dword [edx + eax*4], 0x1a
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538bf8
call fcn.00405614
je 0x537a24
mov eax, dword [ebp - 0x44]
mov edx, 0x538c0c
call fcn.00405614
je 0x537a24
mov eax, dword [ebp - 0x44]
mov edx, 0x538c20
call fcn.00405614
jne 0x537b7d
mov eax, dword [ebp - 0x44]
mov edx, 0x538bf8
call fcn.00405614
jne 0x537aab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537a58
cmp eax, dword [edx - 4]
jb 0x537a5d
call fcn.00403a58
mov dword [edx + eax*4], 0x1b
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0053be80
test al, al
je 0x537aab
mov eax, dword [0x589364]
cmp byte [eax], 0
je 0x537a95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538c34
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x537aab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538cac
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x44]
mov edx, 0x538c0c
call fcn.00405614
jne 0x537aeb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537adf
cmp eax, dword [edx - 4]
jb 0x537ae4
call fcn.00403a58
mov dword [edx + eax*4], 0x1c
mov eax, dword [ebp - 0x44]
mov edx, 0x538c20
call fcn.00405614
jne 0x537b2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537b1f
cmp eax, dword [edx - 4]
jb 0x537b24
call fcn.00403a58
mov dword [edx + eax*4], 0x1d
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537b40
cmp eax, dword [edx - 4]
jb 0x537b45
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xe4]
mov eax, 0x538bec
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538d5c
call fcn.00405614
jne 0x537c13
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537bb5
cmp eax, dword [edx - 4]
jb 0x537bba
call fcn.00403a58
mov dword [edx + eax*4], 0xe
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537bd6
cmp eax, dword [edx - 4]
jb 0x537bdb
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xe8]
mov eax, 0x538b88
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538d6c
call fcn.00405614
jne 0x537ca9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537c4b
cmp eax, dword [edx - 4]
jb 0x537c50
call fcn.00403a58
mov dword [edx + eax*4], 0xd
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537c6c
cmp eax, dword [edx - 4]
jb 0x537c71
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xec]
mov eax, 0x538b88
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538d7c
call fcn.00405614
jne 0x537d3f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537ce1
cmp eax, dword [edx - 4]
jb 0x537ce6
call fcn.00403a58
mov dword [edx + eax*4], 0x10
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537d02
cmp eax, dword [edx - 4]
jb 0x537d07
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xf0]
mov eax, 0x538ba8
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538d8c
call fcn.00405614
jne 0x537dd5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537d77
cmp eax, dword [edx - 4]
jb 0x537d7c
call fcn.00403a58
mov dword [edx + eax*4], 0x12
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537d98
cmp eax, dword [edx - 4]
jb 0x537d9d
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xf4]
mov eax, 0x538bb4
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538d9c
call fcn.00405614
jne 0x537e6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537e0d
cmp eax, dword [edx - 4]
jb 0x537e12
call fcn.00403a58
mov dword [edx + eax*4], 0x15
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537e2e
cmp eax, dword [edx - 4]
jb 0x537e33
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xf8]
mov eax, 0x538bc4
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538dac
call fcn.00405614
jne 0x537f01
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537ea3
cmp eax, dword [edx - 4]
jb 0x537ea8
call fcn.00403a58
mov dword [edx + eax*4], 0x17
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537ec4
cmp eax, dword [edx - 4]
jb 0x537ec9
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0xfc]
mov eax, 0x538bd8
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538dc0
call fcn.00405614
jne 0x537f97
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537f39
cmp eax, dword [edx - 4]
jb 0x537f3e
call fcn.00403a58
mov dword [edx + eax*4], 0x18
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537f5a
cmp eax, dword [edx - 4]
jb 0x537f5f
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0x100]
mov eax, 0x538bd8
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0x100]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538dd0
call fcn.00405614
jne 0x53802d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x537fcf
cmp eax, dword [edx - 4]
jb 0x537fd4
call fcn.00403a58
mov dword [edx + eax*4], 0x19
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1d4c]
test edx, edx
je 0x537ff0
cmp eax, dword [edx - 4]
jb 0x537ff5
call fcn.00403a58
cmp byte [edx + eax], 0
jne 0x53854f
push ebp
lea edx, [ebp - 0x104]
mov eax, 0x538bd8
call fcn.0053356c
pop ecx
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538de4
call fcn.00405614
jne 0x538072
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538061
cmp eax, dword [edx - 4]
jb 0x538066
call fcn.00403a58
mov dword [edx + eax*4], 0x1f
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538df4
call fcn.00405614
jne 0x5380b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5380a6
cmp eax, dword [edx - 4]
jb 0x5380ab
call fcn.00403a58
mov dword [edx + eax*4], 0x20
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e08
call fcn.00405614
jne 0x5380fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5380eb
cmp eax, dword [edx - 4]
jb 0x5380f0
call fcn.00403a58
mov dword [edx + eax*4], 0x21
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e1c
call fcn.00405614
jne 0x538141
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538130
cmp eax, dword [edx - 4]
jb 0x538135
call fcn.00403a58
mov dword [edx + eax*4], 0x22
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e28
call fcn.00405614
jne 0x538186
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538175
cmp eax, dword [edx - 4]
jb 0x53817a
call fcn.00403a58
mov dword [edx + eax*4], 0x23
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e3c
call fcn.00405614
jne 0x5381cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5381ba
cmp eax, dword [edx - 4]
jb 0x5381bf
call fcn.00403a58
mov dword [edx + eax*4], 0x24
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e4c
call fcn.00405614
jne 0x538210
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5381ff
cmp eax, dword [edx - 4]
jb 0x538204
call fcn.00403a58
mov dword [edx + eax*4], 0x25
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e64
call fcn.00405614
jne 0x538255
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538244
cmp eax, dword [edx - 4]
jb 0x538249
call fcn.00403a58
mov dword [edx + eax*4], 0x26
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e74
call fcn.00405614
jne 0x53829a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538289
cmp eax, dword [edx - 4]
jb 0x53828e
call fcn.00403a58
mov dword [edx + eax*4], 0x27
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e84
call fcn.00405614
jne 0x5382df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5382ce
cmp eax, dword [edx - 4]
jb 0x5382d3
call fcn.00403a58
mov dword [edx + eax*4], 0x29
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538e9c
call fcn.00405614
jne 0x538324
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538313
cmp eax, dword [edx - 4]
jb 0x538318
call fcn.00403a58
mov dword [edx + eax*4], 0x2a
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538eac
call fcn.00405614
jne 0x5383a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538358
cmp eax, dword [edx - 4]
jb 0x53835d
call fcn.00403a58
mov dword [edx + eax*4], 0x2b
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 0x40]
call fcn.00409f90
mov eax, dword [ebp - 0x108]
xor edx, edx
call fcn.00405614
je 0x53854f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538ec0
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538f08
call fcn.00405614
jne 0x53841c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5383d4
cmp eax, dword [edx - 4]
jb 0x5383d9
call fcn.00403a58
mov dword [edx + eax*4], 0x2c
lea edx, [ebp - 0x10c]
mov eax, dword [ebp - 0x40]
call fcn.00409f90
mov eax, dword [ebp - 0x10c]
xor edx, edx
call fcn.00405614
je 0x53854f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538ec0
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538f24
call fcn.00405614
jne 0x538498
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538450
cmp eax, dword [edx - 4]
jb 0x538455
call fcn.00403a58
mov dword [edx + eax*4], 0x2d
lea edx, [ebp - 0x110]
mov eax, dword [ebp - 0x40]
call fcn.00409f90
mov eax, dword [ebp - 0x110]
xor edx, edx
call fcn.00405614
je 0x53854f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538ec0
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x5389fc
call fcn.00405614
jne 0x53850d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x5384cc
cmp eax, dword [edx - 4]
jb 0x5384d1
call fcn.00403a58
mov dword [edx + eax*4], 0x31
lea edx, [ebp - 0x114]
mov eax, dword [ebp - 0x40]
call fcn.00409f90
mov eax, dword [ebp - 0x114]
xor edx, edx
call fcn.00405614
je 0x53854f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538ec0
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x53854f
mov eax, dword [ebp - 0x44]
mov edx, 0x538f40
call fcn.00405614
jne 0x53854f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, 0x538f40
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
test edx, edx
je 0x538543
cmp eax, dword [edx - 4]
jb 0x538548
call fcn.00403a58
mov dword [edx + eax*4], 0x33
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x5377a5
push 0
mov eax, dword [ebp - 4]
add eax, 0x1d4c
mov ecx, 1
mov edx, dword [0x4e32a8]
call fcn.004063f0
add esp, 4
lea edx, [ebp - 0x118]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x118]
mov eax, 0x5388e0
call fcn.00405810
test eax, eax
jne 0x53871c
mov eax, dword [ebp - 4]
add eax, 0x209c
call fcn.004052f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbfc]
mov edx, dword [eax]
call dword [edx + 0x14]
sub eax, 1
jno 0x5385c9
call fcn.00403a60
test eax, eax
jl 0x53871c
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbfc]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push 0
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 4]
add eax, 0x1d50
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x44]
push 0x538f74
push dword [ebp - 0x44]
lea eax, [ebp - 0x11c]
mov edx, 3
call fcn.004055cc
mov edx, dword [ebp - 0x11c]
mov ecx, 3
mov eax, dword [ebp - 4]
call fcn.004eb3c4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jl 0x538710
lea ecx, [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x3c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push 0
lea eax, [ebp - 0x120]
push eax
lea edx, [ebp - 0x44]
mov cx, 0x28
mov eax, dword [ebp - 4]
call fcn.004e50c0
push 0
lea eax, [ebp - 0x124]
push eax
lea edx, [ebp - 0x44]
mov cx, 0x29
mov eax, dword [ebp - 4]
call fcn.004e50c0
mov edx, dword [ebp - 0x124]
lea eax, [ebp - 0x44]
call fcn.00405358
mov eax, dword [ebp - 0x44]
xor edx, edx
call fcn.00405614
je 0x538710
lea ecx, [ebp - 0x128]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc]
mov edx, dword [ebp - 0x3c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
add eax, 0x209c
call fcn.00405330
mov eax, dword [0x589364]
cmp byte [eax], 0
je 0x5386ec
push 0
push 0
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x1d50]
mov edx, 0x538f7c
mov eax, dword [ebp - 4]
call fcn.004e770c
jmp 0x538706
push 0
push 0
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x1d50]
mov edx, 0x538fac
mov eax, dword [ebp - 4]
call fcn.004e770c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53878e
inc dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x5385dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x538781
mov eax, dword [ebp - 4]
add eax, 0x209c
call fcn.004052f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x538846
lea eax, [ebp - 0x130]
call fcn.00404acc
lea eax, [ebp - 0x12c]
mov edx, 0x1b
call fcn.0040530c
lea eax, [ebp - 0xc0]
call fcn.00404acc
lea eax, [ebp - 0xbc]
mov edx, 6
call fcn.0040530c
lea eax, [ebp - 0xa4]
call fcn.00404acc
lea eax, [ebp - 0xa0]
mov edx, 9
call fcn.0040530c
lea eax, [ebp - 0x7c]
call fcn.00404acc
lea eax, [ebp - 0x78]
mov edx, 5
call fcn.0040530c
lea eax, [ebp - 0x64]
call fcn.00404acc
lea eax, [ebp - 0x60]
mov edx, 2
call fcn.0040530c
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.0040530c
lea eax, [ebp - 0x24]
call fcn.004052f4
lea eax, [ebp - 0x14]
call fcn.004052f4
lea eax, [ebp - 8]
call fcn.004052f4
ret