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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc4]
cmp eax, dword [ecx + 8]
jbe 0x7afcb2
sub esp, 0x144
mov eax, 0
mov dword [esp + 0x140], eax
mov byte [esp + 0x27], 0
lea eax, [0x1047f70]
mov dword [esp], eax
call fcn.00474590
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
lea edx, [0xaecdc0]
cmp ecx, edx
jne 0x7afc8f
mov dword [esp + 0xe0], eax
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ebx, [0x7afcc0]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], eax
lea ebx, [esp + 0x120]
mov dword [esp + 0x140], ebx
mov byte [esp + 0x27], 1
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov ebx, dword [esp + 0x14c]
xor ebp, ebp
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x150]
jmp 0x7aea84
mov dword [esp + 0x44], ebp
mov dword [esp + 0x30], esi
mov ebp, edx
mov esi, eax
mov eax, dword [esp + 0xe0]
mov edx, edi
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x40], edi
test ecx, ecx
je 0x7af22e
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x28], ebp
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00782840
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
movzx edx, byte [esp + 0x10]
mov ebx, dword [esp + 0xb8]
cmp ebx, ecx
jb 0x7afc86
sub ebx, ecx
mov dword [esp + 0xb8], ebx
mov ebp, dword [esp + 0xbc]
sub ebp, ecx
mov dword [esp + 0xbc], ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ecx
mov edi, dword [esp + 0x10c]
add ebp, edi
mov dword [esp + 0x10c], ebp
cmp dl, 2
jne 0x7af1bd
mov dword [esp + 0xb4], eax
mov dword [esp + 0x60], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.007838a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
cmp ebx, 6
mov ebp, dword [esp + 0xb8]
cmp eax, ebp
ja 0x7afc7f
mov dword [esp + 0xb0], ebx
sub ebp, eax
mov dword [esp + 0xb8], ebp
mov esi, dword [esp + 0xbc]
sub esi, eax
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
mov ebx, dword [esp + 0x10c]
add ebx, esi
mov esi, dword [esp + 0xb4]
cmp esi, 4
jg 0x7af006
mov dword [esp + 0xbc], edi
mov dword [esp + 0x108], ebx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xe4], edx
cmp esi, 1
je 0x7aee07
cmp esi, 2
je 0x7aec08
cmp esi, 4
jne 0x7af188
mov ecx, ebx
mov ebx, dword [esp + 0x28]
cmp ebx, 4
je 0x7aebf0
mov ebx, dword [esp + 0x40]
test ebx, ebx
jg 0x7afc67
mov edx, esi
mov esi, dword [esp + 0x150]
sub esi, ebp
mov ebp, dword [esp + 0x60]
sub esi, ebp
sub esi, eax
jmp 0x7aebfa
mov edx, esi
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
inc ebx
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
jmp 0x7af19c
mov eax, dword [esp + 0xe0]
mov ebx, dword [eax + 8]
mov dword [esp + 0xac], ebx
mov ebp, dword [eax + 4]
sub ebx, ebp
cmp ecx, ebx
jle 0x7aec90
lea eax, [0xa98c80]
mov dword [esp], eax
mov edx, dword [esp + 0xac]
add edx, ecx
shl edx, 1
mov dword [esp + 0xac], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00450f10
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xac]
mov edi, dword [esp + 0xe0]
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov ecx, dword [0x10a66d0]
test ecx, ecx
jne 0x7aec70
mov dword [edi], eax
jmp 0x7aec75
call fcn.00469aa0
mov eax, edi
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xbc]
mov ebx, dword [eax + 4]
mov dword [esp + 0xac], ebx
lea ebp, [ebx + ecx]
mov dword [esp + 0xa8], ebp
mov esi, dword [eax + 8]
mov edi, dword [eax]
cmp esi, ebp
jae 0x7aece5
lea eax, [0xa98c80]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.00451110
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x10c], edi
lea eax, [edi + ebx]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0046a440
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0xe0]
mov dword [edi + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [edi + 8], eax
mov edx, dword [0x10a66d0]
test edx, edx
jne 0x7aed36
mov ebx, dword [esp + 0x10c]
mov dword [edi], ebx
jmp 0x7aed48
mov edx, eax
mov eax, dword [esp + 0x10c]
call fcn.00469aa0
mov ebx, eax
mov eax, edx
mov ebp, dword [esp + 0xac]
cmp ebp, ecx
ja 0x7afc60
sub eax, ebp
mov esi, eax
neg eax
sar eax, 0x1f
and ebp, eax
add ebx, ebp
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], esi
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov ebx, dword [esp + 0x128]
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0x114], ebx
mov eax, dword [esp + 0x110]
mov ebp, dword [esp + 0x148]
mov dword [ebp + 0x74], ebx
mov ebx, dword [0x10a66d0]
test ebx, ebx
jne 0x7aedcf
mov dword [ebp + 0x70], eax
jmp 0x7aeddd
lea ebx, [ebp + 0x70]
mov ecx, edi
mov edi, ebx
call fcn.00469aa0
mov edi, ecx
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0xbc]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
jmp 0x7af19c
mov eax, dword [esp + 0xe0]
mov ebx, dword [eax + 8]
mov dword [esp + 0xac], ebx
mov ebp, dword [eax + 4]
sub ebx, ebp
cmp ecx, ebx
jle 0x7aee8f
lea eax, [0xa98c80]
mov dword [esp], eax
mov edx, dword [esp + 0xac]
add edx, ecx
shl edx, 1
mov dword [esp + 0xac], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00450f10
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xac]
mov edi, dword [esp + 0xe0]
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov ecx, dword [0x10a66d0]
test ecx, ecx
jne 0x7aee6f
mov dword [edi], eax
jmp 0x7aee74
call fcn.00469aa0
mov eax, edi
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xbc]
mov ebx, dword [eax + 4]
mov dword [esp + 0xac], ebx
lea ebp, [ebx + ecx]
mov dword [esp + 0xa8], ebp
mov esi, dword [eax + 8]
mov edi, dword [eax]
cmp esi, ebp
jae 0x7aeee4
lea eax, [0xa98c80]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.00451110
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x10c], edi
mov dword [esp + 0xa4], esi
lea eax, [edi + ebx]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0046a440
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0xe0]
mov dword [edi + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [edi + 8], eax
mov edx, dword [0x10a66d0]
test edx, edx
jne 0x7aef35
mov ebx, dword [esp + 0x10c]
mov dword [edi], ebx
jmp 0x7aef47
mov edx, eax
mov eax, dword [esp + 0x10c]
call fcn.00469aa0
mov ebx, eax
mov eax, edx
mov ebp, dword [esp + 0xac]
cmp ebp, ecx
ja 0x7afc59
sub eax, ebp
mov esi, eax
neg eax
sar eax, 0x1f
and ebp, eax
add ebx, ebp
mov dword [esp + 0x134], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], esi
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x118], ebx
mov ebx, dword [esp + 0x138]
mov dword [esp + 0x11c], ebx
mov eax, dword [esp + 0x118]
mov ebp, dword [esp + 0x148]
mov dword [ebp + 0x6c], ebx
mov ebx, dword [0x10a66d0]
test ebx, ebx
jne 0x7aefce
mov dword [ebp + 0x68], eax
jmp 0x7aefdc
lea ebx, [ebp + 0x68]
mov ecx, edi
mov edi, ebx
call fcn.00469aa0
mov edi, ecx
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0xbc]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
jmp 0x7af19c
cmp esi, 6
jg 0x7af0b6
cmp esi, 5
jne 0x7af062
mov ecx, ebx
mov ebx, dword [esp + 0x28]
cmp ebx, 5
je 0x7af040
mov ebx, dword [esp + 0x48]
test ebx, ebx
jg 0x7afc41
mov edx, esi
mov esi, dword [esp + 0x150]
sub esi, ebp
mov ebp, dword [esp + 0x60]
sub esi, ebp
sub esi, eax
jmp 0x7af04a
mov edx, esi
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
inc ebx
mov eax, ebx
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x30]
jmp 0x7af19c
mov ecx, ebx
mov ebx, dword [esp + 0x28]
cmp ebx, 6
je 0x7af08e
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jg 0x7afc29
mov edx, esi
mov esi, dword [esp + 0x150]
sub esi, ebp
mov ebp, dword [esp + 0x60]
sub esi, ebp
sub esi, eax
jmp 0x7af098
mov edx, esi
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
inc ebx
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
jmp 0x7af19c
cmp esi, 7
jne 0x7af109
mov ecx, ebx
mov ebx, dword [esp + 0x28]
cmp ebx, 7
je 0x7af0e7
mov ebx, dword [esp + 0x44]
test ebx, ebx
jg 0x7afc11
mov edx, esi
mov esi, dword [esp + 0x150]
sub esi, ebp
mov ebp, dword [esp + 0x60]
sub esi, ebp
sub esi, eax
jmp 0x7af0f1
mov edx, esi
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
lea ebp, [ebx + 1]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x30]
jmp 0x7af19c
cmp esi, 0xc
jne 0x7af188
mov eax, ebx
mov ebx, dword [esp + 0xb0]
cmp ebx, 6
jne 0x7afbf9
mov ecx, ebp
mov ebp, dword [edx]
cmp ebp, 0x746f7270
jne 0x7af146
cmp word [edx + 4], 0x326f
jne 0x7af141
mov ebx, dword [esp + 0x148]
mov byte [ebx + 0x64], 2
jmp 0x7af172
cmp ebx, 6
jmp 0x7af149
cmp ebx, 6
jne 0x7afbf9
cmp ebp, 0x746f7270
jne 0x7afbf9
cmp word [edx + 4], 0x336f
jne 0x7afbf9
mov ebx, dword [esp + 0x148]
mov byte [ebx + 0x64], 3
mov ecx, eax
mov edx, esi
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
jmp 0x7af19c
mov ecx, ebx
mov edx, esi
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xd8]
jmp 0x7aea64
mov dword [esp], eax
mov byte [esp + 4], dl
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.00782650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xb8]
cmp eax, ecx
ja 0x7afbf4
mov esi, dword [esp + 0xbc]
sub esi, eax
sub ecx, eax
mov edx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
mov ebx, dword [esp + 0x10c]
add ebx, eax
mov edi, edx
mov dword [esp + 0xbc], ecx
mov ecx, ebx
mov edx, 0xffffffff
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
jmp 0x7aea64
mov ebx, dword [esp + 0x148]
movzx ebp, byte [ebx + 0x64]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x7af243
mov byte [ebx + 0x64], 2
test esi, esi
jle 0x7af2b8
mov ebp, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov ecx, ebx
mov ebx, dword [ebx + 0x34]
mov dword [esp + 0x104], ebx
lea ebx, [ebp + esi]
cmp edx, ebx
jb 0x7afbed
cmp ebp, ebx
ja 0x7afbe4
mov dword [ecx + 0x38], ebx
mov dword [ecx + 0x7c], esi
sub edx, ebp
mov dword [ecx + 0x80], edx
mov ebx, dword [0x10a66d0]
neg edx
shl ebp, 5
sar edx, 0x1f
and ebp, edx
mov edx, esi
mov esi, dword [esp + 0x104]
add ebp, esi
test ebx, ebx
jne 0x7af29f
mov dword [ecx + 0x78], ebp
jmp 0x7af2bc
lea ebx, [ecx + 0x78]
mov esi, edi
mov edi, ebx
mov eax, ebp
call fcn.00469aa0
mov eax, dword [esp + 0xe0]
mov edi, esi
jmp 0x7af2bc
mov ecx, ebx
mov edx, esi
test edi, edi
jle 0x7af337
mov ebx, dword [ecx + 0x44]
mov ebp, dword [ecx + 0x48]
mov esi, dword [ecx + 0x40]
mov dword [esp + 0x100], esi
lea esi, [ebx + edi]
cmp ebp, esi
jb 0x7afbdb
cmp ebx, esi
ja 0x7afbd2
mov dword [ecx + 0x44], esi
mov dword [ecx + 0x98], edi
sub ebp, ebx
mov dword [ecx + 0x9c], ebp
mov esi, dword [0x10a66d0]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
imul ebx, ebx, 0x74
and ebx, ebp
mov ebp, dword [esp + 0x100]
add ebx, ebp
test esi, esi
jne 0x7af31d
mov dword [ecx + 0x94], ebx
jmp 0x7af337
lea ebp, [ecx + 0x94]
mov esi, edi
mov edi, ebp
mov eax, ebx
call fcn.00469aa0
mov eax, dword [esp + 0xe0]
mov edi, esi
mov ebx, dword [esp + 0x44]
test ebx, ebx
jle 0x7af3cd
mov ebp, dword [ecx + 0x50]
mov esi, dword [ecx + 0x54]
mov dword [esp + 0xbc], esi
mov esi, dword [ecx + 0x4c]
mov dword [esp + 0xfc], esi
lea esi, [ebp + ebx]
mov ebx, dword [esp + 0xbc]
cmp ebx, esi
jb 0x7afbc9
cmp ebp, esi
ja 0x7afbc0
mov dword [ecx + 0x50], esi
mov esi, dword [esp + 0x44]
mov dword [ecx + 0xb4], esi
sub ebx, ebp
mov dword [ecx + 0xb8], ebx
mov esi, dword [0x10a66d0]
neg ebx
sar ebx, 0x1f
imul ebp, ebp, 0x2c
and ebp, ebx
mov ebx, dword [esp + 0xfc]
add ebx, ebp
test esi, esi
jne 0x7af3af
mov dword [ecx + 0xb0], ebx
jmp 0x7af3c9
lea ebp, [ecx + 0xb0]
mov esi, edi
mov edi, ebp
mov eax, ebx
call fcn.00469aa0
mov eax, dword [esp + 0xe0]
mov edi, esi
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
test ebp, ebp
jle 0x7af470
mov esi, dword [ecx + 0x5c]
mov ebx, dword [ecx + 0x60]
mov dword [esp + 0xbc], ebx
mov ebx, dword [ecx + 0x58]
mov dword [esp + 0xf8], ebx
lea ebx, [esi + ebp]
mov ebp, dword [esp + 0xbc]
cmp ebp, ebx
jb 0x7afbb7
cmp esi, ebx
ja 0x7afbae
mov dword [ecx + 0x5c], ebx
mov ebx, dword [esp + 0x3c]
mov dword [ecx + 0xd0], ebx
sub ebp, esi
mov dword [ecx + 0xd4], ebp
mov ebx, dword [0x10a66d0]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
imul esi, esi, 0x1c
sar ebp, 0x1f
and esi, ebp
mov ebp, dword [esp + 0xf8]
add ebp, esi
test ebx, ebx
jne 0x7af44a
mov dword [ecx + 0xcc], ebp
test edx, edx
jmp 0x7af466
lea ebx, [ecx + 0xcc]
mov esi, edi
mov edi, ebx
mov eax, ebp
call fcn.00469aa0
test edx, edx
mov eax, dword [esp + 0xe0]
mov edi, esi
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
jmp 0x7af472
test edx, edx
jle 0x7af4d1
mov esi, dword [esp + 0x150]
mov edx, ebp
mov ebp, dword [esp + 0x38]
cmp esi, ebp
jb 0x7afba5
mov ebx, dword [esp + 0x154]
sub ebx, ebp
mov dword [esp + 0xa0], ebx
sub esi, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x14c]
add ebp, ebx
mov ebx, dword [ecx + 0x7c]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xc0]
jmp 0x7afa86
test edi, edi
jle 0x7af536
mov esi, dword [esp + 0x150]
mov edi, dword [esp + 0x30]
cmp esi, edi
jb 0x7afa29
mov edx, ebp
mov ebp, dword [esp + 0x154]
sub ebp, edi
mov dword [esp + 0x9c], ebp
sub esi, edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
mov ebp, dword [esp + 0x14c]
add edi, ebp
mov ebp, dword [ecx + 0x98]
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc8]
jmp 0x7af910
test ebx, ebx
jle 0x7af59b
mov ebx, dword [esp + 0x150]
mov esi, dword [esp + 0x34]
cmp ebx, esi
jb 0x7af8b5
mov edi, dword [esp + 0x154]
mov edx, edi
sub edi, esi
mov dword [esp + 0x98], edi
sub ebx, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
mov edi, dword [esp + 0x14c]
add esi, edi
mov edi, dword [ecx + 0xb4]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xd0]
jmp 0x7af79e
test ebp, ebp
jle 0x7af5e4
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x2c]
cmp ebx, ebp
jb 0x7af740
mov esi, dword [esp + 0x154]
sub esi, ebp
sub ebx, ebp
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebp, esi
mov esi, dword [esp + 0x14c]
add ebp, esi
mov esi, dword [ecx + 0xd0]
mov dword [esp + 0xbc], esi
xor edx, edx
jmp 0x7af63a
mov byte [esp + 0x27], 0
mov edx, dword [esp + 0x140]
mov eax, dword [edx]
call eax
add esp, 0x144
ret
mov edx, dword [esp + 0x74]
inc edx
mov edi, dword [esp + 0x94]
sub edi, eax
sub ecx, eax
mov ebx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
mov ebp, dword [esp + 0xe8]
add ebp, eax
mov eax, dword [esp + 0xe0]
mov esi, dword [esp + 0xbc]
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x148]
cmp edx, esi
jge 0x7af5e4
mov dword [esp + 0x84], ebx
mov dword [esp + 0xe8], ebp
mov dword [esp + 0x94], edi
mov dword [esp + 0x74], edx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.00783370
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x84]
cmp ecx, eax
jb 0x7af73b
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x94]
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
mov esi, dword [esp + 0xe8]
add edx, esi
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.007838a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov esi, dword [ebp + 0xd0]
mov edi, dword [ebp + 0xcc]
mov ecx, dword [esp + 0x74]
cmp ecx, esi
jae 0x7af732
imul esi, ecx, 0x1c
add esi, edi
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
lea edx, [0xc30c88]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ecx
call fcn.007b1270
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0x84]
cmp ecx, eax
jae 0x7af5fb
call fcn.00469b80
mov eax, ecx
mov ecx, esi
call fcn.00469b20
call fcn.00469b80
mov eax, ebp
mov ecx, ebx
call fcn.00469b80
mov edx, dword [esp + 0x78]
inc edx
mov edi, dword [esp + 0x98]
sub edi, eax
sub ecx, eax
mov ebx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
mov ebp, dword [esp + 0xec]
lea esi, [ebp + eax]
mov eax, dword [esp + 0xe0]
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x78], edx
mov dword [esp + 0x98], ebx
mov edx, dword [esp + 0x154]
mov ebx, ecx
mov ecx, dword [esp + 0x148]
mov ebp, dword [esp + 0x78]
cmp ebp, edi
jge 0x7af897
mov dword [esp + 0x88], ebx
mov dword [esp + 0xec], esi
mov dword [esp], esi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00783370
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
cmp ecx, eax
jb 0x7af8b0
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x98]
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
mov esi, dword [esp + 0xec]
add edx, esi
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.007838a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov esi, dword [ebp + 0xb4]
mov edi, dword [ebp + 0xb0]
mov ecx, dword [esp + 0x78]
cmp ecx, esi
jae 0x7af8a7
imul esi, ecx, 0x2c
add esi, edi
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
lea edx, [0xc30c88]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ecx
call fcn.007b0f30
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x68]
add eax, ecx
mov ecx, dword [esp + 0x88]
cmp ecx, eax
jae 0x7af749
jmp 0x7af8a2
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jmp 0x7af59d
call fcn.00469b80
mov eax, ecx
mov ecx, esi
call fcn.00469b20
call fcn.00469b80
mov eax, esi
mov ecx, ebx
call fcn.00469b80
mov edx, dword [esp + 0x7c]
inc edx
mov ebp, dword [esp + 0x9c]
sub ebp, eax
sub ecx, eax
mov ebx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
mov ebp, dword [esp + 0xf0]
lea edi, [ebp + eax]
mov eax, dword [esp + 0xe0]
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x7c], edx
mov esi, ecx
mov dword [esp + 0x9c], ebx
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
cmp ebx, ebp
jge 0x7afa09
mov dword [esp + 0x8c], esi
mov dword [esp + 0xf0], edi
mov dword [esp], edi
mov dword [esp + 4], esi
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00783370
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x8c]
cmp ecx, eax
jb 0x7afa24
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x9c]
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
mov esi, dword [esp + 0xf0]
add edx, esi
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.007838a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov esi, dword [ebp + 0x98]
mov edi, dword [ebp + 0x94]
mov ecx, dword [esp + 0x7c]
cmp ecx, esi
jae 0x7afa1b
imul esi, ecx, 0x74
add esi, edi
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
lea edx, [0xc30c88]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ecx
call fcn.007b0200
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x6c]
add eax, ecx
mov ecx, dword [esp + 0x8c]
cmp ecx, eax
jae 0x7af8be
jmp 0x7afa16
mov ebx, dword [esp + 0x44]
test ebx, ebx
mov ebp, edx
jmp 0x7af538
call fcn.00469b80
mov eax, ecx
mov ecx, esi
call fcn.00469b20
call fcn.00469b80
mov eax, edi
mov ecx, esi
call fcn.00469b80
mov edx, dword [esp + 0x80]
inc edx
mov ebx, dword [esp + 0xa0]
sub ebx, eax
sub ecx, eax
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
mov ebx, dword [esp + 0xf4]
add eax, ebx
mov ebx, dword [esp + 0xbc]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x80], edx
mov esi, ecx
mov dword [esp + 0xa0], ebp
mov ebp, eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x80]
cmp edi, ebx
jge 0x7afb81
mov dword [esp + 0x90], esi
mov dword [esp + 0xf4], ebp
mov dword [esp], ebp
mov dword [esp + 4], esi
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.00783370
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x90]
cmp ecx, eax
jb 0x7afba0
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0xa0]
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
mov esi, dword [esp + 0xf4]
add edx, esi
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.007838a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov esi, dword [ebp + 0x7c]
mov edi, dword [ebp + 0x78]
mov ecx, dword [esp + 0x80]
cmp ecx, esi
jae 0x7afb97
mov esi, ecx
shl ecx, 5
add ecx, edi
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
lea ecx, [0xc30c88]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
call fcn.007afd00
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
add eax, ecx
mov ecx, dword [esp + 0x90]
cmp ecx, eax
jae 0x7afa32
jmp 0x7afb92
mov esi, dword [esp + 0x40]
test esi, esi
mov ebx, dword [esp + 0x44]
mov ebp, edx
jmp 0x7af4d3
call fcn.00469b80
mov eax, ecx
mov ecx, esi
call fcn.00469b20
call fcn.00469b80
mov eax, ebp
mov ecx, esi
call fcn.00469b80
mov eax, esi
mov ecx, ebx
call fcn.00469b80
mov ecx, ebx
mov edx, ebp
call fcn.00469b60
mov eax, ebp
mov ecx, esi
call fcn.00469b80
mov ecx, esi
mov edx, ebx
call fcn.00469b60
mov eax, ebx
mov ecx, esi
call fcn.00469b80
mov ecx, esi
mov edx, ebp
call fcn.00469b60
mov eax, ebp
mov ecx, ebx
call fcn.00469b80
mov ecx, ebx
call fcn.00469b60
call fcn.00469b80
lea eax, [0xa989c0]
mov dword [esp], eax
lea eax, [0xc2c21c]
mov dword [esp + 4], eax
call fcn.0043ae50
lea eax, [0xa989c0]
mov dword [esp], eax
lea eax, [0xc2c224]
mov dword [esp + 4], eax
call fcn.0043ae50
lea eax, [0xa989c0]
mov dword [esp], eax
lea eax, [0xc2c224]
mov dword [esp + 4], eax
call fcn.0043ae50
lea eax, [0xa989c0]
mov dword [esp], eax
lea eax, [0xc2c224]
mov dword [esp + 4], eax
call fcn.0043ae50
mov eax, ebp
call fcn.00469b80
mov eax, ebp
call fcn.00469b80
lea eax, [0xa989c0]
mov dword [esp], eax
lea eax, [0xc2c224]
mov dword [esp + 4], eax
call fcn.0043ae50
mov ecx, ebp
call fcn.00469b80
mov eax, ecx
mov ecx, ebx
call fcn.00469b80
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0xa980c0]
mov dword [esp + 8], eax
call fcn.00409ab0
nop
call fcn.0043a2d0
add esp, 0x144
ret
call fcn.00468690
jmp fcn.007ae980