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

Disassembly:
mov ecx, dword [0xae4be8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x188]
cmp eax, dword [ecx + 8]
jbe 0x8198c3
sub esp, 0x208
mov eax, dword [esp + 0x218]
test eax, eax
je 0x818457
mov eax, dword [esp + 0x20c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x210]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x8cd82c]
divsd xmm0, xmm1
mov eax, dword [esp + 0x248]
cvtsi2sd xmm1, eax
mulsd xmm1, xmm0
movsd qword [esp + 0x10c], xmm1
nop
mov eax, dword [esp + 0x238]
mov dword [esp], eax
mov eax, dword [esp + 0x23c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x244]
mov dword [esp + 0xc], eax
movsd qword [esp + 0x10], xmm0
call fcn.0082ff40
nop
mov eax, dword [esp + 0x18]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xfc], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xf8], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xf4], ebx
nop
movsd xmm0, qword [esp + 0x10c]
movsd qword [esp + 0x114], xmm0
mov ebp, dword [esp + 0x118]
mov esi, ebp
shr ebp, 0x14
and ebp, 0x7ff
cmp ebp, 0x3ff
jae 0x8181a1
and esi, 0x80000000
cmp ebp, 0x3fe
jne 0x81819a
or esi, 0x3ff00000
xor edi, edi
jmp 0x8182a2
mov edi, dword [esp + 0x114]
cmp ebp, 0x433
jae 0x8182a2
mov dword [esp + 0xf0], esi
lea ecx, [ebp - 0x3ff]
mov dword [esp + 0xbc], ecx
mov ebx, 0x80000
shr ebx, cl
mov dword [esp + 0xec], ebx
mov eax, 0xfffff
shr eax, cl
mov dword [esp + 0xe8], eax
mov edx, 0xffffffff
shr edx, cl
mov dword [esp + 0xe4], edx
add ebp, 0xfffffbe1
mov ecx, ebp
mov eax, 0x80000
shr eax, cl
neg ecx
mov dword [esp + 0xe0], ecx
mov edx, 0x80000
shl edx, cl
mov esi, 0xfffff
shl esi, cl
mov ecx, ebp
mov ebx, 0xfffff
shr ebx, cl
cmp ecx, 0x20
sbb ecx, ecx
and eax, ecx
and ebx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0xe0]
cmp ebx, 0x20
sbb ebx, ebx
and edx, ebx
or eax, edx
and esi, ebx
mov edx, edi
add edi, eax
mov ebx, dword [esp + 0xbc]
cmp ebx, 0x20
sbb ebp, ebp
mov ebx, dword [esp + 0xec]
and ebx, ebp
add edx, eax
mov eax, dword [esp + 0xf0]
adc eax, ebx
mov edx, dword [esp + 0xe4]
and edx, ebp
mov ebx, dword [esp + 0xe8]
and ebp, ebx
xchg ebp, ebx
not ebx
xchg ebp, ebx
or esi, edx
or ecx, esi
not ecx
and ebp, eax
and edi, ecx
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xf4]
mov esi, ebp
mov dword [esp + 0x12c], edi
mov dword [esp + 0x130], esi
movsd xmm0, qword [esp + 0x12c]
movsd qword [esp + 0x104], xmm0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
lea eax, [0x85ef80]
mov dword [esp], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1cc], eax
lea ecx, [0x85ef80]
mov dword [esp], ecx
mov edx, dword [esp + 0x218]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c8], eax
lea ecx, [0x85ef80]
mov dword [esp], ecx
mov edx, dword [esp + 0x218]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c4], eax
lea ecx, [0x85ef80]
mov dword [esp], ecx
mov edx, dword [esp + 0x218]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c0], eax
lea ecx, [0x85ef80]
mov dword [esp], ecx
mov edx, dword [esp + 0x218]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1bc], eax
lea ecx, [0x85ef80]
mov dword [esp], ecx
mov ecx, dword [esp + 0x218]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1b8], eax
lea ecx, [0x85ee40]
mov dword [esp], ecx
mov edx, dword [esp + 0x218]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1b4], eax
lea ecx, [0x85ee40]
mov dword [esp], ecx
mov ecx, dword [esp + 0x218]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1b0], eax
lea ecx, [0x875b40]
mov dword [esp], ecx
mov ecx, dword [esp + 0x218]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0076c750
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1ac], eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x818494
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x258], 0
add esp, 0x208
ret
inc eax
mov ecx, eax
mov ebp, esi
mov esi, ebx
mov eax, dword [esp + 0x1ac]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x5c], esi
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x80], edx
mov edi, dword [esp + 0x218]
cmp edi, ecx
jle 0x818b1e
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x214]
lea edx, [eax + ecx*8]
mov ebx, dword [edx]
mov dword [esp + 0x94], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x190], edx
mov ebp, dword [ebx + 0x1c]
mov dword [esp], edx
call ebp
mov eax, dword [esp + 4]
lea ecx, [0x861700]
mov dword [esp], ecx
mov edx, dword [esp + 0x24c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0072f7c0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
test eax, eax
jne 0x818518
mov eax, 1
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x1cc]
mov dword [edx + ecx*4], eax
mov ebx, dword [esp + 0x94]
mov ebp, dword [ebx + 0x18]
mov esi, dword [esp + 0x190]
mov dword [esp], esi
call ebp
mov eax, dword [esp + 4]
mov dword [esp + 0x19c], eax
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx + 0x20]
mov ebx, dword [esp + 0x190]
mov dword [esp], ebx
call edx
movzx eax, byte [esp + 4]
mov byte [esp + 0x2a], al
mov ecx, dword [esp + 0x19c]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xdc], edx
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0xd8], ecx
lea ebx, [0x867620]
mov dword [esp], ebx
mov ebp, dword [esp + 0x94]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x190]
mov dword [esp + 8], esi
call fcn.0072a910
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x8185bb
mov eax, 1
jmp 0x8185cf
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x8185d9
xor ecx, ecx
xor eax, eax
jmp 0x81861f
lea eax, [0x864ca0]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x190]
mov dword [esp + 8], edx
call fcn.0072a910
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x81860b
xor ecx, ecx
xor eax, eax
jmp 0x81861f
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], eax
movzx edx, byte [esp + 0x220]
cmp dl, 1
jne 0x81871c
movzx eax, byte [esp + 0x2a]
test al, 8
seta cl
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x1b0]
mov byte [ebx + edx], cl
mov ecx, dword [esp + 0x20c]
mov ebp, dword [ecx + 0x38]
mov esi, dword [esp + 0x210]
mov dword [esp], esi
mov edi, dword [esp + 0x94]
mov dword [esp + 4], edi
mov esi, dword [esp + 0x190]
mov dword [esp + 8], esi
call ebp
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x1c8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0xdc]
test eax, eax
jle 0x8186bc
mov ebx, dword [esp + 0x1c4]
mov dword [ebx + ecx*4], eax
mov eax, dword [esp + 0x74]
movzx ebx, byte [esp + 0x2a]
mov ebp, dword [esp + 0x1c4]
jmp 0x8186ef
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x8186db
movzx ebx, byte [esp + 0x2a]
test bl, 4
jne 0x8186e0
mov ebp, dword [esp + 0x1c4]
mov dword [ebp + ecx*4], eax
jmp 0x8186ef
movzx ebx, byte [esp + 0x2a]
mov ebp, dword [esp + 0x1c4]
mov dword [ebp + ecx*4], 0x8000
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x1bc]
mov dword [edi + ecx*4], esi
mov esi, ecx
shl ecx, 5
mov edi, dword [esp + 0x1ac]
mov dword [edi + ecx + 0xc], eax
test bl, 0x10
seta al
mov byte [edi + ecx + 0x1c], al
jmp 0x81893c
movzx eax, byte [esp + 0x2a]
test al, 4
seta cl
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x1b0]
mov byte [ebx + edx], cl
lea ecx, [0x867620]
mov dword [esp], ecx
mov ebp, dword [esp + 0x94]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x190]
mov dword [esp + 8], esi
call fcn.0072a910
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x81876c
xor edx, edx
jmp 0x818797
mov dword [esp + 0xa8], eax
mov dword [esp + 0x198], ecx
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x198]
mov edx, eax
mov eax, dword [esp + 0xa8]
test dl, dl
je 0x8187d7
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x230]
mov edx, dword [esp + 0x100]
sub ecx, edx
mov ebp, dword [esp + 0xfc]
sub ecx, ebp
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x1c8]
mov dword [edx + ecx*4], eax
jmp 0x818818
mov eax, dword [esp + 0x20c]
mov ecx, dword [eax + 0x38]
mov edx, dword [esp + 0x210]
mov dword [esp], edx
mov ebx, dword [esp + 0x94]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x190]
mov dword [esp + 8], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x1c8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0xd8]
test eax, eax
jle 0x818842
mov ebx, dword [esp + 0x1c4]
mov dword [ebx + ecx*4], eax
mov eax, dword [esp + 0x78]
movzx ecx, byte [esp + 0x2a]
mov edx, dword [esp + 0xa0]
jmp 0x8188ff
lea eax, [0x867620]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x190]
mov dword [esp + 8], edx
call fcn.0072a910
mov eax, dword [esp + 0xc]
test eax, eax
je 0x818894
movzx ecx, byte [esp + 0x2a]
test cl, 8
je 0x81887c
xor eax, eax
jmp 0x81889b
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
movzx ecx, byte [esp + 0x2a]
jmp 0x81889b
movzx ecx, byte [esp + 0x2a]
xor eax, eax
test al, al
je 0x8188ca
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x1c8]
mov ebx, dword [edx + eax*4]
mov ebp, dword [esp + 0x1c4]
mov dword [ebp + eax*4], ebx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0xa0]
mov ebx, ebp
jmp 0x8188ff
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x8188ea
test cl, 8
jne 0x8188ea
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x1c4]
mov dword [ebx + edx*4], eax
jmp 0x8188ff
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x1c4]
mov dword [ebx + edx*4], 0x8000
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x1bc]
mov dword [esi + edx*4], ebp
shl edx, 5
mov edi, dword [esp + 0x1ac]
mov dword [edi + edx + 0xc], eax
test cl, 0x20
seta al
mov byte [edi + edx + 0x1c], al
mov edx, dword [esp + 0x1c8]
mov ebx, ecx
mov ebp, dword [esp + 0x1c4]
mov esi, dword [esp + 0xa0]
mov eax, esi
shl esi, 5
mov dword [edi + esi + 8], eax
mov ecx, dword [edx + eax*4]
mov dword [edi + esi + 0x10], ecx
mov ecx, dword [ebp + eax*4]
mov dword [edi + esi + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edi + esi + 0x18], ecx
mov ebp, dword [esp + 0x94]
mov dword [edi + esi], ebp
mov ecx, dword [0xae4cf0]
test ecx, ecx
jne 0x81897d
movzx ecx, byte [esp + 0x220]
cmp cl, 1
jmp 0x8189bc
mov ecx, edi
call fcn.00785690
mov ebp, dword [esp + 0x190]
mov dword [edi], ebp
mov eax, dword [ecx + esi + 4]
mov dword [edi + 4], eax
movzx eax, byte [esp + 0x220]
cmp al, 1
mov eax, dword [esp + 0xa0]
movzx ecx, byte [esp + 0x220]
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x1ac]
mov ebp, dword [esp + 0x190]
mov dword [edi + esi + 4], ebp
jne 0x8189d5
mov ebp, ebx
and ebx, 0x15
cmp bl, 1
je 0x8189ea
jmp 0x8189d7
mov ebp, ebx
cmp cl, 2
jne 0x818a2c
mov ebx, ebp
and ebp, 0x2a
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x818a1a
mov ebp, ebx
mov ebx, dword [edi + esi + 0xc]
sub ebx, dword [edx + eax*4]
test ebx, ebx
jle 0x818a0a
mov edx, dword [esp + 0x1b8]
mov dword [edx + eax*4], ebx
mov edi, dword [esp + 0x5c]
add ebx, edi
cmp cl, 1
jmp 0x818a3a
cmp cl, 1
mov edx, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x5c]
jmp 0x818a3a
cmp cl, 1
mov edx, dword [esp + 0x1b8]
mov ebp, ebx
mov ebx, dword [esp + 0x5c]
jmp 0x818a3a
cmp cl, 1
mov edx, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x5c]
jne 0x818a4a
xchg ebp, eax
test al, 2
xchg ebp, eax
je 0x818a4a
mov ebp, 1
jmp 0x818a5f
cmp cl, 2
jne 0x818a5d
xchg ebp, eax
test al, 1
xchg ebp, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
jmp 0x818a5f
xor ebp, ebp
mov edi, dword [esp + 0x1b4]
xchg ebp, ebx
mov byte [edi + eax], bl
xchg ebp, ebx
mov ebp, dword [edx + eax*4]
test ebp, ebp
jle 0x818a8a
mov ebp, dword [esp + 0x1ac]
mov edi, dword [ebp + esi + 0xc]
mov edx, dword [esp + 0x80]
add edx, edi
jmp 0x818aa7
mov ebp, dword [esp + 0x1c8]
mov edi, dword [ebp + eax*4]
mov ebp, dword [esp + 0x80]
add ebp, edi
mov edx, ebp
mov ebp, dword [esp + 0x1ac]
movzx esi, byte [ebp + esi + 0x1c]
xchg esi, eax
test al, al
xchg esi, eax
je 0x818b01
mov esi, dword [esp + 0x94]
lea edi, [0x8ce228]
cmp esi, edi
jne 0x818adb
mov esi, dword [esp + 0x60]
add dword [esp + 0x168], esi
mov esi, dword [esp + 0xb0]
inc esi
jmp 0x81847f
mov esi, dword [esp + 0x60]
add dword [esp + 0x164], esi
mov esi, dword [esp + 0xb4]
inc esi
mov dword [esp + 0xb4], esi
mov esi, dword [esp + 0xb0]
jmp 0x81847f
mov edi, dword [esp + 0x60]
add dword [esp + 0x16c], edi
lea edi, [0x8ce228]
mov esi, dword [esp + 0xb0]
jmp 0x81847f
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call fcn.0072a780
mov eax, dword [esp + 0xc]
lea ecx, [0x8cdfc4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0078a6a0
movzx eax, byte [esp + 0x220]
cmp al, 1
jne 0x818b9b
mov edx, dword [esp + 0x230]
mov ebx, dword [esp + 0x100]
sub edx, ebx
mov ebp, dword [esp + 0x234]
mov ecx, edx
mov edx, dword [esp + 0xf8]
sub ebp, edx
mov esi, ebp
mov ebp, dword [esp + 0x228]
add ebx, ebp
mov ebp, dword [esp + 0x22c]
add edx, ebp
mov ebp, dword [esp + 0xfc]
sub ecx, ebp
mov ebp, dword [esp + 0xf4]
sub esi, ebp
jmp 0x818bed
mov ecx, dword [esp + 0x234]
mov ebp, dword [esp + 0xf8]
sub ecx, ebp
mov esi, dword [esp + 0x230]
mov edx, ebp
mov ebp, dword [esp + 0x100]
sub esi, ebp
mov ebx, ebp
mov ebp, dword [esp + 0x22c]
add ebp, edx
mov edx, ebp
mov ebp, dword [esp + 0x228]
add ebp, ebx
mov ebx, ebp
mov ebp, dword [esp + 0xf4]
sub ecx, ebp
mov ebp, dword [esp + 0xfc]
sub esi, ebp
mov ebp, ebx
mov ebx, edx
mov edx, ebp
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], esi
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x174], ebp
mov edi, ebx
mov ebx, dword [esp + 0x218]
lea edx, [ebx - 1]
mov ebx, dword [esp + 0x80]
sub ecx, ebx
mov ebx, dword [esp + 0xb0]
lea esi, [ebp + ebx]
mov dword [esp + 0x178], esi
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x17c], ebp
mov dword [esp + 0x180], ebx
mov esi, ebx
mov ebx, dword [esp + 0x218]
sub ebx, ebp
sub ebx, esi
mov dword [esp + 0x184], ebx
movsd xmm0, qword [esp + 0x104]
cvttsd2si ebx, xmm0
mov dword [esp + 0x38], ebx
imul edx, ebx
sub ecx, edx
cvtsi2sd xmm0, ecx
mov ebp, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x1b8]
mov byte [esp + 0x15c], al
xor eax, eax
mov dword [esp + 0x9c], eax
movzx eax, byte [esp + 0x15c]
jmp 0x818d12
lea eax, [ebx + 1]
mov edx, dword [esp + 0x218]
mov ebx, dword [esp + 0x1cc]
mov edi, dword [esp + 0x100]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x100]
movzx eax, byte [esp + 0x220]
mov ebx, dword [esp + 0x9c]
cmp ebx, 3
jge 0x818d41
mov eax, dword [esp + ebx*4 + 0x164]
mov dword [esp + 0x14c], eax
xor eax, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x14c]
jmp 0x819376
mov dword [esp + 0x54], edx
lea eax, [0x869b40]
mov dword [esp], eax
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x218]
mov dword [esp + 8], ecx
call fcn.0076c750
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x80]
sub eax, ecx
mov ecx, dword [esp + 0x54]
sub eax, ecx
mov ecx, dword [esp + 0x218]
mov edx, ecx
shl ecx, 1
mov ebx, edx
mov ebp, eax
cdq
idiv ebx
test ecx, ecx
je 0x81931d
mov dword [esp + 0xb8], eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1cc], edx
mov esi, eax
mov eax, ebp
cmp ecx, 0xffffffff
je 0x818db3
cdq
idiv ecx
jmp 0x818db5
neg eax
mov dword [esp + 0xac], eax
mov ecx, ebx
xor edx, edx
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x1cc]
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov ecx, ebx
jmp 0x818e0a
mov ebp, edi
mov edi, esi
lea esi, [esp + 0x1d0]
call fcn.00785d24
mov ecx, dword [esp + 0x98]
inc ecx
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xb8]
mov edx, ecx
mov edi, ebp
mov ecx, dword [esp + 0x218]
mov ebp, dword [esp + 0x7c]
cmp ecx, edx
jle 0x8192fd
mov dword [esp + 0x70], ebx
mov dword [esp + 0x188], edi
mov dword [esp + 0x98], edx
mov dword [esp + 0x7c], ebp
mov eax, dword [esp + 0x214]
lea ecx, [eax + edx*8]
mov ebx, dword [ecx]
mov dword [esp + 0x90], ebx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x18c], ecx
mov ebp, dword [esp + 0x1c0]
mov esi, dword [ebp + edx*4]
mov dword [esp + 0x68], esi
lea edi, [0x867620]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0072a910
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x818ebc
movzx edx, byte [esp + 0x220]
cmp dl, 1
je 0x818e87
xor ebx, ebx
jmp 0x818ec6
mov dword [esp + 0x194], ecx
mov dword [esp + 0xa4], eax
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x194]
movzx edx, byte [esp + 0x220]
mov ebx, eax
mov eax, dword [esp + 0xa4]
jmp 0x818ec6
movzx edx, byte [esp + 0x220]
xor ebx, ebx
test bl, bl
jne 0x818f14
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x1b4]
movzx ebx, byte [ecx + eax]
test bl, bl
je 0x818ee9
mov ebx, dword [esp + 0x1b0]
jmp 0x818efa
mov ebx, dword [esp + 0x1b0]
movzx ebp, byte [ebx + eax]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x818f07
mov ebp, dword [esp + 0x1bc]
mov esi, dword [esp + 0x64]
jmp 0x818f28
mov ebp, dword [esp + 0x1bc]
mov esi, dword [ebp + eax*4]
jmp 0x818f28
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
call eax
mov esi, dword [esp + 8]
mov dword [esp + 0x100], esi
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x18c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x818f63
movzx ecx, byte [esp + 0x220]
cmp cl, 1
mov eax, dword [esp + 0x224]
jmp 0x818f6e
movzx ecx, byte [esp + 0x220]
cmp cl, 1
jne 0x819067
cmp eax, 4
ja 0x818f8a
cmp eax, 1
je 0x818f94
cmp eax, 3
je 0x818fa6
cmp eax, 4
je 0x818f94
jmp 0x818fb6
cmp eax, 6
je 0x818fa6
cmp eax, 7
jne 0x818fa1
mov edx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x7c]
jmp 0x818fcb
cmp eax, 9
jne 0x818fb6
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + edx]
jmp 0x818fcb
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + edx]
mov edx, dword [esp + 0xb8]
test eax, eax
je 0x818fea
cmp eax, 3
ja 0x818fea
cmp cl, 1
mov ebx, dword [esp + 0x64]
mov esi, ebp
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x100]
jmp 0x819048
lea ebx, [eax - 7]
cmp ebx, 2
ja 0x81900e
mov ebx, dword [esp + 0x64]
mov esi, ebp
mov ebp, dword [esp + 0x50]
lea edi, [ebp + ebx]
mov ebp, dword [esp + 0x100]
sub edi, ebp
cmp cl, 1
jmp 0x819048
mov ebx, dword [esp + 0x64]
mov esi, ebp
mov ebp, dword [esp + 0x100]
sub ebx, ebp
mov dword [esp + 0xfc], ebx
shr ebx, 0x1f
mov ebp, dword [esp + 0xfc]
add ebx, ebp
sar ebx, 1
mov ebp, dword [esp + 0x50]
add ebx, ebp
cmp cl, 1
mov ebp, dword [esp + 0x100]
mov edi, ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x40], esi
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x154]
jmp 0x819151
test eax, eax
je 0x81907d
cmp eax, 3
ja 0x81907d
mov edx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x7c]
jmp 0x8190aa
lea edx, [eax - 7]
cmp edx, 2
ja 0x819095
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + edx]
jmp 0x8190aa
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + edx]
mov edx, dword [esp + 0xb8]
cmp eax, 4
ja 0x8190c8
cmp eax, 1
jne 0x8190b9
cmp cl, 1
jmp 0x8190d5
cmp eax, 3
je 0x8190ed
cmp eax, 4
jne 0x819109
cmp cl, 1
jmp 0x8190d5
cmp eax, 6
je 0x8190ed
cmp eax, 7
jne 0x8190e8
cmp cl, 1
mov ebx, dword [esp + 0x64]
mov esi, ebp
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x100]
jmp 0x819143
cmp eax, 9
jne 0x819109
mov ebx, dword [esp + 0x64]
mov esi, ebp
mov ebp, dword [esp + 0x50]
lea edi, [ebp + ebx]
mov ebp, dword [esp + 0x100]
sub edi, ebp
cmp cl, 1
jmp 0x819143
mov ebx, dword [esp + 0x64]
mov esi, ebp
mov ebp, dword [esp + 0x100]
sub ebx, ebp
mov dword [esp + 0xfc], ebx
shr ebx, 0x1f
mov ebp, dword [esp + 0xfc]
add ebx, ebp
sar ebx, 1
mov ebp, dword [esp + 0x50]
add ebx, ebp
cmp cl, 1
mov ebp, dword [esp + 0x100]
mov edi, ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x40], edi
mov edi, esi
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x68]
jne 0x81919d
cmp eax, 4
ja 0x819169
cmp eax, 1
je 0x819173
cmp eax, 3
je 0x819185
cmp eax, 4
je 0x819173
jmp 0x819190
cmp eax, 6
je 0x819185
cmp eax, 7
jne 0x819180
add esi, edx
mov eax, edx
mov edx, dword [esp + 0xac]
jmp 0x8191d1
cmp eax, 9
jne 0x819190
mov eax, edx
mov edx, dword [esp + 0xac]
jmp 0x8191d1
mov eax, edx
mov edx, dword [esp + 0xac]
add esi, edx
jmp 0x8191d1
test eax, eax
je 0x8191b3
cmp eax, 3
ja 0x8191b3
add esi, edx
mov eax, edx
mov edx, dword [esp + 0xac]
jmp 0x8191d1
add eax, 0xfffffff9
cmp eax, 2
ja 0x8191c6
mov eax, edx
mov edx, dword [esp + 0xac]
jmp 0x8191d1
mov eax, edx
mov edx, dword [esp + 0xac]
add esi, edx
mov dword [esp + 0x3c], edi
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x38]
add edx, ebx
lea edi, [esp + 0x1d0]
xor eax, eax
call fcn.0078584a
mov ecx, dword [esp + 0x6c]
inc ecx
mov eax, ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x1d0], ebx
mov ebx, dword [esp + 0x18c]
mov dword [esp + 0x1d4], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x1d8], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x1dc], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebp
add edx, esi
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x70]
cmp ebx, ecx
jb 0x81924f
mov edi, dword [esp + 0x188]
jmp 0x81928c
mov eax, dword [esp + 0x188]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x869b40]
mov dword [esp + 0x10], eax
call fcn.0076c810
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x6c], ecx
mov ebp, dword [0xae4cf0]
lea esi, [ecx + ecx*2]
lea esi, [edi + esi*8 - 0x18]
test ebp, ebp
je 0x818dd5
mov dword [esp + 0x1a8], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x1a4], esi
lea eax, [0x869b40]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [esp + 0x1d0]
mov dword [esp + 8], eax
call fcn.00731eb0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0x1a4]
mov edi, dword [esp + 0x1a8]
jmp 0x818dd5
mov dword [esp + 0x250], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x254], eax
mov dword [esp + 0x258], ebx
add esp, 0x208
ret
call fcn.007574c0
mov ebx, dword [esp + 0x38]
add esi, ebx
mov edi, dword [esp + 0x8c]
inc edi
mov ecx, dword [esp + 0x4c]
sub eax, ecx
mov ecx, dword [esp + 0x58]
sub ecx, esi
mov esi, dword [esp + 0x100]
sub esi, ebx
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x1ac]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x58], ecx
mov edx, esi
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x1b8]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x100], edx
lea edi, [esp + ebx*4 + 0x17c]
mov edx, dword [esp + 0x8c]
cmp dword [edi], edx
jle 0x818cdc
mov edi, dword [esp + ebx*4 + 0x170]
add edi, edx
mov ebx, dword [esp + 0x218]
cmp ebx, edi
jbe 0x8198b9
shl edi, 5
add edi, ebp
mov dword [esp + 0x1a0], edi
lea edi, [esp + 0x1e8]
mov esi, dword [esp + 0x1a0]
call fcn.00785d10
mov ecx, dword [esp + 0x1f0]
cmp ebx, ecx
jbe 0x8198b0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x48], eax
mov ebp, dword [esp + 0x1b8]
mov edi, dword [ebp + ecx*4]
mov ebx, dword [esp + 0x1cc]
mov ebx, dword [ebx + ecx*4]
mov dword [esp + 0x4c], ebx
mov esi, dword [esp + 0x1f8]
mov edx, dword [esp + 0x1fc]
mov dword [esp + 0x84], edx
test edi, edi
jle 0x819624
mov eax, dword [esp + 0x1f4]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x81960d
movsd xmm2, qword [0x8cd77c]
pxor xmm2, xmm0
mov ebx, dword [esp + 0x5c]
cvtsi2sd xmm3, ebx
divsd xmm2, xmm3
cvtsi2sd xmm3, edi
mulsd xmm2, xmm3
movsd qword [esp + 0x124], xmm2
mov edi, dword [esp + 0x128]
mov dword [esp + 0x34], edi
shr edi, 0x14
and edi, 0x7ff
cmp edi, 0x3ff
jae 0x819492
mov ebx, dword [esp + 0x34]
and ebx, 0x80000000
cmp edi, 0x3fe
jne 0x81948b
or ebx, 0x3ff00000
xor edi, edi
jmp 0x8195de
mov ebx, dword [esp + 0x124]
cmp edi, 0x433
jae 0x8195c6
lea edx, [edi - 0x3ff]
mov dword [esp + 0xc0], edx
mov ecx, edx
mov ebp, 0x80000
shr ebp, cl
mov dword [esp + 0xf0], ebp
add edi, 0xfffffbe1
mov dword [esp + 0xec], edi
mov ecx, edi
mov ebp, 0x80000
shr ebp, cl
mov dword [esp + 0xe8], ebp
mov ecx, edx
mov ebp, 0xfffff
shr ebp, cl
mov dword [esp + 0xe4], ebp
mov ecx, edi
mov ebp, 0xfffff
shr ebp, cl
mov dword [esp + 0xe0], ebp
mov ecx, edx
mov ebp, 0xffffffff
shr ebp, cl
mov dword [esp + 0xd0], ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
mov ebp, 0x80000
shl ebp, cl
mov edx, 0xfffff
shl edx, cl
cmp ecx, 0x20
sbb ecx, ecx
and ebp, ecx
and edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0xc0]
cmp ebp, 0x20
sbb edi, edi
mov ebp, dword [esp + 0xf0]
and ebp, edi
mov dword [esp + 0xf0], ebp
mov ebp, dword [esp + 0xd0]
and ebp, edi
or edx, ebp
mov dword [esp + 0xd0], edx
mov ebp, dword [esp + 0xe4]
and edi, ebp
xchg edi, ebx
not ebx
xchg edi, ebx
mov ebp, dword [esp + 0xec]
cmp ebp, 0x20
sbb ebp, ebp
mov edx, dword [esp + 0xe8]
and edx, ebp
or edx, ecx
mov ecx, edx
mov edx, dword [esp + 0xe0]
and edx, ebp
mov ebp, dword [esp + 0xd0]
or edx, ebp
not edx
add ebx, ecx
mov ebp, dword [esp + 0x34]
mov ecx, edx
mov edx, dword [esp + 0xf0]
adc ebp, edx
and edi, ebp
and ebx, ecx
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x1b8]
jmp 0x8195ca
mov edi, dword [esp + 0x34]
mov dword [esp + 0x144], eax
mov eax, edi
mov edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], ebx
mov ebx, dword [ebp + ecx*4]
movsd xmm2, qword [esp + 0x13c]
cvttsd2si edi, xmm2
cmp ebx, edi
jl 0x819603
mov ebx, edi
sub eax, ebx
ucomisd xmm1, xmm0
mov ebx, dword [esp + 0x4c]
xchg edi, ebx
seta bl
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x2b], al
xchg edi, eax
mov edi, esi
mov esi, eax
mov eax, dword [esp + 0x48]
jmp 0x819630
mov edi, esi
xor esi, esi
xchg esi, eax
mov byte [esp + 0x2b], al
xchg esi, eax
mov esi, edi
movzx ebx, byte [esp + 0x2b]
test bl, bl
jne 0x819875
cmp edx, edi
jle 0x819875
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x80]
sub ebx, ebp
mov ebp, dword [esp + 0x100]
sub ebx, ebp
cvtsi2sd xmm1, ebx
mov ebx, dword [esp + 0x4c]
cvtsi2sd xmm2, ebx
mulsd xmm1, xmm2
cvtsi2sd xmm2, eax
divsd xmm1, xmm2
movsd qword [esp + 0x11c], xmm1
mov ebp, dword [esp + 0x120]
mov dword [esp + 0x30], ebp
shr ebp, 0x14
and ebp, 0x7ff
cmp ebp, 0x3ff
jae 0x8196b7
mov ebx, dword [esp + 0x30]
and ebx, 0x80000000
cmp ebp, 0x3fe
jne 0x8196b0
or ebx, 0x3ff00000
xor ebp, ebp
jmp 0x819841
mov eax, dword [esp + 0x11c]
cmp ebp, 0x433
jae 0x819835
mov dword [esp + 0x2c], eax
lea ebx, [ebp - 0x3ff]
mov ecx, ebx
mov edx, 0x80000
shr edx, cl
mov dword [esp + 0xf0], edx
add ebp, 0xfffffbe1
mov ecx, ebp
mov edx, 0x80000
shr edx, cl
mov dword [esp + 0xec], edx
neg ecx
mov dword [esp + 0xe8], ecx
mov edx, 0x80000
shl edx, cl
mov dword [esp + 0xe4], edx
mov ecx, ebp
mov edx, 0xfffff
shr edx, cl
mov dword [esp + 0xe0], edx
mov ecx, dword [esp + 0xe8]
mov edx, 0xfffff
shl edx, cl
mov dword [esp + 0xd0], edx
mov ecx, ebx
mov edx, 0xffffffff
shr edx, cl
mov dword [esp + 0xcc], edx
mov edx, 0xfffff
shr edx, cl
mov dword [esp + 0xc8], edx
cmp ebp, 0x20
sbb ebp, ebp
mov edx, dword [esp + 0xec]
and edx, ebp
mov dword [esp + 0xec], edx
mov ebx, dword [esp + 0xe0]
and ebx, ebp
mov ebp, ebx
mov ebx, dword [esp + 0xe8]
cmp ebx, 0x20
sbb ebx, ebx
mov dword [esp + 0xe8], ebx
mov edx, dword [esp + 0xe4]
and edx, ebx
mov ebx, dword [esp + 0xec]
or ebx, edx
mov dword [esp + 0xec], ebx
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xe8]
and edx, ebx
mov dword [esp + 0xe8], edx
mov ebx, dword [esp + 0xec]
add eax, ebx
cmp ecx, 0x20
sbb ecx, ecx
mov edx, dword [esp + 0xf0]
and edx, ecx
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x2c]
add edx, ebx
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xf0]
adc edx, ebx
mov dword [esp + 0xc4], edx
mov ebx, dword [esp + 0xcc]
and ebx, ecx
mov edx, dword [esp + 0xc8]
and edx, ecx
not edx
mov ecx, edx
mov edx, dword [esp + 0xe8]
or edx, ebx
or ebp, edx
xchg ebp, ebx
not ebx
xchg ebp, ebx
and eax, ebp
mov ebp, dword [esp + 0xc4]
and ebp, ecx
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x4c]
jmp 0x819839
mov ebp, dword [esp + 0x30]
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x134], ebp
mov dword [esp + 0x138], ebx
movsd xmm1, qword [esp + 0x134]
cvttsd2si ebx, xmm1
add ebx, esi
cmp edi, ebx
jle 0x819866
mov edx, edi
jmp 0x81986c
cmp edx, ebx
jl 0x81986c
mov edx, ebx
mov ebp, dword [esp + 0x1b8]
mov esi, edx
mov edx, dword [esp + 0x1c0]
mov dword [edx + ecx*4], esi
mov ebx, dword [ebp + ecx*4]
test ebx, ebx
jle 0x81989e
mov ebx, dword [esp + 0x1f4]
mov ecx, edx
mov edx, dword [esp + 0x80]
sub edx, ebx
jmp 0x819322
mov ebx, dword [esp + 0x80]
sub ebx, edi
mov ecx, edx
mov edx, ebx
jmp 0x819322
mov eax, ecx
mov ecx, ebx
call fcn.00785700
mov eax, edi
mov ecx, ebx
call fcn.00785700
nop
call fcn.00784280
jmp fcn.00818080