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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xec]
cmp eax, dword [ecx + 8]
jbe 0x59e796
sub esp, 0x16c
mov ecx, dword [esp + 0x178]
cmp ecx, 2
jl 0x59e6e0
xor eax, eax
mov edx, eax
xor ebx, ebx
mov ebp, edx
mov esi, ebp
xor edi, edi
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x174]
mov dword [esp + 0x168], eax
mov eax, ebp
jmp 0x59d1fa
lea ecx, [edx + 1]
mov edx, dword [esp + 0x164]
movzx edx, word [esp + 0x22]
movzx ebx, word [esp + 0x24]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x34]
cmp edx, esi
jge 0x59d1c5
cmp edx, ebp
jge 0x59d1c5
cmp edx, esi
jae 0x59e788
mov ebx, dword [edi + edx*4]
cmp edx, ebp
jae 0x59e788
mov ecx, dword [ecx + edx*4]
cmp ebx, ecx
je 0x59d180
test edx, edx
jle 0x59d297
mov ecx, dword [esp + 0x30]
cmp edx, ecx
ja 0x59e781
mov ebx, dword [esp + 0x4c]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], esi
mov esi, edx
mov edx, ebx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x178]
cmp eax, ecx
jg 0x59d98b
mov dword [esp + 0x5c], eax
mov word [esp + 0x24], bx
mov dword [esp + 0x4c], edx
jge 0x59d97e
jae 0x59e78f
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x174]
mov ebp, dword [ebp + eax*4]
movzx ecx, byte [ebp]
cmp cl, 0x12
jne 0x59d977
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
test ecx, ecx
jle 0x59d977
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
je 0x59d94e
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x164], ecx
mov word [esp + 0x22], dx
cmp dx, bx
jne 0x59d297
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
jmp 0x59d19f
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x164]
movzx ebx, word [esp + 0x22]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x4c]
cmp eax, esi
jne 0x59d2ce
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], esi
mov esi, edi
mov edi, edx
mov edx, ebp
mov ebp, ebx
mov ebx, eax
jmp 0x59d1e6
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x160], edx
mov word [esp + 0x26], bx
lea ecx, [esi + 1]
cmp eax, ecx
jne 0x59d419
mov ecx, dword [esp + 0x178]
cmp esi, ecx
jae 0x59e77a
mov edi, ecx
mov ecx, dword [esp + 0x38]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x174]
mov esi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x3c]
cmp edx, ebx
jg 0x59d3b8
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x38], edx
mov ebp, dword [esp + 0x104]
lea edx, [ebp + ecx*4]
mov dword [esp + 0x15c], edx
mov edx, dword [0x7703f0]
test edx, edx
jne 0x59d383
mov dword [ebp + ecx*4], esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x160]
mov esi, ecx
mov edi, ebx
mov dword [esp + 0x168], ebp
mov ecx, dword [esp + 0x54]
movzx ebx, word [esp + 0x26]
mov ebp, dword [esp + 0x50]
jmp 0x59d2bb
mov dword [esp + 0xac], ebx
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040e9f0
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x104]
mov edi, dword [esp + 0x178]
jmp 0x59d35b
mov dword [esp + 0x158], esi
lea eax, [0x60fb60]
mov dword [esp], eax
mov ebp, dword [esp + 0x168]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00438d30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x178]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x5c]
jmp 0x59d337
mov dword [esp + 0x154], edi
mov ecx, dword [esp + 0x170]
mov edx, dword [ecx + 0x10]
lea ebx, [ecx + 0x10]
mov dword [esp + 0x150], ebx
test edx, edx
je 0x59d923
mov ebp, dword [0x7703f0]
mov esi, dword [edx + 0x10]
test ebp, ebp
jne 0x59d8d7
mov dword [ecx + 0x10], esi
mov ebp, edi
mov edi, edx
mov esi, eax
xor eax, eax
call fcn.0044c141
mov dword [esp + 0xfc], edx
mov byte [edx], 3
movzx ecx, word [esp + 0x24]
mov word [edx + 2], cx
mov ecx, dword [edx + 0x1c]
mov edi, dword [edx + 0x14]
lea ebx, [edx + 0x14]
mov dword [esp + 0x14c], ebx
mov eax, dword [esp + 0x2c]
cmp eax, ecx
ja 0x59d88b
cmp eax, ecx
ja 0x59e773
mov dword [esp + 0x164], edi
mov dword [esp + 0xa8], ecx
mov dword [esp], edi
mov dword [esp + 4], ebp
shl eax, 2
mov dword [esp + 8], eax
call fcn.0044c850
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0xa8]
mov dword [ecx + 0x1c], edx
mov edx, dword [0x7703f0]
test edx, edx
jne 0x59d861
mov edx, dword [esp + 0x164]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x4c]
jmp 0x59d4f7
inc edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
jge 0x59d579
mov ebp, dword [esp + 0x178]
cmp edx, ebp
jae 0x59e76c
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x174]
mov ebx, dword [ecx + edx*4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x170]
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.0059e7a0
mov eax, dword [0x7703f0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x59d55a
mov dword [ebx + edx*4], ecx
jmp 0x59d4eb
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040e9f0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
jmp 0x59d4eb
mov eax, dword [esp + 0x4c]
cmp eax, ebx
ja 0x59e765
mov edx, dword [esp + 0x17c]
cmp ebx, edx
ja 0x59e765
mov ecx, dword [esp + 0x170]
mov dword [esp], ecx
sub edx, eax
mov esi, edx
neg edx
mov edi, eax
shl eax, 2
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x174]
add edx, eax
mov dword [esp + 4], edx
sub ebx, edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov byte [esp + 0x10], 0x13
call fcn.0059cce0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x59d841
mov dword [esp + 0xe4], edi
mov edx, dword [0x7703f0]
mov ebx, dword [edi + 0x10]
test edx, edx
jne 0x59d807
mov dword [ecx + 0x10], ebx
mov edx, eax
xor eax, eax
call fcn.0044c141
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xf4], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 0xc]
lea esi, [ecx + 4]
mov dword [esp + 0x148], esi
cmp ebp, 2
jl 0x59d7b6
mov edi, 2
mov dword [esp + 0xa8], ebp
mov esi, dword [0x7703f0]
lea ebp, [ebx + 4]
test esi, esi
jne 0x59d758
mov ebp, dword [esp + 0xfc]
mov dword [ebx], ebp
mov dword [ebx + 4], edx
mov dword [ecx + 8], edi
mov edx, dword [esp + 0xa8]
mov dword [ecx + 0xc], edx
mov edx, dword [0x7703f0]
test edx, edx
jne 0x59d737
mov dword [ecx + 4], ebx
mov edx, dword [esp + 0x38]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
jg 0x59d6f1
mov esi, dword [esp + 0x168]
mov dword [esp + 0x3c], ebp
mov edi, ebx
mov ebx, dword [0x7703f0]
lea ebp, [esi + edx*4]
test ebx, ebx
jne 0x59d6c5
mov dword [esi + edx*4], ecx
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x3c]
mov ebp, esi
mov ecx, edi
mov edi, dword [esp + 0x178]
jmp 0x59d35f
mov dword [esp + 0x144], esi
mov dword [esp + 0xa8], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040e9f0
xor eax, eax
mov esi, dword [esp + 0x144]
mov edi, dword [esp + 0xa8]
jmp 0x59d6ad
lea eax, [0x60fb60]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00438d30
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x38]
jmp 0x59d697
mov eax, dword [esp + 0x148]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040e9f0
xor eax, eax
mov ecx, dword [esp + 0xf4]
jmp 0x59d681
mov dword [esp + 0x140], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0x13c], ebp
mov dword [esp], ebx
mov eax, dword [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.0040e9f0
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
call fcn.0040e9f0
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x140]
mov edi, dword [esp + 0xa4]
jmp 0x59d663
lea eax, [0x60fb60]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 2
call fcn.00438d30
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0x148]
jmp 0x59d63f
mov eax, dword [esp + 0x150]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040e9f0
lea eax, [0x616640]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
call fcn.0040ef00
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x59d610
lea eax, [0x616640]
mov dword [esp], eax
call fcn.0040e180
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x59d617
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 4], eax
call fcn.0040e9f0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
jmp 0x59d4e5
lea edx, [0x5ea7c0]
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00438d30
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x14c]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x59d48c
mov dword [esp + 0xec], edx
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.0040e9f0
lea eax, [0x616640]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
call fcn.0040ef00
xor eax, eax
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x59d45d
lea eax, [0x616640]
mov dword [esp], eax
call fcn.0040e180
mov edx, dword [esp + 4]
xor eax, eax
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x59d45d
mov edx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
movzx ecx, word [ecx + 2]
and ecx, 1
mov dword [esp + 0x28], ebp
mov ebp, eax
mov eax, dword [esp + 0x5c]
mov eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x5c]
jmp 0x59d26d
mov ecx, ebp
jmp 0x59d247
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor ebx, ebx
jmp 0x59d2a7
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x3c]
jmp 0x59d9ad
lea edi, [esi + 1]
mov esi, edx
mov edx, ebp
mov ebp, ecx
mov ecx, eax
mov eax, edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0x164], ebp
mov edi, dword [esp + 0x38]
cmp eax, edi
jg 0x59e046
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x100], edx
mov dword [esp + 0x48], ecx
jge 0x59e03f
jae 0x59e75e
mov ebp, dword [esp + 0x168]
mov esi, dword [ebp + eax*4]
movzx ebp, byte [esi]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x59dff8
xor ebp, ebp
test edx, edx
jne 0x59ded3
cmp eax, ecx
jne 0x59da25
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
mov esi, eax
jmp 0x59d9a0
mov dword [esp + 0x108], ebp
lea esi, [ecx + 1]
cmp eax, esi
jne 0x59db4b
cmp ecx, edi
jae 0x59e750
lea edx, [ebx + 1]
mov esi, dword [esp + 0x168]
mov ecx, dword [esi + ecx*4]
mov esi, dword [esp + 0xa0]
cmp edx, esi
jg 0x59dae7
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x104]
lea eax, [edi + ebx*4]
mov dword [esp + 0x138], eax
mov eax, dword [0x7703f0]
test eax, eax
jne 0x59daa8
mov dword [edi + ebx*4], ecx
mov eax, dword [esp + 0x60]
mov ecx, edi
mov ebx, edx
mov edi, dword [esp + 0x38]
mov edx, esi
jmp 0x59da1e
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x138]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040e9f0
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x104]
jmp 0x59da95
mov dword [esp + 0x158], ecx
lea eax, [0x60fb60]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.00438d30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x158]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x108]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x60]
jmp 0x59da77
mov esi, ecx
jmp 0x59db73
lea ecx, [edx + 1]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x38]
cmp ecx, eax
jge 0x59dbf2
cmp ecx, edi
jae 0x59e749
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x168]
mov edx, dword [eax + ecx*4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x170]
mov dword [esp], edx
cmp ecx, esi
setne bl
mov byte [esp + 8], bl
call fcn.0059ea10
mov eax, dword [0x7703f0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x59dbd3
mov dword [ebx + edx*4], ecx
jmp 0x59db4f
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040e9f0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
jmp 0x59db4f
cmp esi, eax
ja 0x59e742
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
ja 0x59e742
mov edx, dword [esp + 0x170]
mov dword [esp], edx
sub ecx, esi
mov ebp, esi
shl esi, 2
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
mov esi, dword [esp + 0x168]
add ecx, esi
mov dword [esp + 4], ecx
sub eax, ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov byte [esp + 0x10], 0x13
call fcn.0059cce0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
lea edx, [ecx + 0x10]
test edi, edi
je 0x59deb3
mov dword [esp + 0xe8], edi
mov ebx, dword [0x7703f0]
mov ebp, dword [edi + 0x10]
test ebx, ebx
jne 0x59de80
mov dword [ecx + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.0044c141
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0xf8], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 0xc]
mov ebp, dword [ecx + 4]
lea esi, [ecx + 4]
mov dword [esp + 0x134], esi
cmp ebx, 2
jl 0x59de2f
mov edi, 2
mov eax, dword [0x7703f0]
lea esi, [ebp + 4]
test eax, eax
jne 0x59ddc5
mov eax, dword [esp + 0x100]
mov dword [ebp], eax
mov dword [ebp + 4], edx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
mov eax, dword [0x7703f0]
test eax, eax
jne 0x59dda6
mov dword [ecx + 4], ebp
mov eax, dword [esp + 0xac]
lea edx, [eax + 1]
mov ebx, dword [esp + 0xa0]
cmp edx, ebx
jg 0x59dd5f
mov ebp, dword [esp + 0x164]
mov esi, dword [0x7703f0]
lea edi, [ebp + eax*4]
test esi, esi
jne 0x59dd27
mov dword [ebp + eax*4], ecx
mov esi, ebx
mov edi, ebp
mov ebp, dword [esp + 0x108]
jmp 0x59da95
mov dword [esp + 0x130], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ebx
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.0040e9f0
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x130]
jmp 0x59dd17
lea ecx, [0x60fb60]
mov dword [esp], ecx
mov ebp, dword [esp + 0x164]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00438d30
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xf8]
jmp 0x59dd05
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.0040e9f0
mov ecx, dword [esp + 0xf8]
jmp 0x59dce9
mov dword [esp + 0x12c], ebp
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x128], esi
mov dword [esp], ebp
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
call fcn.0040e9f0
mov eax, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
call fcn.0040e9f0
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xa8]
jmp 0x59dcd2
lea eax, [0x60fb60]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.00438d30
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x134]
jmp 0x59dcb4
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.0040e9f0
lea eax, [0x616640]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.0040ef00
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x59dc85
lea eax, [0x616640]
mov dword [esp], eax
call fcn.0040e180
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x59dc8c
mov dword [esp + 0xd8], ebp
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.005a4df0
movzx eax, byte [esp + 8]
test al, al
je 0x59dfef
mov eax, dword [esp + 0x100]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x59dfc6
mov edx, dword [eax + 0x18]
cmp edx, 1
jne 0x59dfc6
mov edx, 1
test dl, dl
je 0x59df48
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
jmp 0x59d9a0
cmp cl, 0x11
jne 0x59df80
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
cmp ecx, edx
jne 0x59df80
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
test ecx, ecx
jbe 0x59e757
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
jne 0x59dfa6
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x59dfa6
mov ecx, 1
test cl, cl
jne 0x59df1b
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xd8]
mov edi, dword [esp + 0x38]
jmp 0x59da0c
cmp dl, 4
jne 0x59dfb2
mov ecx, 1
jmp 0x59df7c
cmp dl, 5
jne 0x59dfbe
mov ecx, 1
jmp 0x59df7c
cmp dl, 6
sete cl
jmp 0x59df7c
cmp cl, 4
jne 0x59dfd5
mov edx, 1
jmp 0x59df17
cmp cl, 5
jne 0x59dfe4
mov edx, 1
jmp 0x59df17
cmp cl, 6
sete dl
jmp 0x59df17
mov eax, dword [esp + 0x100]
jmp 0x59df80
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x59e031
mov ebp, dword [esi + 8]
mov ebx, dword [esi + 4]
test ebp, ebp
jle 0x59e031
mov ebx, dword [ebx]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x59e023
mov ebx, dword [esp + 0xac]
xor ebp, ebp
jmp 0x59da04
mov ebp, ebx
mov ebx, dword [esp + 0xac]
jmp 0x59da04
mov ebx, dword [esp + 0xac]
mov ebp, esi
jmp 0x59da04
xor ebp, ebp
jmp 0x59da0c
mov eax, ebp
xor ecx, ecx
xor edx, edx
xor edi, edi
jmp 0x59e05f
inc ecx
mov eax, dword [esp + 0x164]
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x168], ebp
mov dword [esp + 0x38], edi
cmp ecx, ebx
jg 0x59e566
jge 0x59e09e
jae 0x59e73b
mov eax, dword [eax + ecx*4]
movzx ebx, byte [eax]
cmp bl, 3
jne 0x59e53d
mov eax, dword [eax + 0x18]
cmp eax, 1
jne 0x59e53d
mov eax, 1
test al, al
jne 0x59e050
mov dword [esp + 0x58], ecx
cmp ecx, edx
jne 0x59e18a
mov eax, dword [esp + 0xac]
cmp ecx, eax
jge 0x59e183
jae 0x59e718
lea edx, [edi + 1]
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + ecx*4]
cmp edx, esi
jg 0x59e12a
mov eax, dword [0x7703f0]
lea ecx, [ebp + edi*4]
test eax, eax
jne 0x59e0f2
mov dword [ebp + edi*4], ebx
mov ecx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov edi, edx
mov edx, eax
jmp 0x59e050
mov dword [esp + 0x124], ebp
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040e9f0
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x124]
mov esi, dword [esp + 0x88]
jmp 0x59e0e2
mov dword [esp + 0x84], edi
mov dword [esp + 0x158], ebx
lea eax, [0x60fb60]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.00438d30
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x158]
mov edi, dword [esp + 0x84]
jmp 0x59e0d0
mov edx, edi
jmp 0x59e0e2
lea eax, [edx + 1]
cmp ecx, eax
jne 0x59e265
mov eax, dword [esp + 0xac]
cmp edx, eax
jae 0x59e734
lea ebx, [edi + 1]
mov eax, dword [esp + 0x164]
mov edx, dword [eax + edx*4]
cmp ebx, esi
jg 0x59e216
mov dword [esp + 0x38], ebx
mov eax, dword [0x7703f0]
lea ebx, [ebp + edi*4]
test eax, eax
jne 0x59e1df
mov dword [ebp + edi*4], edx
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov edx, dword [esp + 0x38]
mov edi, edx
jmp 0x59e0b3
mov dword [esp + 0x120], ebp
mov dword [esp + 0x80], esi
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040e9f0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x80]
jmp 0x59e1d4
mov dword [esp + 0x158], edx
lea eax, [0x60fb60]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.00438d30
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x158]
mov edi, dword [esp + 0x38]
jmp 0x59e1b5
mov dword [esp + 0xa8], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0xac]
jmp 0x59e2a5
inc edx
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x164]
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
mov esi, eax
mov eax, edx
mov edx, esi
mov esi, dword [esp + 0x7c]
cmp eax, ecx
jge 0x59e2ed
cmp edx, ebx
jae 0x59e72d
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + edx*4]
movzx edi, byte [esi]
cmp eax, ebx
jae 0x59e72d
mov ebp, dword [ebp + eax*4]
movzx ebx, byte [ebp]
xchg edi, eax
cmp al, bl
xchg edi, eax
jae 0x59e2d9
mov edx, eax
jmp 0x59e27d
jne 0x59e2e5
mov ebx, dword [esi + 0x18]
mov ebp, dword [ebp + 0x18]
cmp ebx, ebp
jl 0x59e2d5
mov ebx, edx
mov edx, eax
mov eax, ebx
jmp 0x59e27d
mov eax, dword [esp + 0x40]
cmp eax, ebx
jae 0x59e726
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + eax*4]
lea edi, [ebp + eax*4]
cmp edx, ebx
jae 0x59e726
mov dword [esp + 0x11c], edi
mov edi, dword [0x7703f0]
mov ebx, dword [ebp + edx*4]
lea ecx, [ebp + edx*4]
test edi, edi
jne 0x59e4f2
mov dword [ebp + eax*4], ebx
mov dword [ebp + edx*4], esi
mov ecx, dword [esp + 0xa8]
jmp 0x59e349
lea edx, [eax + 1]
mov eax, dword [esp + 0x40]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0x58]
cmp ecx, edx
jge 0x59e407
mov ebx, dword [ebp + eax*4]
mov esi, dword [esp + 0xac]
cmp ecx, esi
jae 0x59e71f
mov dword [esp + 0x44], ecx
mov eax, dword [ebp + ecx*4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.005a08a0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + eax*4]
test byte [edx], al
mov ebx, dword [0x7703f0]
lea ebp, [edx + 0x10]
mov dword [esp + 0x118], ebp
mov esi, dword [esp + 0x170]
mov edi, dword [esi + 0x10]
lea ebp, [esi + 0x10]
test ebx, ebx
jne 0x59e3b5
mov dword [edx + 0x10], edi
mov dword [esi + 0x10], edx
jmp 0x59e33e
mov dword [esp + 0xf0], edx
mov dword [esp + 0x114], ebp
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040e9f0
mov eax, dword [esp + 0x114]
mov dword [esp], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.0040e9f0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x170]
jmp 0x59e33e
mov ecx, dword [ebp + eax*4]
mov dword [esp], ecx
call fcn.0059cac0
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + edx*4]
mov ebp, dword [esp + 0x7c]
cmp ecx, ebp
jg 0x59e4a0
mov esi, dword [esp + 0x168]
mov edi, dword [0x7703f0]
lea ebx, [esi + eax*4]
test edi, edi
jne 0x59e467
mov dword [esi + eax*4], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x58]
mov ebx, ebp
mov ebp, esi
mov esi, ebx
jmp 0x59e1d8
mov dword [esp + 0x110], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ebp
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040e9f0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x110]
jmp 0x59e454
mov dword [esp + 0x158], edx
lea edx, [0x60fb60]
mov dword [esp], edx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00438d30
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x158]
mov ebx, dword [esp + 0x164]
jmp 0x59e437
mov dword [esp + 0x158], esi
mov dword [esp + 0x10c], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040e9f0
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
call fcn.0040e9f0
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x164]
jmp 0x59e335
cmp bl, 4
jne 0x59e54c
mov eax, 1
jmp 0x59e09a
cmp bl, 5
jne 0x59e55b
mov eax, 1
jmp 0x59e09a
cmp bl, 6
sete al
jmp 0x59e09a
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x59e572
mov ebp, ecx
mov ecx, ebx
cmp ecx, edi
jge 0x59e6c4
mov dword [esp + 0x164], ebp
lea ebx, [ecx + 1]
cmp ebx, edi
jge 0x59e6bd
cmp ecx, edi
jae 0x59e711
mov ebp, dword [eax + ecx*4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x59e6b6
cmp ebx, edi
jae 0x59e711
mov ebp, dword [eax + ecx*4 + 4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x59e5c6
mov ecx, dword [esp + 0x164]
jmp 0x59e56e
cmp ecx, edi
jae 0x59e70a
mov dword [esp + 0x70], ebx
lea ebp, [edx + 1]
mov ecx, dword [eax + ecx*4]
cmp ebp, esi
jg 0x59e651
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb0]
mov eax, dword [0x7703f0]
mov edi, dword [esp + 0x104]
lea ebx, [edi + edx*4]
test eax, eax
jne 0x59e62c
mov dword [edi + edx*4], ecx
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x104]
mov edx, ebp
jmp 0x59e56e
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040e9f0
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x104]
jmp 0x59e60f
mov dword [esp + 0x64], edx
mov dword [esp + 0x158], ecx
lea eax, [0x60fb60]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.00438d30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x168]
jmp 0x59e5f8
cmp ecx, edi
jmp 0x59e5c8
cmp ecx, edi
jmp 0x59e5c8
mov dword [esp + 0x180], ebp
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], esi
add esp, 0x16c
ret
mov eax, dword [esp + 0x174]
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], ecx
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
add esp, 0x16c
ret
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425d00
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.00425d00
ud2
call fcn.00425ca0
ud2
call fcn.00425d00
ud2
call fcn.00425ca0
ud2
call fcn.00425d00
ud2
call fcn.00425ca0
ud2
call fcn.00425ca0
ud2
call fcn.0044a6e0
jmp fcn.0059d120