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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6625b6
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x19e8
call fcn.00613910
push ebx
push ebp
push esi
push edi
mov eax, dword [0x704e7c]
xor eax, esp
push eax
lea eax, [esp + 0x1a00]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x38], esi
mov eax, dword [esi + 0x44]
xor ebx, ebx
mov dword [esp + 0x50], ebx
cmp eax, 1
ja 0x52b3b5
xor al, al
mov ecx, dword [esp + 0x1a00]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x24c]
call fcn.00577e00
lea ecx, [esp + 0x98]
mov dword [esp + 0x1a08], ebx
call fcn.00577e00
fld dword [esi + 0x60]
lea edi, [esi + 0x28]
fstp qword [esp + 0x2c]
mov ecx, edi
mov byte [esp + 0x1a08], 1
call fcn.00529f90
fld dword [eax]
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x52b3ff
fld dword [esi + 0x60]
jmp 0x52b408
mov ecx, edi
call fcn.00529f90
fld dword [eax]
mov esi, dword [esi + 0x44]
fstp dword [esp + 0x54]
fldz
dec esi
lea eax, [esi + esi*2]
fst dword [esp + 0x218]
lea ecx, [esp + eax*4 + 0x28c]
fst dword [esp + 0x21c]
fstp dword [esp + 0x220]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x224], ecx
cmp dword [esp + 0x4c], 0
fld qword [0x673618]
fld1
je 0x52b467
mov eax, dword [esp + 0x38]
add eax, 0x28
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x64], eax
jmp 0x52b47d
mov edx, dword [esp + 0x38]
add edx, 8
lea ecx, [esp + 0x24c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x18], 0
jle 0x52b7f3
fstp st(1)
fstp st(0)
mov ebp, dword [esp + 0x1c]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
add edx, edi
cmp edi, edx
jbe 0x52b4a9
call fcn.006111cc
mov esi, dword [ebp]
mov ebx, esi
mov dword [esp + 0x30], edi
test esi, esi
jne 0x52b4d9
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, dword [eax + 0x18]
lea edi, [edi + edx + 1]
cmp edi, ecx
ja 0x52b4e6
test esi, esi
je 0x52b4df
mov esi, dword [esi]
jmp 0x52b4e1
mov eax, dword [esi]
mov ecx, eax
jmp 0x52b4bf
xor esi, esi
cmp edi, dword [esi + 0x18]
jae 0x52b4eb
call fcn.006111cc
test ebx, ebx
jne 0x52b50f
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x52b507
call fcn.006111cc
test ebx, ebx
je 0x52b515
mov eax, dword [ebx]
jmp 0x52b517
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52b4f8
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x52b529
test ebx, ebx
je 0x52b524
mov eax, dword [ebx]
jmp 0x52b526
xor eax, eax
sub edi, dword [eax + 0x14]
test ebx, ebx
je 0x52b531
mov eax, dword [ebx]
jmp 0x52b533
xor eax, eax
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + edi*4]
add edx, esi
mov dword [esp + 0x28], ecx
cmp esi, edx
jbe 0x52b54e
call fcn.006111cc
mov edi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52b57c
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, dword [eax + 0x18]
add esi, edx
cmp esi, ecx
ja 0x52b589
test edi, edi
je 0x52b582
mov edi, dword [edi]
jmp 0x52b584
mov eax, dword [edi]
mov ecx, eax
jmp 0x52b564
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52b58e
call fcn.006111cc
test ebx, ebx
jne 0x52b5b2
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52b5aa
call fcn.006111cc
test ebx, ebx
je 0x52b5b8
mov eax, dword [ebx]
jmp 0x52b5ba
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52b59b
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52b5cc
test ebx, ebx
je 0x52b5c7
mov eax, dword [ebx]
jmp 0x52b5c9
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52b5d4
mov eax, dword [ebx]
jmp 0x52b5d6
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + 0x10]
fld dword [ecx]
mov eax, dword [edx + esi*4]
mov esi, dword [ebp + 0x18]
fsub dword [eax]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x18]
add edx, esi
fstp dword [esp + ecx*4 + 0x109c]
cmp esi, edx
jbe 0x52b600
call fcn.006111cc
mov edi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52b62e
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, dword [eax + 0x18]
add esi, edx
cmp esi, ecx
ja 0x52b63b
test edi, edi
je 0x52b634
mov edi, dword [edi]
jmp 0x52b636
mov eax, dword [edi]
mov ecx, eax
jmp 0x52b616
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52b640
call fcn.006111cc
test ebx, ebx
jne 0x52b664
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52b65c
call fcn.006111cc
test ebx, ebx
je 0x52b66a
mov eax, dword [ebx]
jmp 0x52b66c
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52b64d
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52b67e
test ebx, ebx
je 0x52b679
mov eax, dword [ebx]
jmp 0x52b67b
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52b686
mov eax, dword [ebx]
jmp 0x52b688
xor eax, eax
mov eax, dword [eax + 0x10]
mov ebp, dword [eax + esi*4]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
add ecx, esi
cmp esi, ecx
jbe 0x52b6a3
call fcn.006111cc
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52b6d6
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, dword [eax + 0x18]
lea esi, [esi + edx + 1]
cmp esi, ecx
ja 0x52b6e3
test edi, edi
je 0x52b6dc
mov edi, dword [edi]
jmp 0x52b6de
mov eax, dword [edi]
mov ecx, eax
jmp 0x52b6bc
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52b6ec
call fcn.006111cc
mov edx, dword [esp + 0x18]
test ebx, ebx
jne 0x52b718
call fcn.006111cc
mov edx, dword [esp + 0x18]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x52b710
call fcn.006111cc
mov edx, dword [esp + 0x18]
test ebx, ebx
je 0x52b71e
mov eax, dword [ebx]
jmp 0x52b720
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52b6fd
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52b732
test ebx, ebx
je 0x52b72d
mov eax, dword [ebx]
jmp 0x52b72f
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52b73a
mov eax, dword [ebx]
jmp 0x52b73c
xor eax, eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi*4]
fld dword [eax + 4]
add eax, 4
fsub dword [ebp + 4]
fstp dword [esp + 0x1ac]
fld dword [eax + 4]
fsub dword [ebp + 8]
fstp dword [esp + 0x1b0]
fld dword [eax + 8]
lea eax, [edx + edx*2]
fsub dword [ebp + 0xc]
lea eax, [esp + eax*4 + 0x28c]
fstp dword [esp + 0x1b4]
fld dword [esp + edx*4 + 0x109c]
fdivr qword [0x6736a8]
fstp dword [esp + 0x28]
fld dword [esp + 0x1ac]
fld dword [esp + 0x28]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0xd4]
mov ecx, dword [esp + 0xd4]
mov dword [eax], ecx
fld st(0)
fmul dword [esp + 0x1b0]
fstp dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
mov dword [eax + 4], ecx
fmul dword [esp + 0x1b4]
fstp dword [esp + 0xdc]
mov ecx, dword [esp + 0xdc]
mov dword [eax + 8], ecx
lea eax, [edx + 1]
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
jl 0x52b494
fld qword [0x673618]
fld1
mov edx, dword [esp + 0x224]
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x21c]
mov edi, dword [esp + 0x3c]
mov dword [edx], eax
mov eax, dword [esp + 0x220]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov ecx, edi
test edi, edi
jle 0x52b847
lea eax, [edx - 4]
fld dword [eax - 8]
dec ecx
fadd dword [eax + 4]
sub eax, 0xc
fstp dword [eax + 0x10]
fld dword [eax + 8]
fadd dword [eax + 0x14]
fstp dword [eax + 0x14]
fld dword [eax + 0x18]
fadd dword [eax + 0xc]
fstp dword [eax + 0x18]
test ecx, ecx
jg 0x52b824
fld dword [0x673240]
mov esi, dword [esp + 0x50]
fst dword [esp + 0x24]
inc esi
cmp edi, 1
fld dword [esp + 0x28c]
fmul st(3)
mov dword [esp + 0x50], esi
fstp dword [esp + 0x28c]
fld dword [esp + 0x290]
fmul st(3)
fstp dword [esp + 0x290]
fld dword [esp + 0x294]
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x294]
fxch st(1)
fstp dword [esp + esi*4 + 0x1548]
fld dword [esp + 0x24]
jle 0x52b903
lea eax, [esp + 0x29c]
lea ecx, [edi - 1]
fld dword [eax - 4]
inc esi
fsub dword [eax - 0x10]
add eax, 0xc
sub ecx, 1
fstp dword [eax - 0x10]
fld dword [eax - 0xc]
fsub dword [eax - 0x18]
fstp dword [eax - 0xc]
fld dword [eax - 8]
fsub dword [eax - 0x14]
fstp dword [eax - 8]
fsubr qword [0x6736a0]
fdivr st(1)
fstp dword [esp + 0x24]
fld dword [eax - 0x10]
fld dword [esp + 0x24]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [eax - 0x10]
fld dword [eax - 0xc]
fmul st(1)
fstp dword [eax - 0xc]
fld st(0)
fmul dword [eax - 8]
fstp dword [eax - 8]
fst dword [esp + esi*4 + 0x1548]
jne 0x52b8a8
mov dword [esp + 0x50], esi
fld dword [edx]
lea ecx, [edi - 1]
fsub dword [edx - 0xc]
fstp dword [edx]
fld dword [edx + 4]
fsub dword [edx - 8]
fstp dword [edx + 4]
fld dword [edx + 8]
fsub dword [edx - 4]
fstp dword [edx + 8]
fsubr qword [0x673698]
fdivp st(1)
fstp dword [esp + 0x24]
fld dword [edx]
fld dword [esp + 0x24]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [edx]
fld dword [edx + 4]
fmul st(1)
fstp dword [edx + 4]
fmul dword [edx + 8]
fstp dword [edx + 8]
test ecx, ecx
jl 0x52b9c9
lea eax, [ecx + ecx*2]
lea eax, [esp + eax*4 + 0x290]
jmp 0x52b960
fld dword [esp + esi*4 + 0x1548]
dec esi
fstp dword [esp + 0x28]
dec ecx
fld dword [eax + 8]
sub eax, 0xc
fld dword [esp + 0x28]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0xec]
fld dword [eax + 0x18]
fmul st(1)
fstp dword [esp + 0xf0]
fmul dword [eax + 0x1c]
fstp dword [esp + 0xf4]
fld dword [eax + 8]
fsub dword [esp + 0xec]
fstp dword [eax + 8]
fld dword [eax + 0xc]
fsub dword [esp + 0xf0]
fstp dword [eax + 0xc]
fld dword [eax + 0x10]
fsub dword [esp + 0xf4]
fstp dword [eax + 0x10]
test ecx, ecx
jge 0x52b960
mov dword [esp + 0x50], esi
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
add ecx, esi
mov dword [esp + 0x24], 0
cmp esi, ecx
jbe 0x52b9e6
call fcn.006111cc
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52ba11
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
ja 0x52ba1e
test edi, edi
je 0x52ba17
mov edi, dword [edi]
jmp 0x52ba19
mov eax, dword [edi]
mov ecx, eax
jmp 0x52b9ff
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52ba23
call fcn.006111cc
test ebx, ebx
jne 0x52ba47
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52ba3f
call fcn.006111cc
test ebx, ebx
je 0x52ba4d
mov eax, dword [ebx]
jmp 0x52ba4f
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52ba30
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52ba61
test ebx, ebx
je 0x52ba5c
mov eax, dword [ebx]
jmp 0x52ba5e
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52ba69
mov eax, dword [ebx]
jmp 0x52ba6b
xor eax, eax
mov eax, dword [eax + 0x10]
mov ebp, dword [eax + esi*4]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
add ecx, esi
cmp esi, ecx
jbe 0x52ba86
call fcn.006111cc
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52bab2
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
inc esi
cmp esi, ecx
ja 0x52babf
test edi, edi
je 0x52bab8
mov edi, dword [edi]
jmp 0x52baba
mov eax, dword [edi]
mov ecx, eax
jmp 0x52ba9f
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52bac4
call fcn.006111cc
test ebx, ebx
jne 0x52bae8
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52bae0
call fcn.006111cc
test ebx, ebx
je 0x52baee
mov eax, dword [ebx]
jmp 0x52baf0
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52bad1
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52bb02
test ebx, ebx
je 0x52bafd
mov eax, dword [ebx]
jmp 0x52baff
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52bb0a
mov eax, dword [ebx]
jmp 0x52bb0c
xor eax, eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi*4]
fld dword [eax + 4]
add eax, 4
fsub dword [ebp + 4]
mov ecx, dword [esp + 0x38]
fstp dword [esp + 0x8c]
fld dword [eax + 4]
fsub dword [ebp + 8]
fstp dword [esp + 0x90]
fld dword [eax + 8]
mov eax, dword [esp + 0x1c]
fsub dword [ebp + 0xc]
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
add edx, esi
fstp dword [esp + 0x94]
fldz
fstp dword [esp + 0x28]
fld dword [esp + 0x109c]
fstp dword [esp + 0x40]
fld dword [ecx + 0x64]
fstp dword [esp + 0x2c]
cmp esi, edx
jbe 0x52bb6d
call fcn.006111cc
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52bb98
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
ja 0x52bba5
test edi, edi
je 0x52bb9e
mov edi, dword [edi]
jmp 0x52bba0
mov eax, dword [edi]
mov ecx, eax
jmp 0x52bb86
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52bbaa
call fcn.006111cc
test ebx, ebx
jne 0x52bbce
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52bbc6
call fcn.006111cc
test ebx, ebx
je 0x52bbd4
mov eax, dword [ebx]
jmp 0x52bbd6
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52bbb7
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52bbe8
test ebx, ebx
je 0x52bbe3
mov eax, dword [ebx]
jmp 0x52bbe5
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52bbf0
mov eax, dword [ebx]
jmp 0x52bbf2
xor eax, eax
fld dword [esp + 0x109c]
mov eax, dword [eax + 0x10]
fld st(0)
mov eax, dword [eax + esi*4]
fadd st(1)
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
add eax, 4
fstp dword [esp + 0x20]
mov eax, dword [eax + 8]
fld dword [esp + 0x28c]
mov dword [esp + 0x80], ecx
fld st(0)
mov ecx, dword [esp + 0x28c]
fld dword [esp + 0x20]
mov dword [esp + 0x84], edx
fld st(0)
mov edx, dword [esp + 0x290]
fmulp st(2)
mov dword [esp + 0x88], eax
fxch st(1)
mov eax, dword [esp + 0x294]
mov dword [esp + 0x68], ecx
fstp dword [esp + 0x11c]
mov dword [esp + 0x6c], edx
fld dword [esp + 0x290]
mov dword [esp + 0x70], eax
fld st(0)
fmul st(2)
fstp dword [esp + 0x120]
fld dword [esp + 0x294]
fld st(0)
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x124]
fld dword [esp + 0x298]
fld st(0)
fmul st(5)
fstp dword [esp + 0x104]
fld st(4)
fmul dword [esp + 0x29c]
fstp dword [esp + 0x108]
fld st(4)
fmul dword [esp + 0x2a0]
fstp dword [esp + 0x10c]
fld dword [esp + 0x8c]
fld qword [0x6736a8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x1c4]
fld dword [esp + 0x90]
fmul st(1)
fstp dword [esp + 0x1c8]
fmul dword [esp + 0x94]
fstp dword [esp + 0x1cc]
fld dword [esp + 0x1c4]
fsub dword [esp + 0x104]
fstp dword [esp + 0x234]
fld dword [esp + 0x1c8]
fsub dword [esp + 0x108]
fstp dword [esp + 0x238]
fld dword [esp + 0x1cc]
fsub dword [esp + 0x10c]
fstp dword [esp + 0x23c]
fld dword [esp + 0x234]
fsub dword [esp + 0x11c]
fstp dword [esp + 0x1dc]
fld dword [esp + 0x238]
fsub dword [esp + 0x120]
fstp dword [esp + 0x1e0]
fld dword [esp + 0x23c]
fsub dword [esp + 0x124]
fstp dword [esp + 0x1e4]
fld st(4)
fmulp st(5)
fld1
fdiv st(5)
fstp dword [esp + 0x20]
fld dword [esp + 0x1dc]
fld dword [esp + 0x20]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
fld dword [esp + 0x1e0]
mov dword [esp + 0x58], ecx
fmul st(1)
fstp dword [esp + 0xb4]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x5c], edx
fmul dword [esp + 0x1e4]
fstp dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x60], eax
faddp st(3)
fxch st(2)
fstp dword [esp + 0x200]
fld dword [esp + 0x29c]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x204]
fadd dword [esp + 0x2a0]
fstp dword [esp + 0x208]
fld dword [esp + 0x109c]
fld st(0)
fmul dword [esp + 0x200]
fstp dword [esp + 0x1f4]
fld st(0)
fmul dword [esp + 0x204]
fstp dword [esp + 0x1f8]
fld st(0)
fmul dword [esp + 0x208]
fstp dword [esp + 0x1fc]
fld dword [esp + 0x8c]
fld qword [0x687f90]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x14c]
fld dword [esp + 0x90]
fmul st(1)
fstp dword [esp + 0x150]
fmul dword [esp + 0x94]
fstp dword [esp + 0x154]
fld dword [esp + 0x14c]
fadd dword [esp + 0x1f4]
fstp dword [esp + 0x164]
fld dword [esp + 0x150]
fadd dword [esp + 0x1f8]
fstp dword [esp + 0x168]
fld dword [esp + 0x154]
fadd dword [esp + 0x1fc]
fstp dword [esp + 0x16c]
fmulp st(1)
fld1
fdivrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x164]
fld dword [esp + 0x20]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x228]
mov ecx, dword [esp + 0x228]
fld dword [esp + 0x168]
mov dword [esp + 0x74], ecx
fmul st(1)
fstp dword [esp + 0x22c]
mov edx, dword [esp + 0x22c]
mov dword [esp + 0x78], edx
fmul dword [esp + 0x16c]
fstp dword [esp + 0x230]
mov eax, dword [esp + 0x230]
fldz
mov dword [esp + 0x7c], eax
fstp dword [esp + 0x20]
fld dword [esp + 0x54]
fcomp qword [0x673288]
fnstsw ax
test ah, 1
jne 0x52c7d3
fld dword [esp + 0x20]
fld dword [esp + 0x40]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x52c48d
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
jge 0x52c48f
mov esi, dword [esp + 0x1c]
fstp st(0)
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
add ecx, edi
cmp edi, ecx
jbe 0x52bf68
call fcn.006111cc
mov esi, dword [esi]
mov ebx, esi
mov dword [esp + 0x48], edi
test esi, esi
jne 0x52bf95
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x24]
add ecx, dword [eax + 0x18]
add edi, edx
cmp edi, ecx
ja 0x52bfa2
test esi, esi
je 0x52bf9b
mov esi, dword [esi]
jmp 0x52bf9d
mov eax, dword [esi]
mov ecx, eax
jmp 0x52bf7d
xor esi, esi
cmp edi, dword [esi + 0x18]
jae 0x52bfa7
call fcn.006111cc
test ebx, ebx
jne 0x52bfcb
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x52bfc3
call fcn.006111cc
test ebx, ebx
je 0x52bfd1
mov eax, dword [ebx]
jmp 0x52bfd3
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52bfb4
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x52bfe5
test ebx, ebx
je 0x52bfe0
mov eax, dword [ebx]
jmp 0x52bfe2
xor eax, eax
sub edi, dword [eax + 0x14]
test ebx, ebx
je 0x52bfed
mov eax, dword [ebx]
jmp 0x52bfef
xor eax, eax
mov eax, dword [eax + 0x10]
mov ebp, dword [eax + edi*4]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
add ecx, esi
cmp esi, ecx
jbe 0x52c00a
call fcn.006111cc
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52c03d
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x24]
add ecx, dword [eax + 0x18]
lea esi, [esi + edx + 1]
cmp esi, ecx
ja 0x52c04a
test edi, edi
je 0x52c043
mov edi, dword [edi]
jmp 0x52c045
mov eax, dword [edi]
mov ecx, eax
jmp 0x52c023
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52c04f
call fcn.006111cc
test ebx, ebx
jne 0x52c073
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52c06b
call fcn.006111cc
test ebx, ebx
je 0x52c079
mov eax, dword [ebx]
jmp 0x52c07b
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52c05c
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52c08d
test ebx, ebx
je 0x52c088
mov eax, dword [ebx]
jmp 0x52c08a
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52c095
mov eax, dword [ebx]
jmp 0x52c097
xor eax, eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi*4]
fld dword [eax + 4]
add eax, 4
fsub dword [ebp + 4]
fstp dword [esp + 0x17c]
fld dword [eax + 4]
fsub dword [ebp + 8]
fstp dword [esp + 0x180]
fld dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
fsub dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
add ecx, esi
fstp dword [esp + 0x184]
cmp esi, ecx
jbe 0x52c0e0
call fcn.006111cc
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52c10d
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x24]
add ecx, dword [eax + 0x18]
add esi, edx
cmp esi, ecx
ja 0x52c11a
test edi, edi
je 0x52c113
mov edi, dword [edi]
jmp 0x52c115
mov eax, dword [edi]
mov ecx, eax
jmp 0x52c0f5
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52c11f
call fcn.006111cc
test ebx, ebx
jne 0x52c143
call fcn.006111cc
xor eax, eax
xor ecx, ecx
mov edx, dword [eax + 0x18]
add edx, dword [ecx + 0x1c]
cmp esi, edx
jb 0x52c13b
call fcn.006111cc
test ebx, ebx
je 0x52c149
mov eax, dword [ebx]
jmp 0x52c14b
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52c12c
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52c15d
test ebx, ebx
je 0x52c158
mov eax, dword [ebx]
jmp 0x52c15a
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52c165
mov eax, dword [ebx]
jmp 0x52c167
xor eax, eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi*4]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 4]
add eax, 4
mov eax, dword [eax + 8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x24]
fld dword [esp + edx*4 + 0x109c]
lea ecx, [edx + edx*2]
fadd st(0), st(0)
lea edx, [esp + edx*4 + 0x109c]
add ecx, ecx
add ecx, ecx
fstp dword [esp + 0x18]
mov dword [esp + 0x88], eax
fld dword [esp + 0x18]
lea eax, [esp + ecx + 0x28c]
fld st(0)
lea ecx, [esp + ecx + 0x298]
fmul dword [eax]
mov esi, dword [eax]
mov dword [esp + 0x68], esi
mov esi, dword [eax + 4]
fstp dword [esp + 0xbc]
mov dword [esp + 0x6c], esi
fld dword [eax + 4]
mov esi, dword [eax + 8]
fmul st(1)
mov dword [esp + 0x70], esi
fstp dword [esp + 0xc0]
fmul dword [eax + 8]
fstp dword [esp + 0xc4]
fld dword [edx]
fstp dword [esp + 0x18]
fld dword [ecx]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x194]
fld dword [ecx + 4]
fmul st(1)
fstp dword [esp + 0x198]
fmul dword [ecx + 8]
fstp dword [esp + 0x19c]
fld dword [esp + 0x17c]
fld st(0)
fld qword [0x6736a8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x240]
fld dword [esp + 0x180]
fld st(0)
fmul st(2)
fstp dword [esp + 0x244]
fld dword [esp + 0x184]
fld st(0)
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x248]
fld dword [esp + 0x240]
fsub dword [esp + 0x194]
fstp dword [esp + 0x20c]
fld dword [esp + 0x244]
fsub dword [esp + 0x198]
fstp dword [esp + 0x210]
fld dword [esp + 0x248]
fsub dword [esp + 0x19c]
fstp dword [esp + 0x214]
fld dword [esp + 0x20c]
fsub dword [esp + 0xbc]
fstp dword [esp + 0xc8]
fld dword [esp + 0x210]
fsub dword [esp + 0xc0]
fstp dword [esp + 0xcc]
fld dword [esp + 0x214]
fsub dword [esp + 0xc4]
fstp dword [esp + 0xd0]
fld dword [edx]
fmul st(0), st(0)
fld1
fld st(0)
fdiv st(2)
fstp dword [esp + 0x18]
fld dword [esp + 0xc8]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0xe0]
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x58], esi
fld st(0)
fmul dword [esp + 0xcc]
fstp dword [esp + 0xe4]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x5c], esi
fmul dword [esp + 0xd0]
fstp dword [esp + 0xe8]
mov esi, dword [esp + 0xe8]
fld dword [ecx]
mov dword [esp + 0x60], esi
fadd dword [eax]
fstp dword [esp + 0xf8]
fld dword [eax + 4]
fadd dword [ecx + 4]
fstp dword [esp + 0xfc]
fld dword [eax + 8]
fadd dword [ecx + 8]
fstp dword [esp + 0x100]
fld dword [edx]
fstp dword [esp + 0x18]
fld dword [esp + 0xf8]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x128]
fld dword [esp + 0xfc]
fmul st(1)
fstp dword [esp + 0x12c]
fmul dword [esp + 0x100]
fstp dword [esp + 0x130]
fld qword [0x687f90]
fmul st(5), st(0)
fxch st(5)
fstp dword [esp + 0x110]
fxch st(2)
fmul st(4)
fstp dword [esp + 0x114]
fxch st(2)
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x118]
fld dword [esp + 0x110]
fadd dword [esp + 0x128]
fstp dword [esp + 0x140]
fld dword [esp + 0x114]
fadd dword [esp + 0x12c]
fstp dword [esp + 0x144]
fld dword [esp + 0x118]
fadd dword [esp + 0x130]
fstp dword [esp + 0x148]
fmul dword [edx]
fdivp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x140]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x158]
mov ecx, dword [esp + 0x158]
fld dword [esp + 0x144]
mov dword [esp + 0x74], ecx
fmul st(1)
fstp dword [esp + 0x15c]
mov eax, dword [esp + 0x15c]
fmul dword [esp + 0x148]
fstp dword [esp + 0x160]
fld dword [edx]
mov ecx, dword [esp + 0x160]
fadd dword [esp + 0x40]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
fstp dword [esp + 0x40]
fld dword [esp + 0x20]
fld dword [esp + 0x40]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x52bf3a
fstp st(0)
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x3c]
jg 0x52c7d1
fsub dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
push 0
mov ecx, edi
fstp dword [esp + 0x48]
call fcn.00529f30
fld dword [eax]
mov esi, dword [esp + 0x38]
fadd dword [esp + 0x20]
fdiv dword [esi + 0x60]
fcomp qword [0x673288]
fnstsw ax
test ah, 0x41
jne 0x52c4f9
push 0
mov ecx, edi
call fcn.00529f30
fld dword [eax]
fld dword [esp + 0x20]
fld st(0)
faddp st(2)
fld dword [esi + 0x60]
fdivp st(2)
fld1
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x52c5b5
fstp st(1)
fstp st(0)
push 0
mov ecx, edi
call fcn.00529f30
fld dword [eax]
fld dword [esp + 0x20]
fld st(0)
faddp st(2)
fld dword [esi + 0x60]
fdivp st(2)
fldz
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 5
jp 0x52c5ad
fstp st(1)
push 0
mov ecx, edi
fstp st(0)
call fcn.00529f30
fld dword [eax]
fld dword [esp + 0x20]
fld st(0)
faddp st(2)
fld dword [esi + 0x60]
fdivp st(2)
fldz
fld1
fxch st(3)
fxch st(1)
mov ecx, dword [esp + 0x4c]
fxch st(1)
fstp dword [esp + 0x18]
test ecx, ecx
je 0x52c585
fld dword [esp + 0x18]
fsubr st(3)
fmul st(0), st(0)
fdiv qword [0x687f88]
fsub qword [0x67cfb0]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x52c57a
fcom st(3)
fnstsw ax
test ah, 5
jp 0x52c5bb
fstp st(3)
fcom st(2)
fnstsw ax
test ah, 5
jnp 0x52c5bd
fstp st(2)
fxch st(1)
fstp dword [esp + 0x288]
fld1
fld dword [esp + 0x288]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x52c5c1
fstp st(0)
mov eax, 0xff
jmp 0x52c60c
fld st(1)
fld1
fxch st(3)
jmp 0x52c546
fld st(1)
fldz
jmp 0x52c546
fstp st(0)
fstp st(0)
jmp 0x52c587
fldz
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x52c5d2
fstp st(0)
xor eax, eax
jmp 0x52c60c
fmul qword [0x673620]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
fadd qword [0x673618]
or eax, 0xc00
mov dword [esp + 0x134], eax
fldcw word [esp + 0x134]
fistp qword [esp + 0x134]
mov eax, dword [esp + 0x134]
fldcw word [esp + 0x18]
fld dword [esp + 0x74]
shl eax, 0x18
fld dword [esp + 0x44]
or eax, 0x4dccff
fld st(0)
mov dword [esp + 0x270], eax
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x170]
fld dword [esp + 0x78]
fmul st(1)
fstp dword [esp + 0x174]
fld dword [esp + 0x7c]
fmul st(1)
fstp dword [esp + 0x178]
fld dword [esp + 0x170]
fadd dword [esp + 0x58]
fstp dword [esp + 0x188]
fld dword [esp + 0x5c]
fadd dword [esp + 0x174]
fstp dword [esp + 0x18c]
fld dword [esp + 0x60]
fadd dword [esp + 0x178]
fstp dword [esp + 0x190]
fld dword [esp + 0x188]
fmul st(1)
fstp dword [esp + 0x1a0]
fld dword [esp + 0x18c]
fmul st(1)
fstp dword [esp + 0x1a4]
fld dword [esp + 0x190]
fmul st(1)
fstp dword [esp + 0x1a8]
fld dword [esp + 0x1a0]
fadd dword [esp + 0x68]
fstp dword [esp + 0x1b8]
fld dword [esp + 0x6c]
fadd dword [esp + 0x1a4]
fstp dword [esp + 0x1bc]
fld dword [esp + 0x70]
fadd dword [esp + 0x1a8]
fstp dword [esp + 0x1c0]
fld dword [esp + 0x1b8]
fmul st(1)
fstp dword [esp + 0x1d0]
fld dword [esp + 0x1bc]
fmul st(1)
fstp dword [esp + 0x1d4]
fmul dword [esp + 0x1c0]
fstp dword [esp + 0x1d8]
fld dword [esp + 0x1d0]
fadd dword [esp + 0x80]
fstp dword [esp + 0x1e8]
mov eax, dword [esp + 0x1e8]
fld dword [esp + 0x84]
mov dword [esp + 0x264], eax
fadd dword [esp + 0x1d4]
fstp dword [esp + 0x1ec]
mov edx, dword [esp + 0x1ec]
fld dword [esp + 0x88]
mov dword [esp + 0x268], edx
fadd dword [esp + 0x1d8]
xor edx, edx
test ecx, ecx
mov ecx, dword [esp + 0x64]
fstp dword [esp + 0x1f0]
mov eax, dword [esp + 0x1f0]
sete dl
fdiv dword [esi + 0x60]
mov dword [esp + 0x26c], eax
lea eax, [esp + 0x264]
push eax
mov dword [esp + 0x48], edx
fstp dword [esp + 0x278]
fild dword [esp + 0x48]
fstp dword [esp + 0x27c]
call fcn.0052b2b0
fld dword [esp + 0x20]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x54]
fcompp
fnstsw ax
test ah, 1
je 0x52bf25
jmp 0x52c7d3
fstp st(0)
mov eax, dword [esp + 0x4c]
inc eax
cmp eax, 1
mov dword [esp + 0x4c], eax
jle 0x52b440
mov ebp, dword [esp + 0x38]
mov edi, dword [ebp + 0x58]
add ebp, 0x48
cmp dword [ebp + 0xc], edi
jbe 0x52c7f9
call fcn.006111cc
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp]
cmp esi, dword [ebp + 0x10]
jbe 0x52c809
call fcn.006111cc
mov eax, dword [ebp]
push edi
push ebx
push esi
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.0052a0f0
mov esi, dword [esp + 0xa4]
cmp esi, dword [esp + 0xa8]
jbe 0x52c831
call fcn.006111cc
mov eax, dword [esp + 0x258]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x44], edx
mov edi, eax
cmp eax, dword [esp + 0x25c]
jbe 0x52c853
call fcn.006111cc
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
jmp 0x52c870
mov ebx, dword [esp + 0xa8]
cmp dword [esp + 0xa4], ebx
jbe 0x52c885
call fcn.006111cc
mov edi, dword [esp + 0x44]
test edi, edi
je 0x52c896
cmp edi, dword [esp + 0x98]
je 0x52c89b
call fcn.006111cc
cmp esi, ebx
je 0x52c932
test edi, edi
jne 0x52c922
call fcn.006111cc
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x52c8b8
call fcn.006111cc
push esi
mov ecx, ebp
call fcn.0052b2b0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x52c926
call fcn.006111cc
xor eax, eax
mov ebx, dword [esp + 0x30]
cmp ebx, dword [eax + 0x10]
jb 0x52c8dd
call fcn.006111cc
push ebx
mov ecx, ebp
call fcn.0052b2b0
test edi, edi
jne 0x52c92a
call fcn.006111cc
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x52c8fa
call fcn.006111cc
mov eax, dword [esp + 0x2c]
add esi, 0x18
test eax, eax
jne 0x52c92e
call fcn.006111cc
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x52c916
call fcn.006111cc
add ebx, 0x18
mov dword [esp + 0x30], ebx
jmp 0x52c870
mov eax, dword [edi]
jmp 0x52c8ae
mov eax, dword [eax]
jmp 0x52c8cf
mov eax, dword [edi]
jmp 0x52c8f0
mov eax, dword [eax]
jmp 0x52c90c
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x52c946
push eax
call fcn.00610458
add esp, 4
mov ecx, dword [esp + 0x98]
xor esi, esi
push ecx
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
call fcn.00610458
mov eax, dword [esp + 0x25c]
add esp, 4
cmp eax, esi
je 0x52c981
push eax
call fcn.00610458
add esp, 4
mov edx, dword [esp + 0x24c]
push edx
mov dword [esp + 0x25c], esi
mov dword [esp + 0x260], esi
mov dword [esp + 0x264], esi
call fcn.00610458
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x1a00]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret