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

Disassembly:
mov ecx, dword [0x9ec7ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x2a8]
cmp eax, dword [ecx + 8]
jbe 0x6988a2
sub esp, 0x328
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
lea edi, [esp + 0x2ec]
xor eax, eax
call fcn.004686f1
lea edi, [esp + 0xc0]
call fcn.004686f6
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 0
mov ecx, dword [esp + 0x330]
mov dword [esp], ecx
call fcn.00409ce0
mov ecx, dword [esp + 4]
lea edx, [0x6e44c0]
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x1ec], ecx
lea ecx, [0x747668]
mov dword [esp], ecx
mov dword [esp + 4], 0x2b
lea ecx, [esp + 0x1e8]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c6ba0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1b0], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x32c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x330]
mov dword [esp + 4], ebp
call fcn.0069b3e0
mov ecx, dword [esp + 8]
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0xe8]
lea esi, [esp + 0xc0]
call fcn.00468bac
lea ecx, [0x71b7e0]
mov dword [esp], ecx
lea ecx, [esp + 0xe8]
mov dword [esp + 4], ecx
call fcn.004d7ff0
mov ecx, dword [esp + 8]
mov dword [esp + 0xb4], ecx
lea edx, [0x6f0660]
mov dword [esp], edx
call fcn.0040c5b0
mov ecx, dword [esp + 4]
mov dword [esp + 0x1dc], ecx
mov edx, dword [esp + 0x32c]
mov dword [esp], edx
lea ebx, [0x6ceb40]
mov dword [esp + 4], ebx
lea ebx, [esp + 0xc0]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x10], ebp
call fcn.0069c0d0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1dc]
mov dword [ebx], ecx
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x697143
call fcn.00468460
mov dword [edi], edx
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov dword [ebx + 4], edx
mov eax, dword [ebx]
test eax, eax
jne 0x69769b
lea edi, [esp + 0x2f8]
lea esi, [esp + 0xc0]
call fcn.00468bac
mov eax, dword [esp + 0xd4]
test eax, eax
jne 0x69722c
mov eax, dword [esp + 0x32c]
mov ecx, dword [eax + 0x278]
mov edx, dword [eax + 0x274]
inc edx
mov ebp, dword [eax + 0x270]
cmp ecx, edx
jae 0x6971f6
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e41c0]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x32c]
mov dword [ebx + 0x278], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6971e5
call fcn.00468460
mov dword [edi], ecx
mov eax, dword [ebx + 0x270]
mov dword [edi + 4], eax
mov dword [ebx + 0x270], ecx
mov eax, ebx
mov ebx, dword [esp + 0x1dc]
mov ebp, ecx
mov dword [eax + 0x274], edx
lea ecx, [ebp + edx*8 - 4]
mov esi, dword [0x9a3a44]
lea edx, [ebp + edx*8 - 8]
mov ebp, dword [0x9a3a40]
mov dword [ecx], esi
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x697228
call fcn.00468460
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], ebp
jmp 0x697233
mov eax, dword [esp + 0x32c]
mov ecx, dword [esp + 0xdc]
test ecx, ecx
jne 0x6972f3
mov ecx, dword [eax + 0x278]
mov edx, dword [eax + 0x274]
inc edx
mov ebp, dword [eax + 0x270]
cmp ecx, edx
jae 0x6972bf
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e41c0]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x32c]
mov dword [ebx + 0x278], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6972ae
call fcn.00468460
mov dword [edi], ecx
mov eax, dword [ebx + 0x270]
mov dword [edi + 4], eax
mov dword [ebx + 0x270], ecx
mov eax, ebx
mov ebx, dword [esp + 0x1dc]
mov ebp, ecx
mov dword [eax + 0x274], edx
lea ecx, [ebp + edx*8 - 4]
mov esi, dword [0x9a3a4c]
lea edx, [ebp + edx*8 - 8]
mov ebp, dword [0x9a3a48]
mov dword [ecx], esi
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x6972f1
call fcn.00468460
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], ebp
mov ecx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0069b3e0
mov eax, dword [esp + 0xd8]
shl eax, 2
mov ecx, dword [esp + 0x32c]
mov edx, dword [ecx + 0x2ac]
sub edx, dword [esp + 8]
cmp edx, eax
jb 0x697327
mov edx, eax
mov eax, dword [esp + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0069bc20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x1dc]
mov dword [esi], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x697372
call fcn.00468460
mov dword [edi], ecx
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov dword [esi + 4], ecx
mov eax, dword [esi]
test eax, eax
jne 0x69763f
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], edx
mov dword [esp + 0x1b4], ebp
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x32c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0069b3e0
mov eax, dword [esp + 0xd8]
shl eax, 2
mov ecx, dword [esp + 0x32c]
mov edx, dword [ecx + 0x2ac]
sub edx, dword [esp + 8]
cmp edx, eax
jb 0x6973c9
mov edx, eax
mov eax, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0069bc20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1dc]
mov dword [esi], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x697414
call fcn.00468460
mov dword [edi], ecx
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov dword [esi + 4], ecx
mov eax, dword [esi]
test eax, eax
jne 0x6975e3
mov dword [esp + 0x80], ebp
mov dword [esp + 0x7c], edx
mov dword [esp + 0x1b8], ebx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x32c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0069b3e0
mov eax, dword [esp + 0xd4]
shl eax, 2
mov ecx, dword [esp + 0x32c]
mov edx, dword [ecx + 0x2ac]
sub edx, dword [esp + 8]
cmp edx, eax
jb 0x69746e
mov edx, eax
mov eax, dword [esp + 0xdc]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0069bc20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x1dc]
mov dword [esi], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6974b9
call fcn.00468460
mov dword [edi], ecx
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov dword [esi + 4], ecx
mov eax, dword [esi]
test eax, eax
jne 0x697587
mov dword [esp + 0x88], ebx
mov dword [esp + 0x84], edx
mov dword [esp + 0x1bc], ebp
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x32c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100000
call fcn.0069b830
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], ecx
mov eax, dword [esp + 0x32c]
mov ecx, dword [eax + 0x2ac]
mov dword [esp + 0x38], ecx
lea edi, [esp + 0x20c]
xor eax, eax
call fcn.004686f9
lea edi, [esp + 0x144]
call fcn.004686ed
lea ecx, [esp + 0x144]
mov dword [esp + 0x218], ecx
call fcn.00452f50
mov eax, dword [esp]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x32c]
mov ecx, dword [eax + 0xa0]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x40], edx
mov ebx, dword [eax + 0xa4]
mov dword [esp + 0xb4], ebx
xor ebp, ebp
jmp 0x69771d
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov ecx, dword [0x9eca70]
test ecx, ecx
jne 0x6975b3
mov ecx, dword [esp + 0x1b0]
jmp 0x6975c1
call fcn.00468450
mov ecx, dword [esp + 0x1b0]
mov dword [edi], ecx
mov dword [eax], ecx
lea ecx, [0x7aaeb4]
mov dword [esp + 0x338], ecx
mov dword [esp + 0x33c], eax
call fcn.00437c30
add esp, 0x328
ret
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov ecx, dword [0x9eca70]
test ecx, ecx
jne 0x69760f
mov ecx, dword [esp + 0x1b0]
jmp 0x69761d
call fcn.00468450
mov ecx, dword [esp + 0x1b0]
mov dword [edi], ecx
mov dword [eax], ecx
lea ecx, [0x7aaeb4]
mov dword [esp + 0x338], ecx
mov dword [esp + 0x33c], eax
call fcn.00437c30
add esp, 0x328
ret
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov ecx, dword [0x9eca70]
test ecx, ecx
jne 0x69766b
mov ecx, dword [esp + 0x1b0]
jmp 0x697679
call fcn.00468450
mov ecx, dword [esp + 0x1b0]
mov dword [edi], ecx
mov dword [eax], ecx
lea ecx, [0x7aaeb4]
mov dword [esp + 0x338], ecx
mov dword [esp + 0x33c], eax
call fcn.00437c30
add esp, 0x328
ret
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov ecx, dword [0x9eca70]
test ecx, ecx
jne 0x6976c7
mov ecx, dword [esp + 0x1b0]
jmp 0x6976d5
call fcn.00468450
mov ecx, dword [esp + 0x1b0]
mov dword [edi], ecx
mov dword [eax], ecx
lea ecx, [0x7aaeb4]
mov dword [esp + 0x338], ecx
mov dword [esp + 0x33c], eax
call fcn.00437c30
add esp, 0x328
ret
mov eax, dword [esp + 0x1d8]
lea ecx, [eax + 0x2c]
mov eax, dword [esp + 0xb0]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x32c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0xb4]
cmp ebp, ebx
jge 0x69776d
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x1d8], ecx
lea edi, [esp + 0x2c0]
mov esi, ecx
call fcn.00468ba2
lea ecx, [esp + 0x2c0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.006a88a0
movzx eax, byte [esp + 0xc]
test al, al
je 0x6976f7
mov eax, dword [esp + 0x32c]
lea ecx, [esp + 0x2c0]
jmp 0x69776f
xor ecx, ecx
test ecx, ecx
jne 0x697779
mov ecx, dword [esp + 0x38]
jmp 0x6977b8
mov dword [esp + 0x190], ecx
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.006a8e80
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0xc]
add ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0x32c]
mov edx, dword [esp + 0xd8]
shr ecx, 2
cmp edx, ecx
jb 0x6977c8
mov edx, ecx
mov dword [esp + 0x2c], edx
xor ecx, ecx
mov ebx, 0xa
xor ebp, ebp
xor esi, esi
jmp 0x6977ed
inc eax
mov ecx, eax
mov ebx, ebp
mov ebp, edx
mov esi, edi
mov eax, dword [esp + 0x32c]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jae 0x697d57
mov dword [esp + 0x60], ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x48], ebx
lea eax, [0x6f12a0]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
lea ecx, [0x6988b0]
mov dword [eax], ecx
mov edx, dword [0x9eca70]
test edx, edx
jne 0x69782e
mov edx, dword [esp + 0x1dc]
jmp 0x69783c
call fcn.00468450
mov edx, dword [esp + 0x1dc]
mov dword [edi], edx
mov dword [eax + 4], edx
mov dword [esp], eax
call fcn.004375c0
test eax, eax
jne 0x697d4b
mov eax, dword [esp + 0x60]
mov edx, eax
shl edx, 1
mov ecx, dword [esp + 0x7c]
cmp ecx, edx
jb 0x69889a
mov ebx, ecx
sub ebx, edx
mov ebp, dword [esp + 0x80]
mov esi, ebp
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
cmp ebx, 1
jbe 0x69888e
mov ebx, dword [esp + 0x1b8]
movzx edx, word [ebx + edx]
mov ebp, edx
shl edx, 2
movzx edx, dx
mov edi, ebp
mov ebp, dword [esp + 0x84]
cmp ebp, edx
jb 0x698885
sub ebp, edx
mov ebx, dword [esp + 0x88]
sub ebx, edx
neg ebx
sar ebx, 0x1f
and edx, ebx
cmp ebp, 3
jbe 0x698879
mov ebx, dword [esp + 0x1bc]
mov edx, dword [edx + ebx]
test edx, edx
jne 0x6978e0
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x68]
jmp 0x6977d9
mov dword [esp + 0xac], edx
mov word [esp + 0x2a], di
mov ebp, dword [esp + 0x330]
cmp ebp, edx
ja 0x697997
mov ebx, dword [esp + 0x334]
lea esi, [ebx + ebp]
cmp edx, esi
jb 0x697919
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x80]
jmp 0x697997
mov eax, dword [esp + 0x32c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x100000
call fcn.0069b830
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1ac], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x32c]
mov dword [esp], edx
mov ebx, dword [esp + 0xac]
mov dword [esp + 4], ebx
call fcn.0069b3e0
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x330]
movzx edi, word [esp + 0x2a]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x80]
jmp 0x6979bf
mov dword [esp + 0xb8], eax
xor eax, eax
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xb8]
shl eax, 2
mov ebp, dword [esp + 0x74]
cmp ebp, eax
jb 0x698872
sub ebp, eax
mov ebx, dword [esp + 0x78]
sub ebx, eax
neg ebx
sar ebx, 0x1f
and eax, ebx
cmp ebp, 3
jbe 0x698866
mov ebx, dword [esp + 0x1b4]
mov ebp, dword [ebx + eax]
test ebp, ebp
jne 0x697a02
mov ebx, dword [esp + 0x48]
dec ebx
test ebx, ebx
jg 0x697a06
jmp 0x697cfc
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x32c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0x100000
call fcn.0069b830
mov eax, dword [esp + 0xc]
mov dword [esp + 0x194], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0069aeb0
movzx eax, byte [esp + 8]
test al, al
je 0x697d2f
mov eax, dword [esp + 0x32c]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
call fcn.0069b3e0
mov eax, dword [esp + 8]
test eax, eax
jne 0x697a88
mov ecx, dword [esp + 0x48]
dec ecx
test ecx, ecx
jg 0x697a8c
jmp 0x697d13
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], ecx
lea eax, [0x6e8200]
mov dword [esp], eax
lea edx, [esp + 0x20c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xac]
mov dword [esp + 8], ebx
call fcn.0040f210
mov eax, dword [esp + 0xc]
inc dword [eax]
lea eax, [0x6e8200]
mov dword [esp], eax
lea ecx, [esp + 0x20c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xac]
mov dword [esp + 8], edx
call fcn.0040ef70
mov eax, dword [esp + 0xc]
cmp dword [eax], 0xa
jle 0x697b26
mov ecx, dword [0x9a3a38]
mov dword [esp + 0x1cc], ecx
mov edx, dword [0x9a3a3c]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x32c]
mov ebp, dword [ebx + 0x274]
mov dword [esp + 0x58], ebp
mov eax, dword [ebx + 0x270]
mov dword [esp + 0x1a8], eax
xor esi, esi
jmp 0x69874d
cmp dword [esp + 0x20c], 0x2000
jle 0x697b72
mov ecx, dword [0x9a3a30]
mov dword [esp + 0x1c8], ecx
mov edx, dword [0x9a3a34]
mov dword [esp + 0x94], edx
mov ebx, dword [esp + 0x32c]
mov ebp, dword [ebx + 0x274]
mov dword [esp + 0x54], ebp
mov eax, dword [ebx + 0x270]
mov dword [esp + 0x1a4], eax
xor esi, esi
jmp 0x69862c
movzx ecx, word [esp + 0x2a]
movzx ecx, cx
mov dword [esp + 0x9c], ecx
lea edi, [esp + 0x24c]
xor eax, eax
call fcn.004686f7
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x260], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x258], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x254], ecx
mov edx, dword [esp + 0xd0]
add ecx, edx
mov dword [esp + 0x24c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x250], ecx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 0x264], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x268], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x26c], edx
mov ebx, dword [esp + 0x2f4]
mov ebp, dword [esp + 0x2f0]
inc ebp
mov esi, dword [esp + 0x2ec]
cmp ebx, ebp
jae 0x697c6f
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x714340]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2ec], esi
xor eax, eax
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x2f0], ebp
mov ebx, dword [0x9eca70]
lea ebp, [ebp + ebp*8]
lea edi, [esi + ebp*4 - 0x24]
test ebx, ebx
je 0x697cc3
mov dword [esp + 0x1d0], edi
lea eax, [0x714340]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x24c]
mov dword [esp + 8], eax
call fcn.00411960
xor eax, eax
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0x1d0]
lea esi, [esp + 0x24c]
call fcn.00468bb6
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0xa8]
jmp 0x6977d9
mov eax, dword [esp + 0x32c]
mov ecx, 1
mov ebp, edx
mov esi, dword [esp + 0xa8]
jmp 0x697d59
mov eax, dword [esp + 0x32c]
mov ecx, 1
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
jmp 0x697d59
mov eax, dword [esp + 0x32c]
mov ecx, 1
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
jmp 0x697d59
call fcn.00437c30
add esp, 0x328
ret
xor ecx, ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x34], ebp
test cl, cl
je 0x697dfa
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.00409ce0
mov eax, dword [esp + 4]
lea ecx, [0x6e44c0]
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x1e4], eax
mov eax, dword [0x9c4854]
lea ecx, [0x7aafec]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x75202a]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x4e
lea eax, [esp + 0x1e0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.004c6ad0
mov eax, dword [esp + 0x32c]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x68]
mov ecx, dword [eax + 0xa0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x3c], edx
mov ebx, dword [eax + 0xa4]
mov dword [esp + 0xb4], ebx
xor edi, edi
jmp 0x697e4a
mov eax, dword [esp + 0x1d8]
lea ecx, [eax + 0x2c]
mov eax, dword [esp + 0xb0]
lea edi, [eax + 1]
mov eax, dword [esp + 0x32c]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xb4]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x68]
cmp edi, ebx
jge 0x697ea2
mov dword [esp + 0xb0], edi
mov dword [esp + 0x1d8], ecx
lea edi, [esp + 0x294]
mov esi, ecx
call fcn.00468ba2
lea ecx, [esp + 0x294]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.006a88a0
movzx eax, byte [esp + 0xc]
test al, al
je 0x697e1c
mov eax, dword [esp + 0x32c]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x68]
lea ecx, [esp + 0x294]
jmp 0x697ea4
xor ecx, ecx
mov edx, dword [eax + 0x2ac]
test ecx, ecx
je 0x697ee6
mov dword [esp + 0x198], ecx
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.006a8e80
mov eax, dword [esp + 0x198]
mov edx, dword [eax + 0xc]
add edx, dword [esp + 0x14]
sub edx, dword [esp + 0xe0]
mov dword [esp + 0x38], edx
lea edi, [esp + 0x1f0]
xor eax, eax
call fcn.004686f9
lea edi, [esp + 0x110]
call fcn.004686f3
lea ecx, [esp + 0x110]
mov dword [esp + 0x1fc], ecx
call fcn.00452f50
mov ecx, dword [esp]
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2f0]
mov dword [esp + 0xb4], edx
xor eax, eax
jmp 0x697f9a
mov dword [esp + 0xb0], eax
mov dword [esp + 0x1d8], ecx
lea edi, [esp + 0x270]
mov esi, ecx
call fcn.00468bb6
mov eax, dword [esp + 0x270]
lea ecx, [0x6e81c0]
mov dword [esp], ecx
lea edx, [esp + 0x1f0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0xc]
mov byte [eax], 1
mov eax, dword [esp + 0x1d8]
lea ecx, [eax + 0x24]
mov eax, dword [esp + 0xb0]
inc eax
mov edx, dword [esp + 0xb4]
cmp eax, edx
jl 0x697f3a
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x38]
shr ecx, 2
cmp eax, ecx
jb 0x697fb2
mov eax, ecx
mov dword [esp + 0x44], eax
xor ecx, ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x68]
jmp 0x697fcb
inc eax
mov ecx, eax
mov ebx, ebp
mov eax, dword [esp + 0x44]
cmp ecx, eax
jae 0x69834a
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0xd0]
lea edx, [0x6e81c0]
mov dword [esp], edx
lea ebx, [esp + 0x1f0]
mov dword [esp + 4], ebx
add eax, ecx
mov dword [esp + 8], eax
call fcn.0040ef70
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
test al, al
je 0x698033
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x68]
jmp 0x697fc2
mov eax, dword [esp + 0x5c]
mov edx, eax
shl edx, 2
lea ebx, [edx + 4]
mov ecx, dword [esp + 0x84]
cmp ecx, ebx
jl 0x698081
cmp ecx, edx
jb 0x69861d
mov ebx, ecx
sub ebx, edx
mov ebp, dword [esp + 0x88]
mov esi, ebp
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
cmp ebx, 3
jbe 0x698611
mov ebx, dword [esp + 0x1bc]
mov edx, dword [ebx + edx]
jmp 0x698093
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x6980a0
mov ebp, dword [esp + 0x68]
jmp 0x697fc2
mov dword [esp + 0xa0], edx
mov ebp, dword [esp + 0x330]
cmp ebp, edx
ja 0x69811c
mov edi, dword [esp + 0x334]
add edi, ebp
cmp edx, edi
jae 0x69811c
mov eax, dword [esp + 0x32c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x100000
call fcn.0069b830
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1ac], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x32c]
mov dword [esp], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 4], ebx
call fcn.0069b3e0
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x68], ebx
jmp 0x698129
xor edi, edi
xor edi, edi
mov dword [esp + 0x1ac], edi
xor edi, edi
mov dword [esp + 0x64], edi
lea eax, [0x6e8200]
mov dword [esp], eax
lea ecx, [esp + 0x20c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040f210
mov eax, dword [esp + 0xc]
inc dword [eax]
lea eax, [0x6e8200]
mov dword [esp], eax
lea ecx, [esp + 0x20c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 8], edx
call fcn.0040ef70
mov eax, dword [esp + 0xc]
cmp dword [eax], 0xa
jle 0x6981bc
mov ecx, dword [0x9a3a38]
mov dword [esp + 0x1c4], ecx
mov edx, dword [0x9a3a3c]
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x32c]
mov ebp, dword [ebx + 0x274]
mov dword [esp + 0x50], ebp
mov eax, dword [ebx + 0x270]
mov dword [esp + 0x1a0], eax
xor esi, esi
jmp 0x6984f8
cmp dword [esp + 0x20c], 0x2000
jle 0x698208
mov ecx, dword [0x9a3a30]
mov dword [esp + 0x1c0], ecx
mov edx, dword [0x9a3a34]
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0x32c]
mov ebp, dword [ebx + 0x274]
mov dword [esp + 0x4c], ebp
mov eax, dword [ebx + 0x270]
mov dword [esp + 0x19c], eax
xor esi, esi
jmp 0x6983d7
lea edi, [esp + 0x228]
xor eax, eax
call fcn.004686f7
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x5c]
add ecx, edx
mov dword [esp + 0x228], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x22c], ecx
mov ebx, dword [esp + 0x1ac]
mov dword [esp + 0x240], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x244], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x248], ebx
mov ebp, dword [esp + 0x2f4]
mov esi, dword [esp + 0x2f0]
inc esi
mov edi, dword [esp + 0x2ec]
cmp ebp, esi
jae 0x6982c3
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x714340]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2ec], edi
xor eax, eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x2f0], esi
mov ebp, dword [0x9eca70]
lea esi, [esi + esi*8]
lea edi, [edi + esi*4 - 0x24]
test ebp, ebp
je 0x698317
mov dword [esp + 0x1d0], edi
lea eax, [0x714340]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x228]
mov dword [esp + 8], eax
call fcn.00411960
xor eax, eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x1d0]
lea esi, [esp + 0x228]
call fcn.00468bb6
mov eax, edx
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x1bc]
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x68]
jmp 0x697fc2
mov eax, dword [0x9eca70]
mov ecx, dword [esp + 0x32c]
lea edi, [ecx + 0xb8]
test eax, eax
je 0x698393
mov dword [esp + 0x1d4], edi
lea eax, [0x700d60]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x2ec]
mov dword [esp + 8], eax
call fcn.00411960
mov ecx, dword [esp + 0x32c]
mov edi, dword [esp + 0x1d4]
lea esi, [esp + 0x2ec]
call fcn.00468b7a
mov eax, dword [esp + 0x32c]
mov byte [eax + 0x29b], 1
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
call fcn.00437c30
add esp, 0x328
ret
inc esi
mov ebx, dword [esp + 0x32c]
cmp esi, ebp
jge 0x69843d
lea edi, [eax + esi*8]
mov ebx, dword [edi + 4]
cmp ebx, edx
jne 0x6983cf
mov dword [esp + 0xb4], esi
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00403590
movzx eax, byte [esp + 0xc]
test al, al
jne 0x698429
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0xb4]
jmp 0x6983cf
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x4c]
cmp ecx, edx
mov ebx, dword [esp + 0x32c]
jl 0x698208
mov ecx, dword [ebx + 0x278]
mov edx, dword [ebx + 0x274]
inc edx
mov ebp, dword [ebx + 0x270]
cmp ecx, edx
jae 0x6984b7
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e41c0]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x32c]
mov dword [ebx + 0x278], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6984af
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x270]
mov dword [edi + 4], ebp
mov dword [ebx + 0x270], ecx
mov ebp, ecx
mov dword [ebx + 0x274], edx
lea ecx, [ebp + edx*8 - 4]
mov eax, dword [0x9a3a34]
lea edx, [ebp + edx*8 - 8]
mov ebp, dword [0x9a3a30]
mov dword [ecx], eax
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x6984e9
call fcn.00468460
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], ebp
jmp 0x698208
inc esi
mov ebx, dword [esp + 0x32c]
cmp esi, ebp
jge 0x69855e
lea edi, [eax + esi*8]
mov ebx, dword [edi + 4]
cmp ebx, edx
jne 0x6984f0
mov dword [esp + 0xb4], esi
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00403590
movzx eax, byte [esp + 0xc]
test al, al
jne 0x69854a
mov eax, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [esp + 0x90]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0xb4]
jmp 0x6984f0
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x50]
cmp ecx, edx
mov ebx, dword [esp + 0x32c]
jl 0x6981bc
mov ecx, dword [ebx + 0x278]
mov edx, dword [ebx + 0x274]
inc edx
mov ebp, dword [ebx + 0x270]
cmp ecx, edx
jae 0x6985d8
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e41c0]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x32c]
mov dword [ebx + 0x278], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6985d0
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x270]
mov dword [edi + 4], ebp
mov dword [ebx + 0x270], ecx
mov ebp, ecx
mov dword [ebx + 0x274], edx
lea ecx, [ebp + edx*8 - 4]
mov eax, dword [0x9a3a3c]
lea edx, [ebp + edx*8 - 8]
mov ebp, dword [0x9a3a38]
mov dword [ecx], eax
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x69860a
call fcn.00468460
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], ebp
jmp 0x6981bc
mov eax, 3
mov ecx, ebx
call fcn.004684c0
mov eax, edx
call fcn.00468530
inc esi
mov ebx, dword [esp + 0x32c]
cmp esi, ebp
jge 0x698692
lea edi, [eax + esi*8]
mov ebx, dword [edi + 4]
cmp ebx, edx
jne 0x698624
mov dword [esp + 0xb4], esi
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00403590
movzx eax, byte [esp + 0xc]
test al, al
jne 0x69867e
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x94]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0xb4]
jmp 0x698624
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x54]
cmp ecx, edx
mov ebx, dword [esp + 0x32c]
jl 0x697b72
mov ecx, dword [ebx + 0x278]
mov edx, dword [ebx + 0x274]
inc edx
mov ebp, dword [ebx + 0x270]
cmp ecx, edx
jae 0x69870c
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e41c0]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x32c]
mov dword [ebx + 0x278], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x698704
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x270]
mov dword [edi + 4], ebp
mov dword [ebx + 0x270], ecx
mov ebp, ecx
mov dword [ebx + 0x274], edx
lea ecx, [ebp + edx*8 - 4]
mov eax, dword [0x9a3a34]
lea edx, [ebp + edx*8 - 8]
mov ebp, dword [0x9a3a30]
mov dword [ecx], eax
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x69873e
call fcn.00468460
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], ebp
jmp 0x697b72
inc esi
mov ebx, dword [esp + 0x32c]
cmp esi, ebp
jge 0x6987b3
lea edi, [eax + esi*8]
mov ebx, dword [edi + 4]
cmp ebx, edx
jne 0x698745
mov dword [esp + 0xb4], esi
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00403590
movzx eax, byte [esp + 0xc]
test al, al
jne 0x69879f
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esp + 0x98]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xb4]
jmp 0x698745
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x58]
cmp ecx, edx
mov ebx, dword [esp + 0x32c]
jl 0x697b26
mov ecx, dword [ebx + 0x278]
mov edx, dword [ebx + 0x274]
inc edx
mov ebp, dword [ebx + 0x270]
cmp ecx, edx
jae 0x69882d
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e41c0]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x32c]
mov dword [ebx + 0x278], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x698825
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x270]
mov dword [edi + 4], ebp
mov dword [ebx + 0x270], ecx
mov ebp, ecx
mov dword [ebx + 0x274], edx
lea ecx, [ebp + edx*8 - 4]
mov eax, dword [0x9a3a3c]
lea edx, [ebp + edx*8 - 8]
mov ebp, dword [0x9a3a38]
mov dword [ecx], eax
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x69885f
call fcn.00468460
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], ebp
jmp 0x697b26
mov eax, 3
mov ecx, ebp
call fcn.004684c0
mov ecx, ebp
call fcn.00468530
mov eax, 3
mov ecx, ebp
call fcn.004684c0
mov eax, edx
mov ecx, ebp
call fcn.00468520
mov eax, 1
mov ecx, ebx
call fcn.004684c0
mov eax, edx
call fcn.00468530
nop
call fcn.00467050
jmp fcn.00696fa0