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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x77ee3b
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
push ebx
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x100]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [0x88b13c]
cmp byte [eax + 8], 0
jne 0x70db6b
mov ecx, dword [ebx + 0x1b8]
fld dword [ecx + 0x10c]
fmul dword [ebx + 0x4c]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x84]
call fcn.004348b0
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.00430c20
mov eax, edi
call fcn.00430c60
fld dword [ebx + 0x10]
fld qword [0x82dd50]
fsub st(1), st(0)
fxch st(1)
call fcn.0076f850
fsubr dword [ebx + 0x14]
mov dword [esp + 0x54], eax
call fcn.0076f850
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x1b8]
mov ecx, dword [eax + 0xb8]
push edx
call fcn.0071c0c0
mov esi, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], 0
test esi, esi
je 0x70ccf0
lea ecx, [esi + 0x20]
call fcn.00436230
fcomp qword [0x7a8008]
fnstsw ax
test ah, 0x44
jnp 0x70cb91
call fcn.006fcef0
fstp dword [esp + 0x44]
mov ecx, dword [0x88b12c]
fild dword [ecx + 0x9e0]
fmul dword [esp + 0x44]
fdiv qword [0x82dcf8]
fstp dword [esp + 0x10]
call fcn.006fcf20
fstp dword [esp + 0x44]
mov edx, dword [0x88b12c]
fild dword [edx + 0x9e0]
lea ecx, [esi + 0x20]
fmul dword [esp + 0x44]
fdiv qword [0x82dcf8]
fstp dword [esp + 0x44]
call fcn.00436230
fld dword [esp + 0x10]
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x50]
lea ecx, [esi + 0x20]
fstp dword [esp + 4]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fstp dword [esp]
call fcn.00436230
fstp dword [esp + 0x50]
push ecx
fld dword [esp + 0x54]
fstp dword [esp]
call fcn.006f1320
add esp, 0x10
fld dword [esi + 0x170]
fmul qword [0x82de80]
fld qword [0x82de78]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x70cbb0
fstp st(1)
jmp 0x70cbb2
fstp st(0)
call fcn.0076f850
fldz
fcomp dword [esi + 0x170]
mov dword [esp + 0x58], eax
fnstsw ax
test ah, 0x44
jp 0x70ccf0
mov ecx, 1
mov eax, edi
call fcn.00430ca0
call fcn.00430cc0
mov ecx, dword [ebx + 0x1d0]
sub ecx, dword [ebx + 0x1cc]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jge 0x70cc10
fadd dword [0x82dc74]
fld qword [0x82ded0]
fmul st(1), st(0)
fld qword [0x82dd50]
fadd st(2), st(0)
fld qword [0x82dc80]
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x70cc6a
mov ecx, dword [ebx + 0x1d0]
fstp st(2)
sub ecx, dword [ebx + 0x1cc]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
test ecx, ecx
jge 0x70cc64
fadd dword [0x82dc74]
fmulp st(1)
faddp st(1)
jmp 0x70cc6e
fstp st(0)
fstp st(0)
fmul dword [ebx + 0x4c]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x84]
call fcn.004348b0
mov ecx, edi
call fcn.00430c20
mov edx, dword [ebx + 0x1d8]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x50]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, 0x80
lea esi, [esp + 0x90]
mov dword [esp + 0x28], esp
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
call fcn.00404400
mov ecx, dword [0x882b5c]
add esp, 0x10
mov ebx, eax
mov esi, edi
push ecx
mov eax, esi
call fcn.007052c0
xor ecx, ecx
mov eax, esi
call fcn.00430ca0
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x64]
mov ecx, dword [ebx + 0x1d0]
sub ecx, dword [ebx + 0x1cc]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x6c], 0
test eax, eax
jle 0x70d81a
mov dword [esp + 0x70], 0
jmp 0x70cd30
mov ecx, dword [ebx + 0x1d0]
sub ecx, dword [ebx + 0x1cc]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x6c], ecx
jb 0x70cd5a
call fcn.006441b7
mov ebx, dword [ebx + 0x1cc]
add ebx, dword [esp + 0x70]
cmp byte [ebx + 0x10], 0
je 0x70cd7e
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x1d8]
shl eax, 4
add eax, 0x88b820
jmp 0x70cd92
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x1d8]
shl eax, 4
add eax, 0x88b8a0
mov edi, edx
mov ecx, dword [eax]
fld dword [edi + 0x4c]
mov edx, dword [eax + 4]
fmul qword [0x82dc80]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x80], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
call fcn.0076f850
mov ecx, dword [ebp + 8]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x7c]
call fcn.00430c20
fldz
mov esi, dword [esp + 0x58]
fstp dword [esp + 0x78]
fld dword [ebx]
mov edi, dword [edi + 0x1d8]
push ecx
fstp dword [esp]
call fcn.006fcdd0
fstp dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
lea esi, [edi + 0x1e0]
add esp, 4
mov ecx, esi
call fcn.00436230
fstp qword [esp + 0xec]
mov eax, dword [0x88b12c]
fild dword [eax + 0x9e0]
mov ecx, esi
fmul qword [0x82e130]
fdiv qword [0x82dcf8]
fstp qword [esp + 0x2c]
call fcn.00436230
fstp qword [esp + 0x14]
lea ecx, [edi + 0x250]
call fcn.00436230
fld qword [0x7a8008]
fsub qword [esp + 0x14]
push ecx
fmul dword [esp + 0x3c]
fld qword [esp + 0x30]
fmul qword [esp + 0xf0]
faddp st(1)
fmulp st(1)
fstp dword [esp + 0x3c]
fld dword [ebx]
fstp dword [esp]
call fcn.004099a0
fmul dword [esp + 0x3c]
fstp dword [esp + 0x54]
fld dword [ebx]
fstp dword [esp]
call fcn.004099c0
fmul dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
mov ecx, edi
mov edi, dword [ecx + 0x1d8]
fstp dword [esp + 0x60]
fld dword [esp + 0x54]
fstp dword [esp + 0xec]
fld dword [esp + 0x60]
fstp dword [esp + 0xf0]
fld dword [ebx + 8]
fstp dword [esp]
call fcn.006fcdd0
mov edi, dword [esp + 0x20]
fstp dword [esp + 0x40]
lea esi, [edi + 0x1e0]
add esp, 4
mov ecx, esi
call fcn.00436230
fstp qword [esp + 0x44]
mov edx, dword [0x88b12c]
fild dword [edx + 0x9e0]
fmul qword [0x82e130]
fdiv qword [0x82dcf8]
fstp qword [esp + 0x2c]
mov ecx, esi
call fcn.00436230
fstp qword [esp + 0x14]
lea ecx, [edi + 0x250]
call fcn.00436230
fld qword [0x7a8008]
fsub qword [esp + 0x14]
push ecx
fmul dword [esp + 0x40]
fld qword [esp + 0x30]
fmul qword [esp + 0x48]
faddp st(1)
fmulp st(1)
fstp dword [esp + 0x40]
fld dword [ebx + 8]
fstp dword [esp]
call fcn.004099a0
fmul dword [esp + 0x40]
fstp dword [esp + 0x78]
fld dword [ebx + 8]
fstp dword [esp]
call fcn.004099c0
fmul dword [esp + 0x40]
add esp, 4
cmp byte [ebx + 0x11], 0
fstp dword [esp + 0x8c]
je 0x70d056
mov eax, dword [ebx + 0x14]
mov ecx, dword [edi + 0x1b8]
mov ecx, dword [ecx + 0xb8]
push eax
call fcn.0071c0c0
mov dword [esp + 0x44], eax
test eax, eax
je 0x70d056
fld dword [ebx + 8]
mov esi, dword [esp + 0x58]
mov edi, dword [edi + 0x1d8]
push ecx
fstp dword [esp]
call fcn.006fcdd0
mov esi, dword [esp + 0x20]
fstp dword [esp + 0x40]
add esi, 0x1e0
add esp, 4
mov ecx, esi
call fcn.00436230
fstp qword [esp + 0x2c]
mov edx, dword [0x88b12c]
fild dword [edx + 0x9e0]
mov ecx, esi
fmul qword [0x82e130]
fdiv qword [0x82dcf8]
fstp qword [esp + 0x14]
call fcn.00436230
fsubr qword [0x7a8008]
push ecx
fmul dword [esp + 0x40]
fld qword [esp + 0x18]
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x40]
fld dword [ebx + 8]
fstp dword [esp]
call fcn.004099a0
mov eax, dword [0x88b12c]
fstp dword [esp + 0x14]
fild dword [eax + 0x9e0]
mov esi, dword [esp + 0x48]
fdiv qword [0x82dcf8]
fstp dword [esp + 0x28]
fld dword [esi + 0x10]
fisub dword [esp + 0x58]
fdiv dword [esp + 0x28]
fld dword [esp + 0x14]
fmul dword [esp + 0x40]
faddp st(1)
fstp dword [esp + 0x78]
fld dword [ebx + 8]
fstp dword [esp]
call fcn.004099c0
fstp dword [esp + 0x48]
add esp, 4
fld dword [esi + 0x14]
fisub dword [esp + 0x4c]
fdiv dword [esp + 0x24]
fld dword [esp + 0x44]
fmul dword [esp + 0x3c]
faddp st(1)
fstp dword [esp + 0x8c]
mov edx, dword [ebx + 0x58]
xor ecx, ecx
inc edx
mov dword [esp + 0x24], ecx
test edx, edx
jle 0x70d7d6
lea eax, [ebx + 0x18]
mov dword [esp + 0x60], eax
jmp 0x70d075
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x58]
cmp ecx, eax
lea edx, [ecx + 1]
mov dword [esp + 0x44], edx
fild dword [esp + 0x44]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
fidiv dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fsubr qword [0x7a8008]
fst qword [esp + 0xf4]
fld dword [ebx + 8]
fmulp st(2)
fmul dword [ebx]
faddp st(1)
fstp dword [esp + 0x20]
fldz
fstp dword [esp + 0x38]
jge 0x70d0c6
mov eax, dword [esp + 0x60]
fld dword [eax]
fstp dword [esp + 0x38]
fld dword [esp + 0x20]
mov esi, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
mov edi, dword [ecx + 0x1d8]
call fcn.006fcdd0
fstp dword [esp + 0x38]
mov edi, dword [esp + 0x20]
lea esi, [edi + 0x1e0]
add esp, 4
mov ecx, esi
call fcn.00436230
fstp qword [esp + 0x3c]
mov edx, dword [0x88b12c]
fild dword [edx + 0x9e0]
mov ecx, esi
fmul qword [0x82e130]
fdiv qword [0x82dcf8]
fstp qword [esp + 0x2c]
call fcn.00436230
fstp qword [esp + 0x14]
lea ecx, [edi + 0x250]
call fcn.00436230
fld qword [0x7a8008]
fsub qword [esp + 0x14]
push ecx
fmul dword [esp + 0x38]
fld qword [esp + 0x30]
fmul qword [esp + 0x40]
faddp st(1)
fadd dword [esp + 0x3c]
fmulp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.004099a0
fmul dword [esp + 0x38]
fstp dword [esp + 0x40]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.004099c0
fmul dword [esp + 0x38]
mov al, byte [ebx + 0x10]
add esp, 4
mov byte [esp + 0x2b], al
fstp dword [esp + 0x34]
test al, al
jne 0x70d191
cmp byte [ebx + 0x11], al
je 0x70d24f
fld dword [esp + 0x74]
sub esp, 8
fsub dword [esp + 0x58]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 4]
fld dword [esp + 0x94]
fsub dword [esp + 0x64]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.00409980
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
fld dword [esp + 0x18]
add esp, 8
cmp eax, dword [ebx + 0x58]
fld st(0)
fmul dword [esp + 0x74]
fld dword [esp + 0xe8]
fld qword [esp + 0xf4]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x8c]
fmulp st(2)
fmul dword [esp + 0xec]
faddp st(1)
fstp dword [esp + 0x34]
jge 0x70d24f
fld dword [esp + 0x20]
push ecx
fstp dword [esp]
call fcn.004099c0
mov esi, dword [esp + 0x64]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [esi]
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.004099a0
fstp dword [esp + 0x14]
add esp, 4
fld dword [esp + 0x10]
fmul dword [esi]
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
cmp byte [esp + 0x2b], 0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x88]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], esi
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], esi
jne 0x70d315
cmp byte [ebx + 0x11], 0
jne 0x70d315
fld dword [esp + 0x78]
fld qword [0x82df38]
fmul st(1), st(0)
fld qword [0x7a8008]
fld st(0)
fsubrp st(3)
fld qword [0x82dc80]
fmul st(3), st(0)
fld qword [0x82dc10]
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x70d2e0
fstp st(4)
fld st(3)
jmp 0x70d2e2
fxch st(4)
call fcn.0076f850
fld dword [esp + 0x38]
fmulp st(3)
mov dword [esp + 0xbc], eax
fxch st(1)
fsubrp st(2)
fmulp st(1)
fcom st(1)
fnstsw ax
test ah, 5
jp 0x70d307
fstp st(0)
jmp 0x70d309
fstp st(1)
call fcn.0076f850
mov dword [esp + 0xd8], eax
fild dword [esp + 0xbc]
fld dword [esp + 0x68]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fimul dword [esp + 0xd8]
mov dword [esp + 0xbc], eax
call fcn.0076f850
mov dword [esp + 0xd8], eax
mov eax, dword [0x88b12c]
fild dword [eax + 0x9e0]
add eax, 0x9e0
cmp byte [ebx + 0x11], 0
je 0x70d361
fmul qword [0x82dc00]
jmp 0x70d376
cmp byte [esp + 0x2b], 0
je 0x70d370
fmul qword [0x82dc48]
jmp 0x70d376
fmul qword [0x82ded0]
mov edi, dword [eax]
fld qword [0x82dcf8]
mov esi, dword [esp + 0x4c]
fdiv st(1), st(0)
add esi, 0x40
mov ecx, edi
mov eax, 0x1b4e81b5
mov dword [esp + 0x24], edi
sub esp, 0x10
imul ecx, esi
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x64]
add ecx, 0x40
fild dword [esp + 0x20]
mov dword [esp + 0x24], ecx
imul ecx, edi
fstp dword [esp + 0x30]
fild dword [esp + 0x34]
fstp dword [esp + 0x34]
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [esp + 0xdc]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x20], eax
mov eax, esp
mov dword [eax], ecx
fild dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xe8]
fstp dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xc0]
fxch st(1)
fstp dword [esp + 0x20]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc4]
fld dword [esp + 0x20]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xd8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xdc]
mov dword [eax + 8], ecx
sub esp, 0x14
mov dword [eax + 0xc], edx
fstp dword [esp + 0x10]
fld dword [esp + 0x58]
fld st(0)
fmul dword [esp + 0x68]
fdiv st(2)
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fld dword [esp + 0x54]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp dword [esp + 0xc]
fld st(1)
fmul dword [esp + 0x70]
fdiv st(3)
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fld dword [esp + 0x60]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 8]
mov eax, dword [0x880788]
fld st(2)
fmul dword [esp + 0x90]
fdiv st(4)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x84]
fmulp st(2)
fxch st(1)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x60]
fadd dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp]
push eax
mov eax, dword [ebp + 8]
call fcn.00707b40
cmp byte [ebx + 0x10], 0
mov eax, dword [0x88ba50]
mov ecx, dword [0x88ba54]
mov edx, dword [0x88ba58]
mov edi, dword [0x88ba5c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edi
jne 0x70d5a9
cmp byte [ebx + 0x11], 0
jne 0x70d5d9
fld dword [esp + 0x78]
fld qword [0x82e000]
fmul st(1), st(0)
fld qword [0x82e740]
fld st(0)
fsubrp st(3)
fld qword [0x82dc80]
fmul st(3), st(0)
fld qword [0x82dc10]
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x70d57e
fstp st(4)
fld st(3)
jmp 0x70d580
fxch st(4)
call fcn.0076f850
fld dword [esp + 0x38]
fmulp st(3)
mov dword [esp + 0xac], eax
fxch st(1)
fsubrp st(2)
fmulp st(1)
fcom st(1)
fnstsw ax
test ah, 5
jp 0x70d5a5
fstp st(0)
jmp 0x70d5cd
fstp st(1)
jmp 0x70d5cd
fild dword [esp + 0xac]
fld qword [0x87d2f0]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fimul dword [esp + 0x9c]
mov dword [esp + 0xac], eax
call fcn.0076f850
mov dword [esp + 0x9c], eax
fild dword [esp + 0xac]
fld dword [esp + 0x68]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fimul dword [esp + 0x9c]
mov dword [esp + 0xac], eax
call fcn.0076f850
mov dword [esp + 0x9c], eax
mov eax, dword [0x88b12c]
fild dword [eax + 0x9e0]
add eax, 0x9e0
cmp byte [ebx + 0x11], 0
je 0x70d625
fmul qword [0x82dc00]
jmp 0x70d639
cmp byte [ebx + 0x10], 0
je 0x70d633
fmul qword [0x82dc00]
jmp 0x70d639
fmul qword [0x82ded0]
mov edi, dword [eax]
fld qword [0x82dcf8]
fdiv st(1), st(0)
mov ecx, esi
mov eax, 0x1b4e81b5
mov dword [esp + 0x10], edi
sub esp, 0x10
imul ecx, edi
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x24]
imul ecx, edi
fild dword [esp + 0x3c]
fstp dword [esp + 0x34]
fild dword [esp + 0x20]
fstp dword [esp + 0x3c]
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [esp + 0xa0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
mov eax, esp
mov dword [eax], ecx
fild dword [esp + 0x24]
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xac]
fstp dword [esp + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xb0]
fxch st(1)
fstp dword [esp + 0x24]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xb4]
fld dword [esp + 0x24]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xc8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xcc]
mov dword [eax + 8], ecx
sub esp, 0x14
mov dword [eax + 0xc], edx
fstp dword [esp + 0x10]
fld dword [esp + 0x68]
fld dword [esp + 0x60]
fld st(0)
fmulp st(2)
fxch st(1)
fdiv st(2)
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fld dword [esp + 0x58]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [esp + 0xc]
fld dword [esp + 0x70]
fmul st(2)
fdiv st(3)
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fld dword [esp + 0x44]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [esp + 8]
fld st(2)
fmul dword [esp + 0x90]
mov eax, dword [0x881038]
fdiv st(4)
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [esp + 4]
fld dword [esp + 0x84]
fmulp st(2)
fxch st(1)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x48]
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [esp]
push eax
mov eax, dword [ebp + 8]
call fcn.00707b40
fld dword [esp + 0x3c]
mov ecx, dword [ebx + 0x58]
fstp dword [esp + 0x50]
fld dword [esp + 0x34]
mov eax, dword [esp + 0x44]
add dword [esp + 0x60], 4
fstp dword [esp + 0x5c]
fld dword [esp + 0x38]
inc ecx
cmp eax, ecx
fstp dword [esp + 0x78]
mov dword [esp + 0x24], eax
jl 0x70d071
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1d0]
sub ecx, dword [eax + 0x1cc]
mov esi, dword [esp + 0x6c]
add dword [esp + 0x70], 0x5c
mov ebx, dword [esp + 0x1c]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
cmp esi, eax
mov dword [esp + 0x6c], esi
jl 0x70cd30
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x64]
cmp dword [ebx + 0x1dc], 0
jle 0x70db28
xor ecx, ecx
mov eax, edi
call fcn.00430ca0
mov ecx, dword [0x880770]
call fcn.00430c10
push 4
push 0x80af80
lea ecx, [esp + 0xd4]
mov dword [esp + 0xec], 0xf
mov dword [esp + 0xe8], 0
mov byte [esp + 0xd8], 0
call fcn.004016e0
mov dword [esp + 0x108], 0
mov ecx, dword [ebx + 0x1b8]
mov edx, dword [ecx + 0xb8]
fild dword [edx + 0x38]
push ecx
fmul qword [0x82dde8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.004099a0
fstp dword [esp + 0x18]
add esp, 4
fld dword [esp + 0x14]
fadd qword [0x7a8008]
fmul qword [0x82e738]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x84]
call fcn.004348b0
mov ebx, dword [edi + 0x68]
push eax
lea ecx, [esp + 0xd0]
call fcn.0058a060
mov dword [esp + 0x108], 0xffffffff
cmp dword [esp + 0xe4], 0x10
jb 0x70d907
mov eax, dword [esp + 0xd0]
push eax
call fcn.006441c7
add esp, 4
mov edi, dword [ebp + 8]
mov cl, 1
mov eax, edi
call fcn.00430cc0
push 0xff
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x84]
call fcn.004348b0
mov ecx, edi
call fcn.00430c20
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x1d8]
add eax, 0x329
cmp eax, 0xffffffff
jne 0x70d94f
xor ebx, ebx
jmp 0x70d958
mov ecx, dword [eax*4 + 0x879598]
mov ebx, dword [ecx]
mov edx, dword [0x88b12c]
mov ecx, dword [edx + 0x9e0]
mov edx, dword [esi + 0x1dc]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax - 1]
push edx
mov edx, ecx
imul ecx, dword [esp + 0x58]
imul edx, dword [esp + 0x50]
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov eax, edi
call fcn.00705350
xor ebx, ebx
cmp dword [esp + 0x64], ebx
je 0x70da9f
mov edx, dword [esi + 0x1b8]
mov ecx, dword [edx + 0xb8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2ec]
call edx
cmp eax, 0x1f4
jg 0x70da9f
mov eax, dword [esi + 0x1b8]
mov ecx, dword [eax + 0xb8]
mov ecx, dword [ecx + 0xe38]
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
and eax, 0x80000001
jns 0x70da10
dec eax
or eax, 0xfffffffe
inc eax
jne 0x70da9f
push 0xff
mov edx, 0xc8
push 0xc8
lea ecx, [edx + 0x37]
lea eax, [esp + 0x84]
call fcn.004348b0
mov ecx, edi
call fcn.00430c20
mov esi, dword [esi + 0x1dc]
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax - 1]
push edx
mov edx, ecx
imul ecx, dword [esp + 0x58]
imul edx, dword [esp + 0x50]
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov ebx, dword [0x882f3c]
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov eax, edi
call fcn.00705350
xor ebx, ebx
push 4
mov esi, 0xf
push 0x80af88
lea ecx, [esp + 0xb8]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
call fcn.004016e0
lea edx, [esp + 0xb0]
mov dword [esp + 0x108], 1
mov ecx, dword [edi + 0x68]
push edx
call fcn.0058a360
mov dword [esp + 0x108], 0xffffffff
cmp dword [esp + 0xc8], 0x10
jb 0x70db0c
mov eax, dword [esp + 0xb4]
push eax
call fcn.006441c7
add esp, 4
mov edi, dword [ebp + 8]
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
test esi, esi
je 0x70db64
lea ecx, [esi + 0x20]
call fcn.00436230
fcomp qword [0x7a8008]
fnstsw ax
test ah, 0x44
jnp 0x70db64
cmp byte [0x88b12a], 0
je 0x70db5a
mov eax, edi
call fcn.00430930
mov esi, eax
call fcn.00433f50
jmp 0x70db64
mov ebx, edi
call fcn.00430bb0
mov edi, dword [ebp + 8]
mov eax, edi
call fcn.00430c80
mov ecx, dword [esp + 0x100]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4