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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6626f6
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x19e8
call fcn.00614720
push ebx
push ebp
push esi
push edi
mov eax, dword [0x705e7c]
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 0x52caa5
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.0051acc0
lea ecx, [esp + 0x98]
mov dword [esp + 0x1a08], ebx
call fcn.0051acc0
fld dword [esi + 0x60]
lea edi, [esi + 0x28]
fstp qword [esp + 0x2c]
mov ecx, edi
mov byte [esp + 0x1a08], 1
call fcn.0059b5f0
fld dword [eax]
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x52caef
fld dword [esi + 0x60]
jmp 0x52caf8
mov ecx, edi
call fcn.0059b5f0
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 [0x674618]
fld1
je 0x52cb57
mov eax, dword [esp + 0x38]
add eax, 0x28
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x64], eax
jmp 0x52cb6d
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 0x52cee3
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 0x52cb99
call fcn.006121a6
mov esi, dword [ebp]
mov ebx, esi
mov dword [esp + 0x30], edi
test esi, esi
jne 0x52cbc9
call fcn.006121a6
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 0x52cbd6
test esi, esi
je 0x52cbcf
mov esi, dword [esi]
jmp 0x52cbd1
mov eax, dword [esi]
mov ecx, eax
jmp 0x52cbaf
xor esi, esi
cmp edi, dword [esi + 0x18]
jae 0x52cbdb
call fcn.006121a6
test ebx, ebx
jne 0x52cbff
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x52cbf7
call fcn.006121a6
test ebx, ebx
je 0x52cc05
mov eax, dword [ebx]
jmp 0x52cc07
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52cbe8
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x52cc19
test ebx, ebx
je 0x52cc14
mov eax, dword [ebx]
jmp 0x52cc16
xor eax, eax
sub edi, dword [eax + 0x14]
test ebx, ebx
je 0x52cc21
mov eax, dword [ebx]
jmp 0x52cc23
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 0x52cc3e
call fcn.006121a6
mov edi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52cc6c
call fcn.006121a6
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 0x52cc79
test edi, edi
je 0x52cc72
mov edi, dword [edi]
jmp 0x52cc74
mov eax, dword [edi]
mov ecx, eax
jmp 0x52cc54
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52cc7e
call fcn.006121a6
test ebx, ebx
jne 0x52cca2
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52cc9a
call fcn.006121a6
test ebx, ebx
je 0x52cca8
mov eax, dword [ebx]
jmp 0x52ccaa
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52cc8b
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52ccbc
test ebx, ebx
je 0x52ccb7
mov eax, dword [ebx]
jmp 0x52ccb9
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52ccc4
mov eax, dword [ebx]
jmp 0x52ccc6
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 0x52ccf0
call fcn.006121a6
mov edi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52cd1e
call fcn.006121a6
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 0x52cd2b
test edi, edi
je 0x52cd24
mov edi, dword [edi]
jmp 0x52cd26
mov eax, dword [edi]
mov ecx, eax
jmp 0x52cd06
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52cd30
call fcn.006121a6
test ebx, ebx
jne 0x52cd54
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52cd4c
call fcn.006121a6
test ebx, ebx
je 0x52cd5a
mov eax, dword [ebx]
jmp 0x52cd5c
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52cd3d
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52cd6e
test ebx, ebx
je 0x52cd69
mov eax, dword [ebx]
jmp 0x52cd6b
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52cd76
mov eax, dword [ebx]
jmp 0x52cd78
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 0x52cd93
call fcn.006121a6
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52cdc6
call fcn.006121a6
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 0x52cdd3
test edi, edi
je 0x52cdcc
mov edi, dword [edi]
jmp 0x52cdce
mov eax, dword [edi]
mov ecx, eax
jmp 0x52cdac
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52cddc
call fcn.006121a6
mov edx, dword [esp + 0x18]
test ebx, ebx
jne 0x52ce08
call fcn.006121a6
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 0x52ce00
call fcn.006121a6
mov edx, dword [esp + 0x18]
test ebx, ebx
je 0x52ce0e
mov eax, dword [ebx]
jmp 0x52ce10
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52cded
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52ce22
test ebx, ebx
je 0x52ce1d
mov eax, dword [ebx]
jmp 0x52ce1f
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52ce2a
mov eax, dword [ebx]
jmp 0x52ce2c
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 [0x6746a8]
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 0x52cb84
fld qword [0x674618]
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 0x52cf37
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 0x52cf14
fld dword [0x674240]
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 0x52cff3
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 [0x6746a0]
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 0x52cf98
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 [0x674698]
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 0x52d0b9
lea eax, [ecx + ecx*2]
lea eax, [esp + eax*4 + 0x290]
jmp 0x52d050
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 0x52d050
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 0x52d0d6
call fcn.006121a6
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52d101
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
ja 0x52d10e
test edi, edi
je 0x52d107
mov edi, dword [edi]
jmp 0x52d109
mov eax, dword [edi]
mov ecx, eax
jmp 0x52d0ef
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52d113
call fcn.006121a6
test ebx, ebx
jne 0x52d137
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52d12f
call fcn.006121a6
test ebx, ebx
je 0x52d13d
mov eax, dword [ebx]
jmp 0x52d13f
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52d120
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52d151
test ebx, ebx
je 0x52d14c
mov eax, dword [ebx]
jmp 0x52d14e
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52d159
mov eax, dword [ebx]
jmp 0x52d15b
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 0x52d176
call fcn.006121a6
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x30], esi
test edi, edi
jne 0x52d1a2
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
inc esi
cmp esi, ecx
ja 0x52d1af
test edi, edi
je 0x52d1a8
mov edi, dword [edi]
jmp 0x52d1aa
mov eax, dword [edi]
mov ecx, eax
jmp 0x52d18f
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52d1b4
call fcn.006121a6
test ebx, ebx
jne 0x52d1d8
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52d1d0
call fcn.006121a6
test ebx, ebx
je 0x52d1de
mov eax, dword [ebx]
jmp 0x52d1e0
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52d1c1
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52d1f2
test ebx, ebx
je 0x52d1ed
mov eax, dword [ebx]
jmp 0x52d1ef
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52d1fa
mov eax, dword [ebx]
jmp 0x52d1fc
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 0x52d25d
call fcn.006121a6
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52d288
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
ja 0x52d295
test edi, edi
je 0x52d28e
mov edi, dword [edi]
jmp 0x52d290
mov eax, dword [edi]
mov ecx, eax
jmp 0x52d276
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52d29a
call fcn.006121a6
test ebx, ebx
jne 0x52d2be
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52d2b6
call fcn.006121a6
test ebx, ebx
je 0x52d2c4
mov eax, dword [ebx]
jmp 0x52d2c6
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52d2a7
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52d2d8
test ebx, ebx
je 0x52d2d3
mov eax, dword [ebx]
jmp 0x52d2d5
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52d2e0
mov eax, dword [ebx]
jmp 0x52d2e2
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 [0x6746a8]
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 [0x6890d8]
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 [0x674288]
fnstsw ax
test ah, 1
jne 0x52dec3
fld dword [esp + 0x20]
fld dword [esp + 0x40]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x52db7d
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
jge 0x52db7f
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 0x52d658
call fcn.006121a6
mov esi, dword [esi]
mov ebx, esi
mov dword [esp + 0x48], edi
test esi, esi
jne 0x52d685
call fcn.006121a6
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 0x52d692
test esi, esi
je 0x52d68b
mov esi, dword [esi]
jmp 0x52d68d
mov eax, dword [esi]
mov ecx, eax
jmp 0x52d66d
xor esi, esi
cmp edi, dword [esi + 0x18]
jae 0x52d697
call fcn.006121a6
test ebx, ebx
jne 0x52d6bb
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x52d6b3
call fcn.006121a6
test ebx, ebx
je 0x52d6c1
mov eax, dword [ebx]
jmp 0x52d6c3
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52d6a4
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x52d6d5
test ebx, ebx
je 0x52d6d0
mov eax, dword [ebx]
jmp 0x52d6d2
xor eax, eax
sub edi, dword [eax + 0x14]
test ebx, ebx
je 0x52d6dd
mov eax, dword [ebx]
jmp 0x52d6df
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 0x52d6fa
call fcn.006121a6
mov edx, dword [esp + 0x1c]
mov edi, dword [edx]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52d72d
call fcn.006121a6
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 0x52d73a
test edi, edi
je 0x52d733
mov edi, dword [edi]
jmp 0x52d735
mov eax, dword [edi]
mov ecx, eax
jmp 0x52d713
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52d73f
call fcn.006121a6
test ebx, ebx
jne 0x52d763
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
jb 0x52d75b
call fcn.006121a6
test ebx, ebx
je 0x52d769
mov eax, dword [ebx]
jmp 0x52d76b
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52d74c
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52d77d
test ebx, ebx
je 0x52d778
mov eax, dword [ebx]
jmp 0x52d77a
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52d785
mov eax, dword [ebx]
jmp 0x52d787
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 0x52d7d0
call fcn.006121a6
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, edi
mov dword [esp + 0x48], esi
test edi, edi
jne 0x52d7fd
call fcn.006121a6
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 0x52d80a
test edi, edi
je 0x52d803
mov edi, dword [edi]
jmp 0x52d805
mov eax, dword [edi]
mov ecx, eax
jmp 0x52d7e5
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x52d80f
call fcn.006121a6
test ebx, ebx
jne 0x52d833
call fcn.006121a6
xor eax, eax
xor ecx, ecx
mov edx, dword [eax + 0x18]
add edx, dword [ecx + 0x1c]
cmp esi, edx
jb 0x52d82b
call fcn.006121a6
test ebx, ebx
je 0x52d839
mov eax, dword [ebx]
jmp 0x52d83b
mov eax, dword [ebx]
mov ecx, eax
jmp 0x52d81c
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x52d84d
test ebx, ebx
je 0x52d848
mov eax, dword [ebx]
jmp 0x52d84a
xor eax, eax
sub esi, dword [eax + 0x14]
test ebx, ebx
je 0x52d855
mov eax, dword [ebx]
jmp 0x52d857
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 [0x6746a8]
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 [0x6890d8]
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 0x52d62a
fstp st(0)
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x3c]
jg 0x52dec1
fsub dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
push 0
mov ecx, edi
fstp dword [esp + 0x48]
call fcn.0052b700
fld dword [eax]
mov esi, dword [esp + 0x38]
fadd dword [esp + 0x20]
fdiv dword [esi + 0x60]
fcomp qword [0x674288]
fnstsw ax
test ah, 0x41
jne 0x52dbe9
push 0
mov ecx, edi
call fcn.0052b700
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 0x52dca5
fstp st(1)
fstp st(0)
push 0
mov ecx, edi
call fcn.0052b700
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 0x52dc9d
fstp st(1)
push 0
mov ecx, edi
fstp st(0)
call fcn.0052b700
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 0x52dc75
fld dword [esp + 0x18]
fsubr st(3)
fmul st(0), st(0)
fdiv qword [0x6890d0]
fsub qword [0x67e0e0]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x52dc6a
fcom st(3)
fnstsw ax
test ah, 5
jp 0x52dcab
fstp st(3)
fcom st(2)
fnstsw ax
test ah, 5
jnp 0x52dcad
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 0x52dcb1
fstp st(0)
mov eax, 0xff
jmp 0x52dcfc
fld st(1)
fld1
fxch st(3)
jmp 0x52dc36
fld st(1)
fldz
jmp 0x52dc36
fstp st(0)
fstp st(0)
jmp 0x52dc77
fldz
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x52dcc2
fstp st(0)
xor eax, eax
jmp 0x52dcfc
fmul qword [0x674620]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
fadd qword [0x674618]
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.0052c9a0
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 0x52d615
jmp 0x52dec3
fstp st(0)
mov eax, dword [esp + 0x4c]
inc eax
cmp eax, 1
mov dword [esp + 0x4c], eax
jle 0x52cb30
mov ebp, dword [esp + 0x38]
mov edi, dword [ebp + 0x58]
add ebp, 0x48
cmp dword [ebp + 0xc], edi
jbe 0x52dee9
call fcn.006121a6
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp]
cmp esi, dword [ebp + 0x10]
jbe 0x52def9
call fcn.006121a6
mov eax, dword [ebp]
push edi
push ebx
push esi
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.0052b870
mov esi, dword [esp + 0xa4]
cmp esi, dword [esp + 0xa8]
jbe 0x52df21
call fcn.006121a6
mov eax, dword [esp + 0x258]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x44], edx
mov edi, eax
cmp eax, dword [esp + 0x25c]
jbe 0x52df43
call fcn.006121a6
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
jmp 0x52df60
mov ebx, dword [esp + 0xa8]
cmp dword [esp + 0xa4], ebx
jbe 0x52df75
call fcn.006121a6
mov edi, dword [esp + 0x44]
test edi, edi
je 0x52df86
cmp edi, dword [esp + 0x98]
je 0x52df8b
call fcn.006121a6
cmp esi, ebx
je 0x52e022
test edi, edi
jne 0x52e012
call fcn.006121a6
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x52dfa8
call fcn.006121a6
push esi
mov ecx, ebp
call fcn.0052c9a0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x52e016
call fcn.006121a6
xor eax, eax
mov ebx, dword [esp + 0x30]
cmp ebx, dword [eax + 0x10]
jb 0x52dfcd
call fcn.006121a6
push ebx
mov ecx, ebp
call fcn.0052c9a0
test edi, edi
jne 0x52e01a
call fcn.006121a6
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x52dfea
call fcn.006121a6
mov eax, dword [esp + 0x2c]
add esi, 0x18
test eax, eax
jne 0x52e01e
call fcn.006121a6
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x52e006
call fcn.006121a6
add ebx, 0x18
mov dword [esp + 0x30], ebx
jmp 0x52df60
mov eax, dword [edi]
jmp 0x52df9e
mov eax, dword [eax]
jmp 0x52dfbf
mov eax, dword [edi]
jmp 0x52dfe0
mov eax, dword [eax]
jmp 0x52dffc
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x52e036
push eax
call fcn.00611358
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.00611358
mov eax, dword [esp + 0x25c]
add esp, 4
cmp eax, esi
je 0x52e071
push eax
call fcn.00611358
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.00611358
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