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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x194
fld dword [0xd9b190]
mov eax, dword [0xd9b190]
mov ecx, dword [0xd9b194]
fchs
mov edx, dword [0xd9b198]
mov dword [esp + 0x94], eax
mov eax, dword [0xd9b19c]
mov dword [esp + 0x98], ecx
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
push ebx
fchs
push esi
mov ecx, edx
mov dword [esp + 0xa4], edx
fstp dword [esp + 0xa0]
push edi
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x64], 0
mov edx, dword [esp + 0x64]
mov ebx, dword [edx + 0xd9b8c4]
test ebx, ebx
je 0x52bc52
test byte [ebx + 4], 2
jne 0x52adbd
mov eax, dword [ebx + 0x14]
xor ecx, ecx
test eax, eax
jbe 0x52bc52
mov edx, 0x3f800000
jmp 0x52ada0
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 0x48]
imul eax, ecx
lea eax, [eax + eax*8]
mov dword [esi + eax*8 + 0x1c], edx
mov eax, dword [ebx + 0x14]
inc ecx
cmp ecx, eax
jb 0x52ada0
jmp 0x52bc52
mov eax, dword [0xd9b388]
mov ecx, dword [0xd9b380]
mov edx, dword [0xd9b384]
mov dword [esp + 0x88], eax
mov eax, dword [0xd9b17c]
mov dword [esp + 0x94], eax
movzx eax, byte [ebx + 0x44]
mov dword [esp + 0x80], ecx
mov ecx, dword [0xd9b38c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [0xd9b180]
fild dword [esp + 0x24]
mov dword [esp + 0x98], ecx
fld dword [0xd9b380]
movzx ecx, byte [ebx + 0x45]
fmul st(1)
mov dword [esp + 0x84], edx
mov edx, dword [0xd9b178]
fstp dword [esp + 0x80]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x90], edx
mov edx, dword [0xd9b184]
fild dword [esp + 0x24]
mov dword [esp + 0x9c], edx
fld dword [esp + 0x84]
movzx edx, byte [ebx + 0x46]
fmul st(1)
mov dword [esp + 0x24], edx
mov ecx, dword [ebx + 0x14]
fstp dword [esp + 0x84]
xor eax, eax
cmp ecx, eax
fild dword [esp + 0x24]
mov dword [esp + 0x44], eax
fst dword [esp + 0x28]
fmul dword [esp + 0x88]
fstp dword [esp + 0x88]
fxch st(1)
fmul dword [0xd9b178]
mov dword [ebx + 0x5c], eax
fmul dword [0x8cb1a4]
fstp dword [esp + 0x90]
fmul dword [esp + 0x94]
fmul dword [0x8cb1a4]
fstp dword [esp + 0x94]
fld dword [esp + 0x28]
fmul dword [esp + 0x98]
fmul dword [0x8cb1a4]
fstp dword [esp + 0x98]
jbe 0x52bc52
lea ecx, [ecx]
mov eax, dword [ebx + 0x10]
imul eax, dword [esp + 0x44]
mov ecx, dword [ebx + 0x48]
lea eax, [eax + eax*8]
lea esi, [ecx + eax*8]
mov edx, esi
mov eax, dword [edx]
mov dword [esp + 0x110], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x114], ecx
mov edx, dword [edx + 8]
push 0x13
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], 0x40400000
call fcn.005133b0
add esp, 4
test eax, eax
jne 0x52af28
fld dword [esi]
fcomp dword [0x8cb14c]
fnstsw ax
test ah, 5
jnp 0x52af5e
push 0x12
call fcn.005133b0
add esp, 4
test eax, eax
jne 0x52af45
fld dword [esi]
fcomp dword [0x88674c]
fnstsw ax
test ah, 0x41
je 0x52af5e
push 1
lea eax, [esp + 0x114]
push eax
push 1
call fcn.0052e640
add esp, 0xc
cmp eax, 1
jne 0x52af6a
mov dword [esi + 0x1c], 0x3f800000
jmp 0x52bc3e
mov eax, dword [ebx + 0x5c]
inc eax
mov dword [ebx + 0x5c], eax
fld dword [esi + 0x1c]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jp 0x52af99
mov al, byte [0xe74d8d]
test al, al
je 0x52bc3e
test byte [ebx + 4], 1
jne 0x52afa0
jmp 0x52bc3e
mov dword [esi + 0x1c], 0
fld dword [esi + 0x24]
fcomp dword [0x870780]
fnstsw ax
test ah, 0x41
jne 0x52b0b4
fld dword [esi + 0x28]
fadd dword [esi + 0x24]
fcom dword [0x870770]
fnstsw ax
test ah, 0x41
jne 0x52afd5
fstp st(0)
fld dword [0x87076c]
fsub dword [esi + 0x28]
fsubr dword [esi + 0x24]
fstp dword [esi + 0x24]
sub esp, 8
fld dword [esi + 0x24]
fmul dword [0x87380c]
fld st(0)
fcos
fmul dword [0x885168]
fstp dword [esp + 0x20]
fsin
fmul dword [0x8caff0]
fst dword [esp + 0x18]
fmul dword [0x8caf2c]
fmul dword [0x8caf1c]
fst dword [esp + 0x30]
fstp qword [esp]
call fcn.0043ca30
fsubr dword [esp + 0x30]
add esp, 8
fcom dword [0x870774]
fnstsw ax
test ah, 0x41
jne 0x52b030
fsub dword [0x87076c]
fmul dword [0x87380c]
push ecx
lea ecx, [esp + 0x124]
fstp dword [esp]
push ecx
call fcn.00403e54
fld dword [esp + 0x18]
fmul dword [0x8caf2c]
sub esp, 8
fmul dword [0x8caf1c]
fst dword [esp + 0x30]
fstp qword [esp]
call fcn.0043ca30
fsubr dword [esp + 0x30]
add esp, 8
fcom dword [0x870774]
fnstsw ax
test ah, 0x41
jne 0x52b080
fsub dword [0x87076c]
fmul dword [0x87380c]
push ecx
lea edx, [esp + 0x164]
fstp dword [esp]
push edx
call fcn.00403f8d
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x124]
push ecx
lea edx, [esp + 0x128]
push edx
jmp 0x52b231
fld dword [esi + 0x24]
fcomp dword [0x87076c]
fld dword [esi + 0x28]
fadd dword [esi + 0x24]
fnstsw ax
test ah, 0x41
jne 0x52b182
fcom dword [0x870780]
fnstsw ax
test ah, 0x41
jne 0x52b0e9
fstp st(0)
fld dword [0x87076c]
fsub dword [esi + 0x28]
fsubr dword [esi + 0x24]
fstp dword [esi + 0x24]
push ecx
fld dword [esi + 0x24]
fmul dword [0x87380c]
fld st(0)
fcos
fmul dword [0x87183c]
fstp dword [esp + 0x1c]
fadd st(0), st(0)
fsin
fmul dword [0x8caff0]
fst dword [esp + 0x14]
fmul dword [0x8caf2c]
fstp dword [esp]
call fcn.00545780
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add esp, 4
push eax
lea ecx, [esp + 0x124]
push ecx
call fcn.00403f8d
fld dword [esp + 0x18]
fmul dword [0x8caf2c]
push ecx
fstp dword [esp]
call fcn.00545780
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
add esp, 4
push edx
lea eax, [esp + 0x164]
push eax
call fcn.00403e54
lea ecx, [esp + 0x160]
push ecx
lea edx, [esp + 0x124]
push edx
lea eax, [esp + 0x128]
push eax
jmp 0x52b231
fcom dword [0x87076c]
fnstsw ax
test ah, 0x41
jne 0x52b19d
fstp st(0)
fld dword [0x87076c]
fsub dword [esi + 0x28]
fsubr dword [esi + 0x24]
fstp dword [esi + 0x24]
push ecx
fld dword [esi + 0x24]
fmul dword [0x87380c]
fld st(0)
fcos
fmul dword [0x87183c]
fstp dword [esp + 0x1c]
fadd st(0), st(0)
fsin
fmul dword [0x8caff0]
fst dword [esp + 0x14]
fmul dword [0x8caf2c]
fstp dword [esp]
call fcn.00545780
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
add esp, 4
push ecx
lea edx, [esp + 0x124]
push edx
call fcn.00403e54
fld dword [esp + 0x18]
fmul dword [0x8caf2c]
push ecx
fstp dword [esp]
call fcn.00545780
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add esp, 4
push eax
lea ecx, [esp + 0x164]
push ecx
call fcn.00403f8d
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x128]
push ecx
call fcn.00403485
fld dword [esp + 0x130]
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
fmul dword [ebx + 0x60]
mov eax, dword [ebx + 0x20]
dec eax
imul eax, dword [ebx + 0x1c]
lea edx, [eax + eax*8]
lea ecx, [esi + edx*8]
mov edx, 1
fadd dword [esi + 0x2c]
fstp dword [ecx]
fld dword [esp + 0x14]
fmul dword [ebx + 0x60]
fadd dword [esi + 0x30]
fstp dword [ecx + 4]
fld dword [esp + 0x18]
fmul dword [ebx + 0x60]
fadd dword [esi + 0x34]
fstp dword [ecx + 8]
fld dword [esp + 0x10]
fmul dword [ebx + 0x64]
fadd dword [esi + 0x2c]
fstp dword [esi]
fld dword [esp + 0x14]
fmul dword [ebx + 0x64]
fadd dword [esi + 0x30]
fstp dword [esi + 4]
fld dword [esp + 0x18]
fmul dword [ebx + 0x64]
fadd dword [esi + 0x34]
fstp dword [esi + 8]
mov eax, dword [ebx + 0x20]
dec eax
cmp eax, edx
jbe 0x52b330
test edx, edx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jge 0x52b2d3
fadd dword [0x87079c]
mov eax, dword [ebx + 0x20]
dec eax
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x52b2e9
fadd dword [0x87079c]
fdivp st(1)
mov eax, dword [ebx + 0x1c]
fld dword [0x87076c]
imul eax, edx
fsub st(1)
fld st(0)
fmul dword [esi]
fld st(2)
lea eax, [eax + eax*8]
fmul dword [ecx]
lea eax, [esi + eax*8]
faddp st(1)
inc edx
fstp dword [eax]
fld st(0)
fmul dword [esi + 4]
fld st(2)
fmul dword [ecx + 4]
faddp st(1)
fstp dword [eax + 4]
fmul dword [esi + 8]
fxch st(1)
fmul dword [ecx + 8]
faddp st(1)
fstp dword [eax + 8]
mov eax, dword [ebx + 0x20]
dec eax
cmp edx, eax
jb 0x52b2c1
mov ecx, dword [ebx + 0x10]
xor eax, eax
test ecx, ecx
jbe 0x52b391
lea esp, [esp]
cmp esi, dword [esi + 0x38]
je 0x52b386
fld dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
fmul dword [0x8cb1a0]
fst dword [esi + 0x10]
fld dword [esi + 0x18]
fmul dword [0x8cb1a0]
fst dword [esi + 0x18]
fld dword [esi + 0x14]
fmul dword [0x8cb1a0]
fsub dword [str._n_33]
fst dword [esi + 0x14]
fxch st(2)
fadd dword [ecx]
fstp dword [esi]
fxch st(1)
fadd dword [ecx + 4]
fstp dword [esi + 4]
fadd dword [ecx + 8]
fstp dword [esi + 8]
mov ecx, dword [ebx + 0x10]
inc eax
add esi, 0x48
cmp eax, ecx
jb 0x52b340
mov eax, dword [ebx + 0x1c]
xor esi, esi
test eax, eax
jbe 0x52b59f
mov edi, edi
mov eax, dword [ebx + 0x20]
xor edx, edx
test eax, eax
jbe 0x52b593
lea ecx, [ecx]
mov ecx, dword [ebx + 0x10]
imul ecx, dword [esp + 0x44]
mov eax, dword [ebx + 0x1c]
imul eax, edx
mov edi, esi
add edi, ecx
mov ecx, dword [ebx + 0x48]
add eax, edi
lea eax, [eax + eax*8]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0x38]
cmp ecx, eax
je 0x52b587
fld dword [eax]
fsub dword [ecx]
fstp dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
fld dword [eax + 4]
fsub dword [ecx + 4]
fstp dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
fld dword [eax + 8]
fsub dword [ecx + 8]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fsqrt
fst dword [esp + 0x2c]
fcomp dword [ebx + 0x24]
fnstsw ax
test ah, 0x44
jnp 0x52b4aa
fld dword [esp + 0x2c]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52b4aa
fld dword [esp + 0x2c]
fsub dword [ebx + 0x24]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fld dword [esp + 0x10]
fadd dword [ecx + 0x10]
fstp dword [ecx + 0x10]
fld dword [esp + 0x14]
fadd dword [ecx + 0x14]
fstp dword [ecx + 0x14]
fld dword [esp + 0x18]
fadd dword [ecx + 0x18]
fstp dword [ecx + 0x18]
fld dword [esp + 0x10]
fadd dword [ecx]
fstp dword [ecx]
fld dword [esp + 0x14]
fadd dword [ecx + 4]
fstp dword [ecx + 4]
fld dword [esp + 0x18]
fadd dword [ecx + 8]
fstp dword [ecx + 8]
mov eax, dword [ecx + 0x40]
cmp ecx, eax
je 0x52b587
fld dword [eax]
fsub dword [ecx]
fstp dword [esp + 0x10]
mov eax, dword [ecx + 0x40]
fld dword [eax + 4]
fsub dword [ecx + 4]
fstp dword [esp + 0x14]
mov eax, dword [ecx + 0x40]
fld dword [eax + 8]
fsub dword [ecx + 8]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fsqrt
fst dword [esp + 0x2c]
fcomp dword [ebx + 0x28]
fnstsw ax
test ah, 0x44
jnp 0x52b587
fld dword [esp + 0x2c]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52b587
fld dword [esp + 0x2c]
fsub dword [ebx + 0x28]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fld dword [esp + 0x10]
fadd dword [ecx + 0x10]
fstp dword [ecx + 0x10]
fld dword [esp + 0x14]
fadd dword [ecx + 0x14]
fstp dword [ecx + 0x14]
fld dword [esp + 0x18]
fadd dword [ecx + 0x18]
fstp dword [ecx + 0x18]
fld dword [esp + 0x10]
fadd dword [ecx]
fstp dword [ecx]
fld dword [esp + 0x14]
fadd dword [ecx + 4]
fstp dword [ecx + 4]
fld dword [esp + 0x18]
fadd dword [ecx + 8]
fstp dword [ecx + 8]
mov eax, dword [ebx + 0x20]
inc edx
cmp edx, eax
jb 0x52b3b0
mov eax, dword [ebx + 0x1c]
inc esi
cmp esi, eax
jb 0x52b3a0
mov edx, dword [ebx + 0x10]
mov eax, edx
imul eax, dword [esp + 0x44]
lea ecx, [eax + eax*8]
mov eax, dword [ebx + 0x48]
xor esi, esi
test edx, edx
lea ecx, [eax + ecx*8]
jbe 0x52b61a
cmp ecx, dword [ecx + 0x38]
jne 0x52b5d4
mov eax, dword [ecx + 0xc]
mov edx, ecx
mov edi, dword [edx]
mov dword [eax], edi
mov edi, dword [edx + 4]
mov dword [eax + 4], edi
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
jmp 0x52b60f
fld dword [ecx + 4]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 5
jp 0x52b5ed
fld dword [ecx + 0x14]
fsub dword [ecx + 4]
fstp dword [ecx + 0x14]
mov eax, dword [ecx + 0xc]
fld dword [ecx + 0x10]
fadd dword [eax]
fstp dword [eax]
mov eax, dword [ecx + 0xc]
fld dword [ecx + 0x14]
fadd dword [eax + 4]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
fld dword [ecx + 0x18]
fadd dword [eax + 8]
fstp dword [eax + 8]
mov eax, dword [ebx + 0x10]
inc esi
add ecx, 0x48
cmp esi, eax
jb 0x52b5b8
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x18]
mov edx, dword [esp + 0x44]
imul eax, ecx
mov esi, dword [ebx + 0x4c]
imul eax, edx
imul ecx, edx
mov edx, dword [ebx + 0x48]
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
lea ecx, [ecx + ecx*8]
mov dword [esp + 0x48], eax
lea eax, [edx + ecx*8]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0x20]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x9c]
push eax
lea esi, [esp + 0xc4]
lea edi, [esp + 0xb4]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
call fcn.00529b10
mov eax, dword [ebx + 0x10]
add esp, 4
test eax, eax
mov dword [esp + 0x24], 0
jbe 0x52bc3e
mov eax, dword [ebx + 0x10]
mov esi, dword [esp + 0x28]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x48]
lea edx, [eax + ecx*8]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, esi
je 0x52b82e
mov edx, dword [esi + 0x44]
cmp edx, esi
je 0x52b82e
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0xc]
mov edx, dword [edx + 0xc]
fld dword [eax]
fsub dword [edx]
fld dword [eax + 4]
fsub dword [edx + 4]
fld dword [eax + 8]
fsub dword [edx + 8]
fld dword [ecx]
fsub dword [eax]
fstp dword [esp + 0xf0]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0xf4]
fld dword [ecx + 8]
fsub dword [eax + 8]
fld st(0)
fmul st(3)
fld dword [esp + 0xf4]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
fld dword [esp + 0xf0]
mov dword [esp + 0x10], ecx
fmul st(2)
fxch st(1)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x14], edx
fstp st(0)
fld dword [esp + 0xf4]
fmul st(2)
fld dword [esp + 0xf0]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
fstp st(0)
fstp st(0)
fld dword [esp + 0x70]
fmul dword [esp + 0x70]
fld dword [esp + 0x6c]
fmul dword [esp + 0x6c]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [esp + 0x68]
faddp st(1)
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52b82e
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00402c01
fld dword [esp + 0x30]
fadd dword [esp + 0x10]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fadd dword [esp + 0x14]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [esp + 0x18]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x3c]
mov edx, dword [esi + 0x3c]
cmp edx, esi
je 0x52b93f
mov eax, dword [esi + 0x44]
cmp eax, esi
je 0x52b93f
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0xc]
mov edx, dword [edx + 0xc]
fld dword [eax]
fsub dword [edx]
fld dword [eax + 4]
fsub dword [edx + 4]
fld dword [eax + 8]
fsub dword [edx + 8]
fld dword [ecx]
fsub dword [eax]
fstp dword [esp + 0x100]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x104]
fld dword [ecx + 8]
fsub dword [eax + 8]
fld st(0)
fmul st(3)
fld dword [esp + 0x104]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x58]
fld dword [esp + 0x100]
mov dword [esp + 0x10], eax
fmul st(2)
fxch st(1)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], ecx
fstp st(0)
fld dword [esp + 0x104]
fmul st(2)
fld dword [esp + 0x100]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x60]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x18], edx
fstp st(0)
fstp st(0)
fld dword [esp + 0x60]
fmul dword [esp + 0x60]
fld dword [esp + 0x5c]
fmul dword [esp + 0x5c]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [esp + 0x58]
faddp st(1)
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52b93f
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.00402c01
fld dword [esp + 0x30]
fadd dword [esp + 0x10]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fadd dword [esp + 0x14]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [esp + 0x18]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x3c]
mov eax, dword [esi + 0x3c]
cmp eax, esi
je 0x52ba50
mov edx, dword [esi + 0x40]
cmp edx, esi
je 0x52ba50
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0xc]
mov edx, dword [edx + 0xc]
fld dword [eax]
fsub dword [edx]
fld dword [eax + 4]
fsub dword [edx + 4]
fld dword [eax + 8]
fsub dword [edx + 8]
fld dword [ecx]
fsub dword [eax]
fstp dword [esp + 0xd0]
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0xd4]
fld dword [ecx + 8]
fsub dword [eax + 8]
fld st(0)
fmul st(3)
fld dword [esp + 0xd4]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x74]
mov edx, dword [esp + 0x74]
fld dword [esp + 0xd0]
mov dword [esp + 0x10], edx
fmul st(2)
fxch st(1)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x14], eax
fstp st(0)
fld dword [esp + 0xd4]
fmul st(2)
fld dword [esp + 0xd0]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
fstp st(0)
fstp st(0)
fld dword [esp + 0x7c]
fmul dword [esp + 0x7c]
fld dword [esp + 0x78]
fmul dword [esp + 0x78]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [esp + 0x74]
faddp st(1)
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52ba50
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x14]
push eax
call fcn.00402c01
fld dword [esp + 0x30]
fadd dword [esp + 0x10]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fadd dword [esp + 0x14]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [esp + 0x18]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x3c]
mov ecx, dword [esi + 0x38]
cmp ecx, esi
je 0x52bb61
mov eax, dword [esi + 0x40]
cmp eax, esi
je 0x52bb61
mov esi, dword [esi + 0xc]
mov ecx, dword [ecx + 0xc]
fld dword [esi]
fsub dword [ecx]
mov eax, dword [eax + 0xc]
fld dword [esi + 4]
fsub dword [ecx + 4]
fld dword [esi + 8]
fsub dword [ecx + 8]
fld dword [eax]
fsub dword [esi]
fstp dword [esp + 0xe0]
fld dword [eax + 4]
fsub dword [esi + 4]
fstp dword [esp + 0xe4]
fld dword [eax + 8]
fsub dword [esi + 8]
fld st(0)
fmul st(3)
fld dword [esp + 0xe4]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
fld dword [esp + 0xe0]
mov dword [esp + 0x10], ecx
fmul st(2)
fxch st(1)
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], edx
fstp st(0)
fld dword [esp + 0xe4]
fmul st(2)
fld dword [esp + 0xe0]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
fstp st(0)
fstp st(0)
fld dword [esp + 0x54]
fmul dword [esp + 0x54]
fld dword [esp + 0x50]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0x4c]
fmul dword [esp + 0x4c]
faddp st(1)
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52bb61
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00402c01
fld dword [esp + 0x30]
fadd dword [esp + 0x10]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fadd dword [esp + 0x14]
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [esp + 0x18]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
fld dword [esp + 0x34]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
faddp st(1)
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x52bb99
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.00402c01
fld dword [esp + 0xa8]
mov eax, dword [esp + 0x48]
fmul dword [esp + 0x38]
add eax, 0xc
fld dword [esp + 0xa4]
lea esi, [esp + 0xb0]
fmul dword [esp + 0x34]
lea edi, [esp + 0xc0]
faddp st(1)
fld dword [esp + 0xa0]
fmul dword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
push edx
push eax
call fcn.00529d50
fld dword [esp + 0x34]
mov eax, dword [ebx + 0x10]
fchs
mov edx, dword [esp + 0x50]
fstp dword [esp + 4]
lea ecx, [eax + eax*2]
add esp, 4
lea eax, [edx + ecx*8 + 0xc]
push eax
lea esi, [esp + 0xb8]
lea edi, [esp + 0xc8]
call fcn.00529d50
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 0x10]
add esp, 8
inc eax
add esi, 0x18
add edx, 0x48
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x28], edx
jb 0x52b6e4
mov eax, dword [esp + 0x44]
mov ecx, dword [ebx + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jb 0x52aed0
mov eax, dword [esp + 0x64]
add eax, 4
cmp eax, 8
mov dword [esp + 0x64], eax
jb 0x52ad71
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret