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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x664a66
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x19e8
call fcn.00617200
push ebx
push ebp
push esi
push edi
mov eax, dword [0x70903c]
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 0x52e765
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.0051c710
lea ecx, [esp + 0x98]
mov dword [esp + 0x1a08], ebx
call fcn.0051c710
fld dword [esi + 0x60]
lea edi, [esi + 0x28]
fstp qword [esp + 0x2c]
mov ecx, edi
mov byte [esp + 0x1a08], 1
call fcn.0059dd40
fld dword [eax]
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x52e7af
fld dword [esi + 0x60]
jmp 0x52e7b8
mov ecx, edi
call fcn.0059dd40
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 [0x676648]
fld1
je 0x52e817
mov eax, dword [esp + 0x38]
add eax, 0x28
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x64], eax
jmp 0x52e82d
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 0x52eba3
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 0x52e859
call fcn.00615e0c
mov esi, dword [ebp]
mov ebx, esi
mov dword [esp + 0x30], edi
test esi, esi
jne 0x52e889
call fcn.00615e0c
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 0x52e896
test esi, esi
je 0x52e88f
mov esi, dword [esi]
jmp 0x52e891
mov eax, dword [esi]
mov ecx, eax
jmp 0x52e86f
xor esi, esi
cmp edi, dword [esi + 0x18]
jae 0x52e89b
call fcn.00615e0c
test ebx, ebx
jne 0x52e8bf
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x52e8b7
call fcn.00615e0c
test ebx, ebx
je 0x52e8c5
mov eax, dword [ebx]
jmp 0x52e8c7
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52e8a8
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x52e8d9
test ebx, ebx
je 0x52e8d4
mov eax, dword [ebx]
jmp 0x52e8d6
xor eax, eax
sub edi, dword [eax + 0x14]
test ebx, ebx
je 0x52e8e1
mov eax, dword [ebx]
jmp 0x52e8e3
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 0x52e8fe
call fcn.00615e0c
mov edi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52e92c
call fcn.00615e0c
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 0x52e939
test edi, edi
je 0x52e932
mov edi, dword [edi]
jmp 0x52e934
mov eax, dword [edi]
mov ecx, eax
jmp 0x52e914
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52e93e
call fcn.00615e0c
test ebx, ebx
jne 0x52e962
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52e95a
call fcn.00615e0c
test ebx, ebx
je 0x52e968
mov eax, dword [ebx]
jmp 0x52e96a
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52e94b
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52e97c
test ebx, ebx
je 0x52e977
mov eax, dword [ebx]
jmp 0x52e979
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52e984
mov eax, dword [ebx]
jmp 0x52e986
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 0x52e9b0
call fcn.00615e0c
mov edi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52e9de
call fcn.00615e0c
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 0x52e9eb
test edi, edi
je 0x52e9e4
mov edi, dword [edi]
jmp 0x52e9e6
mov eax, dword [edi]
mov ecx, eax
jmp 0x52e9c6
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52e9f0
call fcn.00615e0c
test ebx, ebx
jne 0x52ea14
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52ea0c
call fcn.00615e0c
test ebx, ebx
je 0x52ea1a
mov eax, dword [ebx]
jmp 0x52ea1c
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52e9fd
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52ea2e
test ebx, ebx
je 0x52ea29
mov eax, dword [ebx]
jmp 0x52ea2b
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52ea36
mov eax, dword [ebx]
jmp 0x52ea38
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 0x52ea53
call fcn.00615e0c
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52ea86
call fcn.00615e0c
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 0x52ea93
test edi, edi
je 0x52ea8c
mov edi, dword [edi]
jmp 0x52ea8e
mov eax, dword [edi]
mov ecx, eax
jmp 0x52ea6c
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52ea9c
call fcn.00615e0c
mov edx, dword [esp + 0x18]
test ebx, ebx
jne 0x52eac8
call fcn.00615e0c
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 0x52eac0
call fcn.00615e0c
mov edx, dword [esp + 0x18]
test ebx, ebx
je 0x52eace
mov eax, dword [ebx]
jmp 0x52ead0
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52eaad
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52eae2
test ebx, ebx
je 0x52eadd
mov eax, dword [ebx]
jmp 0x52eadf
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52eaea
mov eax, dword [ebx]
jmp 0x52eaec
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 [0x6766e0]
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 0x52e844
fld qword [0x676648]
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 0x52ebf7
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 0x52ebd4
fld dword [0x676260]
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 0x52ecb3
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 [0x6766d8]
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 0x52ec58
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 [0x6766d0]
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 0x52ed79
lea eax, [ecx + ecx*2]
lea eax, [esp + eax*4 + 0x290]
jmp 0x52ed10
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 0x52ed10
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 0x52ed96
call fcn.00615e0c
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52edc1
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
ja 0x52edce
test edi, edi
je 0x52edc7
mov edi, dword [edi]
jmp 0x52edc9
mov eax, dword [edi]
mov ecx, eax
jmp 0x52edaf
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52edd3
call fcn.00615e0c
test ebx, ebx
jne 0x52edf7
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52edef
call fcn.00615e0c
test ebx, ebx
je 0x52edfd
mov eax, dword [ebx]
jmp 0x52edff
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52ede0
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52ee11
test ebx, ebx
je 0x52ee0c
mov eax, dword [ebx]
jmp 0x52ee0e
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52ee19
mov eax, dword [ebx]
jmp 0x52ee1b
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 0x52ee36
call fcn.00615e0c
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52ee62
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
inc esi
cmp esi, ecx
ja 0x52ee6f
test edi, edi
je 0x52ee68
mov edi, dword [edi]
jmp 0x52ee6a
mov eax, dword [edi]
mov ecx, eax
jmp 0x52ee4f
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52ee74
call fcn.00615e0c
test ebx, ebx
jne 0x52ee98
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52ee90
call fcn.00615e0c
test ebx, ebx
je 0x52ee9e
mov eax, dword [ebx]
jmp 0x52eea0
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52ee81
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52eeb2
test ebx, ebx
je 0x52eead
mov eax, dword [ebx]
jmp 0x52eeaf
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52eeba
mov eax, dword [ebx]
jmp 0x52eebc
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 0x52ef1d
call fcn.00615e0c
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52ef48
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
ja 0x52ef55
test edi, edi
je 0x52ef4e
mov edi, dword [edi]
jmp 0x52ef50
mov eax, dword [edi]
mov ecx, eax
jmp 0x52ef36
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52ef5a
call fcn.00615e0c
test ebx, ebx
jne 0x52ef7e
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52ef76
call fcn.00615e0c
test ebx, ebx
je 0x52ef84
mov eax, dword [ebx]
jmp 0x52ef86
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52ef67
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52ef98
test ebx, ebx
je 0x52ef93
mov eax, dword [ebx]
jmp 0x52ef95
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52efa0
mov eax, dword [ebx]
jmp 0x52efa2
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 [0x6766e0]
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 [0x68bbf0]
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 [0x6762a8]
fnstsw ax
test ah, 1
jne 0x52fb83
fld dword [esp + 0x20]
fld dword [esp + 0x40]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x52f83d
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
jge 0x52f83f
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 0x52f318
call fcn.00615e0c
mov esi, dword [esi]
mov ebx, esi
mov dword [esp + 0x48], edi
test esi, esi
jne 0x52f345
call fcn.00615e0c
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 0x52f352
test esi, esi
je 0x52f34b
mov esi, dword [esi]
jmp 0x52f34d
mov eax, dword [esi]
mov ecx, eax
jmp 0x52f32d
xor esi, esi
cmp edi, dword [esi + 0x18]
jae 0x52f357
call fcn.00615e0c
test ebx, ebx
jne 0x52f37b
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x52f373
call fcn.00615e0c
test ebx, ebx
je 0x52f381
mov eax, dword [ebx]
jmp 0x52f383
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52f364
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x52f395
test ebx, ebx
je 0x52f390
mov eax, dword [ebx]
jmp 0x52f392
xor eax, eax
sub edi, dword [eax + 0x14]
test ebx, ebx
je 0x52f39d
mov eax, dword [ebx]
jmp 0x52f39f
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 0x52f3ba
call fcn.00615e0c
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52f3ed
call fcn.00615e0c
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 0x52f3fa
test edi, edi
je 0x52f3f3
mov edi, dword [edi]
jmp 0x52f3f5
mov eax, dword [edi]
mov ecx, eax
jmp 0x52f3d3
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52f3ff
call fcn.00615e0c
test ebx, ebx
jne 0x52f423
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52f41b
call fcn.00615e0c
test ebx, ebx
je 0x52f429
mov eax, dword [ebx]
jmp 0x52f42b
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52f40c
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52f43d
test ebx, ebx
je 0x52f438
mov eax, dword [ebx]
jmp 0x52f43a
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52f445
mov eax, dword [ebx]
jmp 0x52f447
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 0x52f490
call fcn.00615e0c
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52f4bd
call fcn.00615e0c
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 0x52f4ca
test edi, edi
je 0x52f4c3
mov edi, dword [edi]
jmp 0x52f4c5
mov eax, dword [edi]
mov ecx, eax
jmp 0x52f4a5
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52f4cf
call fcn.00615e0c
test ebx, ebx
jne 0x52f4f3
call fcn.00615e0c
xor eax, eax
xor ecx, ecx
mov edx, dword [eax + 0x18]
add edx, dword [ecx + 0x1c]
cmp esi, edx
jb 0x52f4eb
call fcn.00615e0c
test ebx, ebx
je 0x52f4f9
mov eax, dword [ebx]
jmp 0x52f4fb
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52f4dc
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52f50d
test ebx, ebx
je 0x52f508
mov eax, dword [ebx]
jmp 0x52f50a
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52f515
mov eax, dword [ebx]
jmp 0x52f517
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 [0x6766e0]
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 [0x68bbf0]
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 0x52f2ea
fstp st(0)
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x3c]
jg 0x52fb81
fsub dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
push 0
mov ecx, edi
fstp dword [esp + 0x48]
call fcn.0052d310
fld dword [eax]
mov esi, dword [esp + 0x38]
fadd dword [esp + 0x20]
fdiv dword [esi + 0x60]
fcomp qword [0x6762a8]
fnstsw ax
test ah, 0x41
jne 0x52f8a9
push 0
mov ecx, edi
call fcn.0052d310
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 0x52f965
fstp st(1)
fstp st(0)
push 0
mov ecx, edi
call fcn.0052d310
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 0x52f95d
fstp st(1)
push 0
mov ecx, edi
fstp st(0)
call fcn.0052d310
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 0x52f935
fld dword [esp + 0x18]
fsubr st(3)
fmul st(0), st(0)
fdiv qword [0x68bbe8]
fsub qword [0x680438]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x52f92a
fcom st(3)
fnstsw ax
test ah, 5
jp 0x52f96b
fstp st(3)
fcom st(2)
fnstsw ax
test ah, 5
jnp 0x52f96d
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 0x52f971
fstp st(0)
mov eax, 0xff
jmp 0x52f9bc
fld st(1)
fld1
fxch st(3)
jmp 0x52f8f6
fld st(1)
fldz
jmp 0x52f8f6
fstp st(0)
fstp st(0)
jmp 0x52f937
fldz
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x52f982
fstp st(0)
xor eax, eax
jmp 0x52f9bc
fmul qword [0x676650]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
fadd qword [0x676648]
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.0052e660
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 0x52f2d5
jmp 0x52fb83
fstp st(0)
mov eax, dword [esp + 0x4c]
inc eax
cmp eax, 1
mov dword [esp + 0x4c], eax
jle 0x52e7f0
mov ebp, dword [esp + 0x38]
mov edi, dword [ebp + 0x58]
add ebp, 0x48
cmp dword [ebp + 0xc], edi
jbe 0x52fba9
call fcn.00615e0c
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp]
cmp esi, dword [ebp + 0x10]
jbe 0x52fbb9
call fcn.00615e0c
mov eax, dword [ebp]
push edi
push ebx
push esi
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.0052d480
mov esi, dword [esp + 0xa4]
cmp esi, dword [esp + 0xa8]
jbe 0x52fbe1
call fcn.00615e0c
mov eax, dword [esp + 0x258]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x44], edx
mov edi, eax
cmp eax, dword [esp + 0x25c]
jbe 0x52fc03
call fcn.00615e0c
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
jmp 0x52fc20
mov ebx, dword [esp + 0xa8]
cmp dword [esp + 0xa4], ebx
jbe 0x52fc35
call fcn.00615e0c
mov edi, dword [esp + 0x44]
test edi, edi
je 0x52fc46
cmp edi, dword [esp + 0x98]
je 0x52fc4b
call fcn.00615e0c
cmp esi, ebx
je 0x52fce2
test edi, edi
jne 0x52fcd2
call fcn.00615e0c
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x52fc68
call fcn.00615e0c
push esi
mov ecx, ebp
call fcn.0052e660
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x52fcd6
call fcn.00615e0c
xor eax, eax
mov ebx, dword [esp + 0x30]
cmp ebx, dword [eax + 0x10]
jb 0x52fc8d
call fcn.00615e0c
push ebx
mov ecx, ebp
call fcn.0052e660
test edi, edi
jne 0x52fcda
call fcn.00615e0c
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x52fcaa
call fcn.00615e0c
mov eax, dword [esp + 0x2c]
add esi, 0x18
test eax, eax
jne 0x52fcde
call fcn.00615e0c
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x52fcc6
call fcn.00615e0c
add ebx, 0x18
mov dword [esp + 0x30], ebx
jmp 0x52fc20
mov eax, dword [edi]
jmp 0x52fc5e
mov eax, dword [eax]
jmp 0x52fc7f
mov eax, dword [edi]
jmp 0x52fca0
mov eax, dword [eax]
jmp 0x52fcbc
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x52fcf6
push eax
call fcn.00613a18
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.00613a18
mov eax, dword [esp + 0x25c]
add esp, 4
cmp eax, esi
je 0x52fd31
push eax
call fcn.00613a18
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.00613a18
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