Function at 0x59b4bc
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x12a
push 0
push 0
dec ecx
jne 0x59b4c4
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x59d9d5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.005324bc
mov byte [ebp - 1], 0
lea eax, [ebp - 8]
call fcn.00404ae4
mov eax, dword [0x669434]
call fcn.00404ae4
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59d9f4
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669e70]
mov byte [eax], 1
mov eax, dword [0x669dfc]
mov eax, dword [eax]
sub eax, 1
jb 0x59b53c
je 0x59c625
jmp 0x59d87a
mov eax, dword [0x669a68]
mov al, byte [eax]
sub al, 1
jb 0x59b552
je 0x59b820
jmp 0x59bc9f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x5c]
or eax, dword [0x59da14]
mov edx, dword [0x59da18]
not edx
and edx, eax
or edx, dword [0x59da1c]
mov eax, dword [0x59da20]
not eax
and eax, edx
mov edx, dword [0x59da24]
not edx
and edx, eax
mov eax, dword [0x59da18]
not eax
and eax, edx
mov edx, dword [0x59da28]
not edx
and edx, eax
or edx, dword [0x59da2c]
or edx, dword [0x59da30]
mov eax, dword [0x59da34]
not eax
and eax, edx
mov edx, dword [0x59da38]
not edx
and edx, eax
mov eax, dword [0x59da3c]
not eax
and eax, edx
mov edx, dword [ebp - 0x34]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x64], 1
mov eax, dword [ebp - 0x34]
add eax, 0x78
call fcn.00404ae4
mov edx, 0x59da48
mov eax, dword [ebp - 0x34]
call fcn.00439c04
mov eax, dword [ebp - 0x34]
add eax, 0x74
mov edx, 0x59da64
call fcn.00404b38
mov eax, dword [ebp - 0x34]
add eax, 0x60
mov edx, 0x59da70
call fcn.00404b38
mov eax, dword [ebp - 0x34]
add eax, 0x70
mov edx, 0x59da90
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x59b651
lea edx, [ebp - 8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
call fcn.00439b6c
jmp 0x59b659
lea eax, [ebp - 8]
call fcn.00404ae4
cmp dword [ebp - 8], 0
jne 0x59b695
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daa8
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x84c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
lea edx, [ebp - 0x854]
mov eax, dword [ebp - 8]
call fcn.0040af40
mov ecx, dword [ebp - 0x854]
lea eax, [ebp - 0x850]
mov edx, 0x59dad8
call fcn.00404e00
mov edx, dword [ebp - 0x850]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov dl, 1
mov eax, dword [0x41a7f4]
call fcn.00403c64
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
call fcn.00639730
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59b715
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daec
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59b731
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db04
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59b74d
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db1c
call fcn.0052fa8c
mov eax, dword [ebp - 0x10]
call fcn.00403c94
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59b7a1
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59b7a1
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db38
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x858]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.006427cc
xor edx, edx
mov eax, 1
call fcn.005d11fc
test al, al
jne 0x59bc9f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db64
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db9c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dbd0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x85c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
call fcn.005cc49c
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x21], 7
je 0x59b87b
cmp byte [ebp - 0x21], 9
je 0x59b87b
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dc0c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dc60
call fcn.0052fa8c
lea edx, [ebp - 0x860]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
jmp 0x59d909
mov eax, dword [0x669348]
cmp dword [eax], 0
je 0x59ba57
mov eax, dword [0x669348]
mov eax, dword [eax]
mov edx, 0x59dc84
call fcn.00404f00
je 0x59ba57
lea edx, [ebp - 0x868]
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.0049975c
mov eax, dword [ebp - 0x868]
lea edx, [ebp - 0x864]
call fcn.0040ae94
push dword [ebp - 0x864]
push 0x59dc94
mov eax, dword [0x669348]
push dword [eax]
push 0x59dcb0
lea eax, [ebp - 8]
mov edx, 4
call fcn.00404e74
mov eax, dword [ebp - 8]
call fcn.0040ab4c
test al, al
je 0x59b904
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59ba57
lea eax, [ebp - 8]
call fcn.00404ae4
mov eax, dword [0x669348]
push dword [eax]
push 0x59dcb0
push 0x59dcc0
lea eax, [ebp - 0x86c]
mov edx, 3
call fcn.00404e74
mov edx, dword [ebp - 0x86c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcd4
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x5c]
or eax, dword [0x59da14]
mov edx, dword [0x59da18]
not edx
and edx, eax
or edx, dword [0x59da1c]
mov eax, dword [0x59da20]
not eax
and eax, edx
mov edx, dword [0x59da24]
not edx
and edx, eax
mov eax, dword [0x59da18]
not eax
and eax, edx
mov edx, dword [0x59da28]
not edx
and edx, eax
or edx, dword [0x59da2c]
or edx, dword [0x59da30]
mov eax, dword [0x59da34]
not eax
and eax, edx
mov edx, dword [0x59da38]
not edx
and edx, eax
mov eax, dword [0x59da3c]
not eax
and eax, edx
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x64], 1
mov eax, dword [ebp - 0x38]
add eax, 0x78
call fcn.00404ae4
mov edx, 0x59da48
mov eax, dword [ebp - 0x38]
call fcn.00439c04
mov eax, dword [ebp - 0x38]
add eax, 0x74
mov edx, 0x59da64
call fcn.00404b38
mov eax, dword [ebp - 0x38]
add eax, 0x60
mov edx, 0x59da70
call fcn.00404b38
mov eax, dword [ebp - 0x38]
add eax, 0x70
mov edx, 0x59da90
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x59ba4f
lea edx, [ebp - 8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
call fcn.00439b6c
jmp 0x59ba57
lea eax, [ebp - 8]
call fcn.00404ae4
cmp dword [ebp - 8], 0
jne 0x59ba93
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcf0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x870]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
lea edx, [ebp - 0x878]
mov eax, dword [ebp - 8]
call fcn.0040af40
mov ecx, dword [ebp - 0x878]
lea eax, [ebp - 0x874]
mov edx, 0x59dad8
call fcn.00404e00
mov edx, dword [ebp - 0x874]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov dl, 1
mov eax, dword [0x41a7f4]
call fcn.00403c64
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
call fcn.00639730
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59bb13
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daec
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59bb2f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db04
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59bb4b
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db1c
call fcn.0052fa8c
mov eax, dword [ebp - 0x10]
call fcn.00403c94
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59bb9f
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59bb9f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd24
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x87c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.005cc4e0
test al, al
jne 0x59bbfd
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd50
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd84
call fcn.0052fa8c
lea edx, [ebp - 0x880]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
jmp 0x59d909
call fcn.006427cc
xor edx, edx
xor eax, eax
call fcn.005d11fc
test al, al
jne 0x59bc9f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db64
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db9c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dbd0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x884]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x440]
mov edx, dword [eax]
call dword [edx + 0xc8]
cmp al, 1
jne 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x440]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x59d909
mov eax, dword [0x669eec]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dda4
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, 0x1f4
call fcn.005965d8
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x669d54]
mov al, byte [eax]
sub al, 1
jb 0x59bcf1
je 0x59c08b
jmp 0x59c580
mov dword [ebp - 0xc], 0x1e
cmp dword [ebp - 0xc], 0
jle 0x59bd7b
lea edx, [ebp - 0x88c]
mov eax, dword [ebp - 0xc]
call fcn.0040a40c
mov ecx, dword [ebp - 0x88c]
lea eax, [ebp - 0x888]
mov edx, 0x59ddc8
call fcn.00404e00
mov edx, dword [ebp - 0x888]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
call fcn.00650b04
cmp al, 2
je 0x59bd6d
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
push 0x3e8
call sub.KERNEL32.DLL_Sleep_1
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59bd72
xor eax, eax
mov dword [ebp - 0xc], eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0
jg 0x59bcfe
call fcn.00650ae4
test al, al
jne 0x59bde3
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dde8
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov eax, dword [eax + 0x208]
mov edx, 4
call fcn.0044e464
xor edx, edx
call fcn.0044e36c
lea edx, [ebp - 0x890]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
call fcn.0064aed4
jmp 0x59d909
call fcn.005d5410
xor eax, eax
push ebp
push 0x59bf4d
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x894]
mov edx, 1
mov eax, 0x59de0c
call fcn.005e040c
mov edx, dword [ebp - 0x894]
mov eax, dword [0x66a208]
call fcn.0040544c
mov eax, dword [0x66a208]
mov eax, dword [eax]
xor edx, edx
call fcn.004055f0
je 0x59bf43
mov eax, dword [0x66a208]
mov eax, dword [eax]
mov edx, 0x59de14
call fcn.004055f0
je 0x59bf43
mov eax, dword [0x66a208]
mov eax, dword [eax]
mov edx, 0x59de24
call fcn.004055f0
je 0x59bf43
lea eax, [ebp - 0x898]
push eax
mov eax, dword [0x66a208]
mov eax, dword [eax]
mov ecx, 0xe
mov edx, 0x39
call fcn.00405674
mov edx, dword [ebp - 0x898]
lea eax, [ebp - 0x1c]
call fcn.00404d7c
lea edx, [ebp - 0x89c]
mov eax, dword [ebp - 0x1c]
call fcn.0049b9c4
mov edx, dword [ebp - 0x89c]
lea eax, [ebp - 0x1c]
call fcn.00404b7c
lea edx, [ebp - 0x8a4]
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.0049975c
mov eax, dword [ebp - 0x8a4]
lea edx, [ebp - 0x8a0]
call fcn.0040ae94
push dword [ebp - 0x8a0]
push 0x59de38
push dword [ebp - 0x1c]
push 0x59de4c
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.00404e74
mov eax, dword [ebp - 0x20]
call fcn.0040ab4c
test al, al
je 0x59bf0a
mov eax, dword [0x669434]
mov edx, dword [ebp - 0x1c]
call fcn.00404b38
mov eax, dword [ebp - 0x20]
call fcn.005b3a94
jmp 0x59bf43
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x66a050]
mov eax, dword [eax + 4]
mov ecx, 0xe
mov edx, 0x91
call fcn.00405014
lea edx, [ebp - 0x8a8]
mov eax, dword [ebp - 0x1c]
call fcn.0049b9c4
mov edx, dword [ebp - 0x8a8]
mov eax, dword [0x669434]
call fcn.00404b38
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59bf63
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59de58
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59bfe5
mov eax, 0x59de8c
call fcn.005e08e8
test al, al
je 0x59bfac
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59de98
call fcn.0052fa8c
lea eax, [ebp - 0x8ac]
mov edx, dword [0x66a050]
mov edx, dword [edx + 4]
call fcn.0040544c
mov eax, dword [ebp - 0x8ac]
mov edx, 0x59de8c
call fcn.005e063c
test al, al
je 0x59bfe5
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59deb0
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59c048
mov eax, 0x59decc
call fcn.005e08e8
test al, al
je 0x59c00f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59ded8
call fcn.0052fa8c
lea eax, [ebp - 0x8b0]
mov edx, dword [0x66a050]
mov edx, dword [edx + 8]
call fcn.0040544c
mov eax, dword [ebp - 0x8b0]
mov edx, 0x59decc
call fcn.005e063c
test al, al
je 0x59c048
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59def0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59df0c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.005d5728
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59c580
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, 0xfa0
call fcn.005965d8
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
call fcn.005e6770
test al, al
jne 0x59c15e
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59df38
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59df5c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov eax, dword [eax + 0x208]
mov edx, 4
call fcn.0044e464
xor edx, edx
call fcn.0044e36c
lea edx, [ebp - 0x8b4]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
call fcn.0064aed4
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x440]
mov edx, dword [eax]
call dword [edx + 0xc8]
cmp al, 1
jne 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x440]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59df80
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.005f36f8
test al, al
jne 0x59c1a3
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59c467
xor eax, eax
push ebp
push 0x59c451
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x41ab08]
call fcn.00403c64
mov dword [ebp - 0x30], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov ecx, 0x4000
mov edx, 0x40000
mov eax, 0x20000
call fcn.005f2f4c
mov dword [ebp - 0x30], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0x14]
xor eax, eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
call fcn.00404ae4
mov eax, dword [0x66a208]
call fcn.0040529c
xor eax, eax
push ebp
push 0x59c236
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x40000
mov ecx, dword [ebp - 0x28]
mov edx, 0x59dfb4
mov eax, dword [ebp - 0x30]
call fcn.005b157c
mov dword [ebp - 0x28], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59c245
cmp dword [ebp - 0x28], 0
je 0x59c317
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov edx, dword [ebp - 0x28]
add edx, 0x1c
xor ecx, ecx
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0x14]
lea edx, [ebp - 0x848]
mov ecx, 0x400
mov eax, dword [ebp - 0x30]
call fcn.00420704
lea ecx, [ebp - 0x2c]
lea eax, [ebp - 0x848]
mov edx, 0x400
call fcn.0049b85c
mov eax, dword [0x6695c4]
call fcn.00404ae4
cmp byte [ebp - 0x848], 0xcb
jne 0x59c317
cmp byte [ebp - 0x847], 0xfc
jne 0x59c317
mov eax, dword [0x66a208]
mov edx, dword [ebp - 0x2c]
call fcn.0040544c
xor eax, eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1c]
call fcn.00404ae4
mov edx, dword [ebp - 0x2c]
mov eax, 0x59dff8
call fcn.004050f8
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1c]
push eax
mov edx, dword [ebp - 0xc]
add edx, 0x10
mov ecx, 0x10
mov eax, dword [ebp - 0x2c]
call fcn.00405014
mov eax, dword [0x6695c4]
push eax
lea edx, [ebp - 0x8b8]
mov eax, dword [ebp - 0x1c]
call fcn.0049bd2c
mov eax, dword [ebp - 0x8b8]
mov ecx, 0xf
mov edx, 2
call fcn.00405014
mov eax, dword [ebp - 0x30]
call fcn.00403c94
mov eax, dword [0x66a208]
mov eax, dword [eax]
xor edx, edx
call fcn.004055f0
je 0x59c447
mov eax, dword [0x66a208]
mov eax, dword [eax]
mov edx, 0x59de14
call fcn.004055f0
je 0x59c447
mov eax, dword [0x66a208]
mov eax, dword [eax]
mov edx, 0x59de24
call fcn.004055f0
je 0x59c447
lea eax, [ebp - 0x8bc]
push eax
mov eax, dword [0x66a208]
mov eax, dword [eax]
mov ecx, 0xe
mov edx, 0x39
call fcn.00405674
mov edx, dword [ebp - 0x8bc]
lea eax, [ebp - 0x1c]
call fcn.00404d7c
lea edx, [ebp - 0x8c0]
mov eax, dword [ebp - 0x1c]
call fcn.0049b9c4
mov edx, dword [ebp - 0x8c0]
lea eax, [ebp - 0x1c]
call fcn.00404b7c
lea edx, [ebp - 0x8c8]
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.0049975c
mov eax, dword [ebp - 0x8c8]
lea edx, [ebp - 0x8c4]
call fcn.0040ae94
push dword [ebp - 0x8c4]
push 0x59de38
push dword [ebp - 0x1c]
push 0x59de4c
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.00404e74
mov eax, dword [ebp - 0x20]
call fcn.0040ab4c
test al, al
je 0x59c40e
mov eax, dword [0x669434]
mov edx, dword [ebp - 0x1c]
call fcn.00404b38
mov eax, dword [ebp - 0x20]
call fcn.005b3a94
jmp 0x59c447
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x66a050]
mov eax, dword [eax + 4]
mov ecx, 0xe
mov edx, 0x91
call fcn.00405014
lea edx, [ebp - 0x8cc]
mov eax, dword [ebp - 0x1c]
call fcn.0049b9c4
mov edx, dword [ebp - 0x8cc]
mov eax, dword [0x669434]
call fcn.00404b38
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59c467
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59c4cc
mov eax, 0x59de8c
call fcn.005eb590
test al, al
je 0x59c491
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59de98
call fcn.0052fa8c
mov eax, dword [0x66a050]
mov eax, dword [eax + 4]
mov edx, 0x59de8c
call fcn.005eb8e0
test al, al
je 0x59c4b8
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59deb0
call fcn.0052fa8c
call fcn.005e6c24
call fcn.005e6c24
mov eax, 0xc8
call fcn.005965d8
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59c531
mov eax, 0x59decc
call fcn.005eb590
test al, al
je 0x59c4f6
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59ded8
call fcn.0052fa8c
mov eax, dword [0x66a050]
mov eax, dword [eax + 8]
mov edx, 0x59decc
call fcn.005eb8e0
test al, al
je 0x59c51d
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59def0
call fcn.0052fa8c
call fcn.005e6c24
call fcn.005e6c24
mov eax, 0xc8
call fcn.005965d8
call fcn.005e6c24
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e008
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
call fcn.005e6ddc
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e034
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
mov edx, 0x64
call fcn.004d0ab8
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e058
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.006427e0
lea edx, [ebp - 0x8d0]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
mov edx, dword [ebp - 0x8d0]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
xor edx, edx
call fcn.004d0ab8
jmp 0x59d909
mov eax, dword [0x66a184]
mov eax, dword [eax]
sub eax, 1
jb 0x59d86e
je 0x59c643
dec eax
je 0x59cf5e
jmp 0x59d87a
mov eax, dword [0x669a68]
mov al, byte [eax]
sub al, 1
jb 0x59c659
je 0x59c8c6
jmp 0x59cc03
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x5c]
or eax, dword [0x59da14]
mov edx, dword [0x59da18]
not edx
and edx, eax
or edx, dword [0x59da1c]
mov eax, dword [0x59da20]
not eax
and eax, edx
mov edx, dword [0x59da24]
not edx
and edx, eax
mov eax, dword [0x59da18]
not eax
and eax, edx
mov edx, dword [0x59da28]
not edx
and edx, eax
or edx, dword [0x59da2c]
or edx, dword [0x59da30]
mov eax, dword [0x59da34]
not eax
and eax, edx
mov edx, dword [0x59da38]
not edx
and edx, eax
mov eax, dword [0x59da3c]
not eax
and eax, edx
mov edx, dword [ebp - 0x3c]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x3c]
mov dword [eax + 0x64], 1
mov eax, dword [ebp - 0x3c]
add eax, 0x78
call fcn.00404ae4
mov edx, 0x59da48
mov eax, dword [ebp - 0x3c]
call fcn.00439c04
mov eax, dword [ebp - 0x3c]
add eax, 0x74
mov edx, 0x59da64
call fcn.00404b38
mov eax, dword [ebp - 0x3c]
add eax, 0x60
mov edx, 0x59da70
call fcn.00404b38
mov eax, dword [ebp - 0x3c]
add eax, 0x70
mov edx, 0x59da90
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x59c758
lea edx, [ebp - 8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
call fcn.00439b6c
jmp 0x59c760
lea eax, [ebp - 8]
call fcn.00404ae4
cmp dword [ebp - 8], 0
jne 0x59c79c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcf0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x8d4]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
lea edx, [ebp - 0x8dc]
mov eax, dword [ebp - 8]
call fcn.0040af40
mov ecx, dword [ebp - 0x8dc]
lea eax, [ebp - 0x8d8]
mov edx, 0x59dad8
call fcn.00404e00
mov edx, dword [ebp - 0x8d8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov dl, 1
mov eax, dword [0x41a7f4]
call fcn.00403c64
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
call fcn.00639730
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59c81c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daec
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59c838
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db04
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59c854
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db1c
call fcn.0052fa8c
mov eax, dword [ebp - 0x10]
call fcn.00403c94
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59c8b3
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59c8b3
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
jne 0x59c8b3
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd24
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x8e0]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
jmp 0x59cc03
mov eax, dword [0x669348]
cmp dword [eax], 0
je 0x59caa2
mov eax, dword [0x669348]
mov eax, dword [eax]
mov edx, 0x59dc84
call fcn.00404f00
je 0x59caa2
lea edx, [ebp - 0x8e8]
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.0049975c
mov eax, dword [ebp - 0x8e8]
lea edx, [ebp - 0x8e4]
call fcn.0040ae94
push dword [ebp - 0x8e4]
push 0x59dc94
mov eax, dword [0x669348]
push dword [eax]
push 0x59dcb0
lea eax, [ebp - 8]
mov edx, 4
call fcn.00404e74
mov eax, dword [ebp - 8]
call fcn.0040ab4c
test al, al
je 0x59c94f
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59caa2
lea eax, [ebp - 8]
call fcn.00404ae4
mov eax, dword [0x669348]
push dword [eax]
push 0x59dcb0
push 0x59dcc0
lea eax, [ebp - 0x8ec]
mov edx, 3
call fcn.00404e74
mov edx, dword [ebp - 0x8ec]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcd4
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x5c]
or eax, dword [0x59da14]
mov edx, dword [0x59da18]
not edx
and edx, eax
or edx, dword [0x59da1c]
mov eax, dword [0x59da20]
not eax
and eax, edx
mov edx, dword [0x59da24]
not edx
and edx, eax
mov eax, dword [0x59da18]
not eax
and eax, edx
mov edx, dword [0x59da28]
not edx
and edx, eax
or edx, dword [0x59da2c]
or edx, dword [0x59da30]
mov eax, dword [0x59da34]
not eax
and eax, edx
mov edx, dword [0x59da38]
not edx
and edx, eax
mov eax, dword [0x59da3c]
not eax
and eax, edx
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x40]
mov dword [eax + 0x64], 1
mov eax, dword [ebp - 0x40]
add eax, 0x78
call fcn.00404ae4
mov edx, 0x59da48
mov eax, dword [ebp - 0x40]
call fcn.00439c04
mov eax, dword [ebp - 0x40]
add eax, 0x74
mov edx, 0x59da64
call fcn.00404b38
mov eax, dword [ebp - 0x40]
add eax, 0x60
mov edx, 0x59da70
call fcn.00404b38
mov eax, dword [ebp - 0x40]
add eax, 0x70
mov edx, 0x59da90
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x59ca9a
lea edx, [ebp - 8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
call fcn.00439b6c
jmp 0x59caa2
lea eax, [ebp - 8]
call fcn.00404ae4
cmp dword [ebp - 8], 0
jne 0x59cade
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcf0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x8f0]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
lea edx, [ebp - 0x8f8]
mov eax, dword [ebp - 8]
call fcn.0040af40
mov ecx, dword [ebp - 0x8f8]
lea eax, [ebp - 0x8f4]
mov edx, 0x59dad8
call fcn.00404e00
mov edx, dword [ebp - 0x8f4]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov dl, 1
mov eax, dword [0x41a7f4]
call fcn.00403c64
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
call fcn.00639730
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59cb5e
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daec
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59cb7a
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db04
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59cb96
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db1c
call fcn.0052fa8c
mov eax, dword [ebp - 0x10]
call fcn.00403c94
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59cbf5
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59cbf5
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
jne 0x59cbf5
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd24
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x8fc]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.006427cc
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59cc2d
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59cc2d
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59cf1b
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0055ddb0
mov eax, dword [0x669890]
cmp byte [eax], 1
jne 0x59cee6
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e068
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59cce7
xor edx, edx
mov eax, 0x59de8c
call fcn.00601a54
test al, al
je 0x59cc92
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59de98
call fcn.0052fa8c
lea eax, [ebp - 0x900]
mov edx, dword [0x66a050]
mov edx, dword [edx + 4]
call fcn.0040544c
mov eax, dword [ebp - 0x900]
xor ecx, ecx
mov edx, 0x59de8c
call fcn.006016c4
test al, al
je 0x59cccd
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59deb0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59cd68
xor edx, edx
mov eax, 0x59decc
call fcn.00601a54
test al, al
je 0x59cd13
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59ded8
call fcn.0052fa8c
lea eax, [ebp - 0x904]
mov edx, dword [0x66a050]
mov edx, dword [edx + 8]
call fcn.0040544c
mov eax, dword [ebp - 0x904]
xor ecx, ecx
mov edx, 0x59decc
call fcn.006016c4
test al, al
je 0x59cd4e
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59def0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d87a
mov edx, dword [ebp - 8]
mov eax, 0x59e094
call fcn.004050f8
test eax, eax
jle 0x59ce60
lea eax, [ebp - 0x14]
call fcn.00404ae4
xor eax, eax
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x14]
mov edx, 0x59de0c
xor eax, eax
call fcn.005fb648
cmp dword [ebp - 0x14], 0
je 0x59cdd7
lea eax, [ebp - 0x908]
push eax
mov ecx, 0xe
mov edx, 0x39
mov eax, dword [ebp - 0x14]
call fcn.00405014
mov eax, dword [ebp - 0x908]
lea edx, [ebp - 0x18]
call fcn.0049b9c4
jmp 0x59cde4
lea eax, [ebp - 0x18]
mov edx, 0x59e0a4
call fcn.00404b7c
lea edx, [ebp - 0x90c]
mov eax, dword [ebp - 0x18]
call fcn.006455f8
mov edx, dword [ebp - 0x90c]
mov eax, dword [0x66a050]
add eax, 0x20
call fcn.00404b38
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59ce23
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e0b0
call fcn.0052fa8c
jmp 0x59ce52
push 0x59e0d0
push dword [ebp - 0x18]
push 0x59e0f4
lea eax, [ebp - 0x910]
mov edx, 3
call fcn.00404e74
mov edx, dword [ebp - 0x910]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59ced5
xor edx, edx
mov eax, 0x59e100
call fcn.00601a54
test al, al
je 0x59ce8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e110
call fcn.0052fa8c
lea eax, [ebp - 0x914]
mov edx, dword [0x66a050]
mov edx, dword [edx + 0x20]
call fcn.0040544c
mov eax, dword [ebp - 0x914]
xor ecx, ecx
mov edx, 0x59e100
call fcn.006016c4
test al, al
je 0x59cec7
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e12c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59d87a
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e14c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e164
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
jmp 0x59d87a
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59d87a
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59d87a
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
jne 0x59d87a
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e1ac
call fcn.0052fa8c
jmp 0x59d87a
mov eax, dword [0x669a68]
mov al, byte [eax]
sub al, 1
jb 0x59cf74
je 0x59d1e1
jmp 0x59d51e
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x5c]
or eax, dword [0x59da14]
mov edx, dword [0x59da18]
not edx
and edx, eax
or edx, dword [0x59da1c]
mov eax, dword [0x59da20]
not eax
and eax, edx
mov edx, dword [0x59da24]
not edx
and edx, eax
mov eax, dword [0x59da18]
not eax
and eax, edx
mov edx, dword [0x59da28]
not edx
and edx, eax
or edx, dword [0x59da2c]
or edx, dword [0x59da30]
mov eax, dword [0x59da34]
not eax
and eax, edx
mov edx, dword [0x59da38]
not edx
and edx, eax
mov eax, dword [0x59da3c]
not eax
and eax, edx
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x64], 1
mov eax, dword [ebp - 0x44]
add eax, 0x78
call fcn.00404ae4
mov edx, 0x59da48
mov eax, dword [ebp - 0x44]
call fcn.00439c04
mov eax, dword [ebp - 0x44]
add eax, 0x74
mov edx, 0x59da64
call fcn.00404b38
mov eax, dword [ebp - 0x44]
add eax, 0x60
mov edx, 0x59da70
call fcn.00404b38
mov eax, dword [ebp - 0x44]
add eax, 0x70
mov edx, 0x59da90
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x59d073
lea edx, [ebp - 8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
call fcn.00439b6c
jmp 0x59d07b
lea eax, [ebp - 8]
call fcn.00404ae4
cmp dword [ebp - 8], 0
jne 0x59d0b7
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcf0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x918]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
lea edx, [ebp - 0x920]
mov eax, dword [ebp - 8]
call fcn.0040af40
mov ecx, dword [ebp - 0x920]
lea eax, [ebp - 0x91c]
mov edx, 0x59dad8
call fcn.00404e00
mov edx, dword [ebp - 0x91c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov dl, 1
mov eax, dword [0x41a7f4]
call fcn.00403c64
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
call fcn.00639730
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59d137
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daec
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59d153
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db04
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d16f
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db1c
call fcn.0052fa8c
mov eax, dword [ebp - 0x10]
call fcn.00403c94
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59d1ce
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59d1ce
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
jne 0x59d1ce
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd24
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x924]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
jmp 0x59d51e
mov eax, dword [0x669348]
cmp dword [eax], 0
je 0x59d3bd
mov eax, dword [0x669348]
mov eax, dword [eax]
mov edx, 0x59dc84
call fcn.00404f00
je 0x59d3bd
lea edx, [ebp - 0x92c]
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.0049975c
mov eax, dword [ebp - 0x92c]
lea edx, [ebp - 0x928]
call fcn.0040ae94
push dword [ebp - 0x928]
push 0x59dc94
mov eax, dword [0x669348]
push dword [eax]
push 0x59dcb0
lea eax, [ebp - 8]
mov edx, 4
call fcn.00404e74
mov eax, dword [ebp - 8]
call fcn.0040ab4c
test al, al
je 0x59d26a
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59d3bd
lea eax, [ebp - 8]
call fcn.00404ae4
mov eax, dword [0x669348]
push dword [eax]
push 0x59dcb0
push 0x59dcc0
lea eax, [ebp - 0x930]
mov edx, 3
call fcn.00404e74
mov edx, dword [ebp - 0x930]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcd4
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x5c]
or eax, dword [0x59da14]
mov edx, dword [0x59da18]
not edx
and edx, eax
or edx, dword [0x59da1c]
mov eax, dword [0x59da20]
not eax
and eax, edx
mov edx, dword [0x59da24]
not edx
and edx, eax
mov eax, dword [0x59da18]
not eax
and eax, edx
mov edx, dword [0x59da28]
not edx
and edx, eax
or edx, dword [0x59da2c]
or edx, dword [0x59da30]
mov eax, dword [0x59da34]
not eax
and eax, edx
mov edx, dword [0x59da38]
not edx
and edx, eax
mov eax, dword [0x59da3c]
not eax
and eax, edx
mov edx, dword [ebp - 0x48]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x64], 1
mov eax, dword [ebp - 0x48]
add eax, 0x78
call fcn.00404ae4
mov edx, 0x59da48
mov eax, dword [ebp - 0x48]
call fcn.00439c04
mov eax, dword [ebp - 0x48]
add eax, 0x74
mov edx, 0x59da64
call fcn.00404b38
mov eax, dword [ebp - 0x48]
add eax, 0x60
mov edx, 0x59da70
call fcn.00404b38
mov eax, dword [ebp - 0x48]
add eax, 0x70
mov edx, 0x59da90
call fcn.00404b38
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x59d3b5
lea edx, [ebp - 8]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x398]
call fcn.00439b6c
jmp 0x59d3bd
lea eax, [ebp - 8]
call fcn.00404ae4
cmp dword [ebp - 8], 0
jne 0x59d3f9
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dcf0
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x934]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
lea edx, [ebp - 0x93c]
mov eax, dword [ebp - 8]
call fcn.0040af40
mov ecx, dword [ebp - 0x93c]
lea eax, [ebp - 0x938]
mov edx, 0x59dad8
call fcn.00404e00
mov edx, dword [ebp - 0x938]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov dl, 1
mov eax, dword [0x41a7f4]
call fcn.00403c64
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
call fcn.00639730
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59d479
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59daec
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59d495
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db04
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d4b1
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59db1c
call fcn.0052fa8c
mov eax, dword [ebp - 0x10]
call fcn.00403c94
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59d510
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59d510
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
jne 0x59d510
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59dd24
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
lea edx, [ebp - 0x940]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
jmp 0x59d909
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.006427cc
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59d548
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59d548
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d83a
call fcn.006185bc
cmp al, 1
jne 0x59d808
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e068
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
je 0x59d5f7
mov edx, 0x59de8c
xor eax, eax
call fcn.0061a3a8
test al, al
je 0x59d5ac
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e1e0
call fcn.0052fa8c
xor eax, eax
call fcn.00618d24
mov ecx, dword [0x66a050]
mov ecx, dword [ecx + 4]
mov edx, 0x59de8c
xor eax, eax
call fcn.0061a418
test al, al
je 0x59d5dd
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e1fc
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
je 0x59d66e
mov edx, 0x59decc
xor eax, eax
call fcn.0061a3a8
test al, al
je 0x59d623
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e21c
call fcn.0052fa8c
xor eax, eax
call fcn.00618d24
mov ecx, dword [0x66a050]
mov ecx, dword [ecx + 8]
mov edx, 0x59decc
xor eax, eax
call fcn.0061a418
test al, al
je 0x59d654
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e238
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d7dd
mov edx, dword [ebp - 8]
mov eax, 0x59e094
call fcn.004050f8
test eax, eax
jle 0x59d766
lea eax, [ebp - 0x14]
call fcn.00404ae4
xor eax, eax
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x14]
mov edx, 0x59de0c
xor eax, eax
call fcn.00619e00
cmp dword [ebp - 0x14], 0
je 0x59d6dd
lea eax, [ebp - 0x944]
push eax
mov ecx, 0xe
mov edx, 0x39
mov eax, dword [ebp - 0x14]
call fcn.00405014
mov eax, dword [ebp - 0x944]
lea edx, [ebp - 0x18]
call fcn.0049b9c4
jmp 0x59d6ea
lea eax, [ebp - 0x18]
mov edx, 0x59e0a4
call fcn.00404b7c
lea edx, [ebp - 0x948]
mov eax, dword [ebp - 0x18]
call fcn.006455f8
mov edx, dword [ebp - 0x948]
mov eax, dword [0x66a050]
add eax, 0x20
call fcn.00404b38
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d729
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e0b0
call fcn.0052fa8c
jmp 0x59d758
push 0x59e0d0
push dword [ebp - 0x18]
push 0x59e0f4
lea eax, [ebp - 0x94c]
mov edx, 3
call fcn.00404e74
mov edx, dword [ebp - 0x94c]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
je 0x59d7d1
mov edx, 0x59e100
xor eax, eax
call fcn.0061a3a8
test al, al
je 0x59d792
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e258
call fcn.0052fa8c
xor eax, eax
call fcn.00618d24
mov ecx, dword [0x66a050]
mov ecx, dword [ecx + 0x20]
mov edx, 0x59e100
xor eax, eax
call fcn.0061a418
test al, al
je 0x59d7c3
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e278
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
xor eax, eax
call fcn.00618d24
call fcn.00618d54
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e29c
call fcn.0052fa8c
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
jmp 0x59d87a
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e14c
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e2bc
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
jmp 0x59d87a
mov eax, dword [0x66a050]
cmp dword [eax + 4], 0
jne 0x59d87a
mov eax, dword [0x66a050]
cmp dword [eax + 8], 0
jne 0x59d87a
mov eax, dword [0x66a050]
cmp dword [eax + 0x20], 0
jne 0x59d87a
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e1ac
call fcn.0052fa8c
jmp 0x59d87a
mov eax, dword [0x669b48]
mov eax, dword [eax]
call fcn.00498e74
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
mov edx, 0x64
call fcn.004d0ab8
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov edx, 0x59e058
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
call fcn.006427e0
lea edx, [ebp - 0x950]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0053255c
mov edx, dword [ebp - 0x950]
mov eax, dword [0x66a00c]
mov eax, dword [eax]
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
xor edx, edx
call fcn.0052fa8c
mov eax, dword [0x66a00c]
mov eax, dword [eax]
mov eax, dword [eax + 0x39c]
xor edx, edx
call fcn.004d0ab8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59d9df
lea eax, [ebp - 0x950]
mov edx, 0xf
call fcn.00404b08
lea eax, [ebp - 0x914]
call fcn.0040529c
lea eax, [ebp - 0x910]
mov edx, 3
call fcn.00404b08
lea eax, [ebp - 0x904]
mov edx, 2
call fcn.004052b4
lea eax, [ebp - 0x8fc]
mov edx, 0x10
call fcn.00404b08
lea eax, [ebp - 0x8bc]
call fcn.0040529c
lea eax, [ebp - 0x8b8]
mov edx, 2
call fcn.00404b08
lea eax, [ebp - 0x8b0]
mov edx, 2
call fcn.004052b4
lea eax, [ebp - 0x8a8]
mov edx, 4
call fcn.00404b08
lea eax, [ebp - 0x898]
call fcn.0040529c
lea eax, [ebp - 0x894]
mov edx, 0x13
call fcn.00404b08
lea eax, [ebp - 0x2c]
call fcn.00404ae4
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.00404b08
lea eax, [ebp - 8]
call fcn.00404ae4
ret