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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb4
mov eax, dword [0xe74894]
cmp eax, 4
push ebx
push esi
push edi
mov dword [esp + 0x1c], 0
mov edi, 0xd9b3d0
mov dword [esp + 0x34], eax
jbe 0x528582
mov dword [esp + 0x34], 4
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x528590
mov esi, dword [eax + 0xd9b880]
test esi, esi
je 0x528773
test byte [esi + 4], 2
je 0x528773
lea eax, [esi + 0x2c]
mov ecx, dword [eax]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 4]
push 2
lea ecx, [esp + 0x64]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 8]
push ecx
push 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0x41200000
call fcn.0052e640
add esp, 0xc
cmp eax, 1
je 0x528773
mov eax, dword [esi + 0x48]
fld dword [esi + 0x2c]
mov edx, dword [eax + 0xc]
fchs
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x70], edx
lea edx, [ecx + ecx*8]
mov edx, dword [eax + edx*8 - 0x3c]
fmul dword [0x8850c0]
mov dword [esp + 0x74], edx
mov edx, dword [esi + 0x20]
fstp dword [esp + 0x40]
fld dword [esi + 0x30]
lea ebx, [edx - 1]
imul edx, ecx
imul ebx, ecx
lea ebx, [ebx + ebx*8]
mov ebx, dword [eax + ebx*8 + 0xc]
fchs
fmul dword [0x8850c0]
lea ecx, [edx + edx*8]
mov edx, dword [eax + ecx*8 - 0x3c]
mov eax, dword [esp + 0x34]
test eax, eax
fstp dword [esp + 0x44]
fld dword [esi + 0x34]
mov dword [esp + 0x78], ebx
fmul dword [0x8850c0]
mov dword [esp + 0x7c], edx
fstp dword [esp + 0x48]
jbe 0x528773
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x18], 0xe74660
mov ebx, 0xe749d8
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
lea ecx, [ecx]
mov eax, dword [ebx - 0x14]
test eax, eax
jne 0x528681
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
jmp 0x5286d7
fld dword [esp + 0x40]
push 0
fsub dword [ebx - 8]
push 0
push 0x3f800000
push 0
fstp dword [esp + 0x30]
lea edx, [esp + 0x30]
fld dword [esp + 0x54]
push edx
fsub dword [ebx - 4]
lea eax, [esp + 0x94]
lea ecx, [esp + 0x94]
push eax
fstp dword [esp + 0x3c]
mov dword [esp + 0x54], ecx
fld dword [esp + 0x60]
fsub dword [ebx]
fstp dword [esp + 0x40]
fld dword [esp + 0x64]
fsub dword [ebx + 4]
fstp dword [esp + 0x44]
call fcn.00424790
add esp, 0x18
xor esi, esi
lea esp, [esp]
mov eax, dword [esp + esi*4 + 0x70]
fld dword [eax]
mov ecx, dword [esp + 0x3c]
fchs
push ecx
fmul dword [0x8850c0]
lea edx, [esp + 0x24]
push edx
fstp dword [esp + 0x28]
fld dword [eax + 4]
fchs
fmul dword [0x8850c0]
fstp dword [esp + 0x2c]
fld dword [eax + 8]
lea eax, [esp + 0x28]
fmul dword [0x8850c0]
push eax
fstp dword [esp + 0x34]
call fcn.00402e73
fld dword [esp + 0x20]
fchs
inc esi
fmul dword [0x886010]
add edi, 0x18
cmp esi, 4
fstp dword [edi - 0x18]
fld dword [esp + 0x24]
fchs
fmul dword [0x886010]
fstp dword [edi - 0x14]
fld dword [esp + 0x28]
fmul dword [0x886010]
fstp dword [edi - 0x10]
jb 0x5286e0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
add ecx, 0x40
add ebx, 0x20
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], eax
jne 0x528670
mov eax, dword [esp + 0x30]
add eax, 4
cmp eax, 0xc
mov dword [esp + 0x30], eax
jb 0x528590
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x52882e
fld dword [0xe7489c]
mov byte [esp + 0x18], 0
fadd dword [0xe74898]
mov byte [esp + 0x19], 0
mov byte [esp + 0x1a], 0
call fcn.0043bd30
cmp al, 0x80
jb 0x5287be
mov byte [esp + 0x1b], 0xff
jmp 0x5287c4
shl al, 1
mov byte [esp + 0x1b], al
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x50]
push edx
mov word [esp + 0x54], 4
mov word [esp + 0x56], si
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], 0xd9b3d0
mov dword [esp + 0x60], 0
call fcn.00411a00
mov esi, eax
call fcn.00411a00
add esi, eax
push esi
call fcn.00516210
call fcn.00516280
call fcn.00517340
push 0
push 0xc000
call fcn.005172a0
call fcn.005162b0
lea eax, [esp + 0x60]
push eax
call fcn.00516f30
add esp, 0x14
call fcn.00516260
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret