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

Disassembly:
mov ecx, dword [0xae4be8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x70]
cmp eax, dword [ecx + 8]
jbe 0x817f13
sub esp, 0xf0
mov eax, 0
mov dword [esp + 0xec], eax
mov byte [esp + 0x53], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov eax, dword [esp + 0xf4]
test byte [eax], al
lea ecx, [eax + 0x68]
mov dword [esp + 0xc8], ecx
mov dword [esp], ecx
call fcn.00796b90
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
lea eax, [0x817f20]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xcc]
mov dword [esp + 0xec], eax
mov byte [esp + 0x53], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0xf4]
mov ebx, dword [edx + 0x70]
mov ebp, dword [esp + 0xb0]
lea esi, [0x8616c0]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebp
call fcn.007307f0
movzx eax, byte [esp + 0x14]
test al, al
jne 0x817c8d
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x48]
mov ebx, dword [eax + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.008246b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xf4]
movzx ebp, byte [ebx + 0x74]
mov esi, dword [ebx + 0x64]
mov edi, dword [ebx + 0x50]
mov dword [esp + 0x94], edi
mov edi, dword [ebx + 0x54]
mov dword [esp + 0x90], edi
mov edi, dword [ebx + 0x58]
mov dword [esp + 0x8c], edi
mov edi, dword [ebx + 0x5c]
mov dword [esp + 0x88], edi
mov edi, dword [ebx + 0x60]
mov dword [esp + 0x84], edi
mov edi, dword [ebx + 0x78]
mov dword [esp + 0xc4], edi
lea edi, [0x8ce3a0]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
xchg ebp, eax
mov byte [esp + 0x14], al
xchg ebp, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x40], edx
call fcn.00818080
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x58]
mov ebp, dword [eax + 0x5c]
mov esi, dword [eax]
mov esi, dword [esi + 4]
cvtsi2sd xmm0, esi
movsd xmm1, qword [0x8cd82c]
divsd xmm0, xmm1
mov esi, dword [esp + 0x44]
mov dword [esp + 0xb8], esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x60], edi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
movsd qword [esp + 0x10], xmm0
call fcn.0082ff40
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x60]
mov edx, dword [eax]
mov edx, dword [edx + 4]
cvtsi2sd xmm0, edx
movsd xmm1, qword [0x8cd82c]
divsd xmm0, xmm1
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
movsd qword [esp + 0xa0], xmm1
mov esi, dword [esp + 0xa4]
mov edi, esi
shr esi, 0x14
and esi, 0x7ff
cmp esi, 0x3ff
jae 0x817b4e
and edi, 0x80000000
cmp esi, 0x3fe
jne 0x817b47
or edi, 0x3ff00000
xor esi, esi
jmp 0x817c5c
mov eax, dword [esp + 0xa0]
cmp esi, 0x433
jae 0x817c53
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], ebp
lea ebx, [esi - 0x3ff]
mov dword [esp + 0x68], ebx
mov ecx, ebx
mov ebp, 0x80000
shr ebp, cl
mov dword [esp + 0x80], ebp
mov ebp, 0xfffff
shr ebp, cl
mov dword [esp + 0x7c], ebp
mov ebp, 0xffffffff
shr ebp, cl
mov dword [esp + 0x78], ebp
add esi, 0xfffffbe1
mov ecx, esi
mov ebp, 0x80000
shr ebp, cl
mov dword [esp + 0x74], ebp
mov ebx, 0xfffff
shr ebx, cl
mov dword [esp + 0x70], ebx
neg ecx
mov ebx, 0x80000
shl ebx, cl
mov ebp, 0xfffff
shl ebp, cl
cmp ecx, 0x20
sbb ecx, ecx
and ebx, ecx
and ebp, ecx
cmp esi, 0x20
sbb ecx, ecx
mov esi, ebp
mov ebp, dword [esp + 0x74]
and ebp, ecx
or ebp, ebx
mov dword [esp + 0x74], ebp
mov ebx, dword [esp + 0x70]
and ebx, ecx
mov dword [esp + 0x70], ebx
mov ecx, eax
add eax, ebp
mov ebx, dword [esp + 0x68]
cmp ebx, 0x20
sbb ebx, ebx
mov dword [esp + 0x6c], ebx
mov ebp, dword [esp + 0x80]
and ebp, ebx
mov ebx, dword [esp + 0x74]
add ecx, ebx
adc edi, ebp
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
and ebx, ebp
not ebx
mov ecx, ebx
mov ebx, dword [esp + 0x78]
and ebx, ebp
or ebx, esi
mov ebp, dword [esp + 0x70]
or ebx, ebp
not ebx
and eax, ebx
and edi, ecx
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
mov esi, eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edi
add ecx, edx
add ebx, ebp
mov ebp, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 0x98], xmm0
xor edx, edx
xor esi, esi
jmp 0x817ce9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
mov byte [esp + 0x53], 0
mov edx, dword [esp + 0xec]
mov eax, dword [edx]
call eax
add esp, 0xf0
ret
mov ebx, dword [esp + 0xc0]
add ebx, 0x18
mov esi, dword [esp + 0x94]
inc esi
movsd xmm0, qword [esp + 0x98]
mov ecx, eax
mov eax, dword [esp + 0xf4]
mov edi, edx
mov edx, esi
mov esi, ebp
mov ebp, ebx
mov ebx, edi
mov edi, ecx
mov ecx, dword [esp + 0x60]
cmp edx, ecx
jge 0x817e49
mov dword [esp + 0x94], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0xc0], ebp
lea edi, [esp + 0xd4]
mov esi, ebp
call fcn.00785d24
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00824260
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x88], ebx
lea ebp, [0x867620]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0072a910
mov eax, dword [esp + 0xc]
test eax, eax
je 0x817da2
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xbc], ecx
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
movzx eax, byte [esp + 4]
test al, al
jne 0x817db2
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xe8], eax
jmp 0x817ddb
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xf4]
cmp byte [ecx + 0x74], 1
jne 0x817e1b
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
jg 0x817e07
mov ebp, ebx
mov edx, eax
mov eax, dword [esp + 0x90]
add eax, edx
mov edx, dword [esp + 0x58]
jmp 0x817cbb
mov ebx, dword [esp + 0x5c]
cmp ebx, eax
jg 0x817e25
mov ebx, eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x58]
add ecx, eax
mov edx, ecx
mov eax, dword [esp + 0x90]
mov ebp, ebx
mov ecx, dword [esp + 0xf4]
jmp 0x817cbb
cvttsd2si ebp, xmm0
cmp byte [eax + 0x74], 1
jne 0x817e5e
dec ecx
imul ebp, ecx
lea ecx, [edi + ebp]
add ebx, esi
jmp 0x817e67
dec ecx
imul ebp, ecx
add ebx, ebp
lea ecx, [esi + edi]
test ecx, ecx
jle 0x817ee0
test ebx, ebx
jle 0x817ee0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xb4], ecx
mov eax, dword [eax + 0x70]
mov edx, dword [esp + 0xb0]
lea ebx, [0x8616c0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
call fcn.00730960
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
mov edx, dword [esp + 0x58]
mov dword [eax + 4], edx
jmp 0x817ee2
mov edx, ebx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
mov byte [esp + 0x53], 0
mov edx, dword [esp + 0xec]
mov eax, dword [edx]
call eax
add esp, 0xf0
ret
call fcn.00784280
jmp fcn.00817870