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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xc0
mov edi, dword [esp + 0xd4]
lea ebx, [edi + 0x175]
mov al, byte [ebx]
shr al, 4
and al, 1
fldz
fldz
fldz
je 0x503455
fcompp
add esp, 0xc0
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
mov esi, 0x6facfc
lea eax, [edi + 0x34]
lea edx, [esi + 0x30]
fld dword [edx + 8]
fsub dword [eax + 8]
fstp st(1)
fld dword [edx + 4]
fsub dword [eax + 4]
fstp st(2)
fld dword [edx]
fsub dword [eax]
fstp st(3)
fld st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fsqrt
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fcomp dword [0x5fd8dc]
fnstsw ax
test ah, 0x45
jne 0x5034c0
fcompp
add esp, 0xc0
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x14]
fld dword [eax]
fstp dword [esp + 0x54]
fld dword [eax + 4]
fstp dword [esp + 0x58]
fld dword [eax + 8]
fstp dword [esp + 0x5c]
fcompp
lea ecx, [esp + 0x54]
fstp st(0)
call fcn.004ba560
lea eax, [esp + 0x54]
push eax
call fcn.00503c90
pop ecx
movsx ecx, word [edi + 0x5c]
mov eax, dword [ecx*4 + 0x83d408]
mov ebp, dword [eax + 0x1c]
cmp word [ebp + 0x36], 2
jl 0x503c7d
mov eax, dword [ebp + 0x4c]
fld dword [eax]
fstp dword [esp + 0x60]
fld dword [eax + 4]
fstp dword [esp + 0x64]
fld dword [eax + 8]
fstp dword [esp + 0x68]
mov eax, dword [ebp + 0x4c]
add eax, 0xc
fld dword [eax]
fstp dword [esp + 0x6c]
fld dword [eax + 4]
fstp dword [esp + 0x70]
fld dword [eax + 8]
fstp dword [esp + 0x74]
mov eax, dword [ebp + 0x4c]
add eax, 0x18
fld dword [eax]
fstp dword [esp + 0x78]
fld dword [eax + 4]
fstp dword [esp + 0x7c]
fld dword [eax + 8]
fstp dword [esp + 0x80]
mov eax, dword [ebp + 0x4c]
add eax, 0x24
fld dword [eax]
fstp dword [esp + 0x84]
fld dword [eax + 4]
fstp dword [esp + 0x88]
fld dword [eax + 8]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x94]
fstp dword [esp + 0x90]
lea edx, [edi + 4]
push edx
push eax
call fcn.004ba4d0
mov eax, dword [esp + 0x9c]
add esp, 0xc
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x94]
lea eax, [esp + 0x6c]
mov dword [esp + 0x14], ecx
lea ecx, [edi + 4]
push eax
lea eax, [esp + 0xa0]
push ecx
push eax
call fcn.004ba4d0
mov eax, dword [esp + 0xa8]
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0x78]
mov dword [esp + 0x20], edx
lea ecx, [edi + 4]
push eax
lea eax, [esp + 0xac]
push ecx
push eax
call fcn.004ba4d0
mov eax, dword [esp + 0xb4]
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xac]
lea eax, [esp + 0x84]
mov dword [esp + 0x2c], ecx
lea ecx, [edi + 4]
push eax
lea eax, [esp + 0xb8]
push ecx
push eax
call fcn.004ba4d0
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edx
mov al, byte [ebx]
add esp, 0xc
shr al, 3
and al, 1
je 0x503902
fld dword [esp + 0xc]
fcomp dword [0x5fd8b8]
fnstsw ax
mov bl, 0xff
test ah, 0x45
jne 0x5036ca
fld dword [esp + 0xc]
fsub dword [0x5fd8b8]
and ebx, 0xff
mov dword [esp + 0x48], ebx
fmul dword [0x5fd8bc]
fmul dword [0x5fd8c0]
fsubr dword [0x5fd8c4]
fimul dword [esp + 0x48]
fnstcw word [esp]
mov eax, dword [esp]
or byte [esp + 1], 0xc
fldcw word [esp]
mov dword [esp], eax
fistp dword [esp + 0x48]
fldcw word [esp]
mov bl, byte [esp + 0x48]
cmp dword [0x942fa8], 0x2f3
jge 0x5036e2
cmp dword [0x8f1ae8], 0xbb
jl 0x5036e7
call fcn.00503de0
movzx eax, bl
fld dword [esp + 0x10]
mov edx, eax
mov ebx, eax
mov ecx, eax
shl ebx, 0x10
shl edx, 0x18
shl ecx, 8
or ebx, edx
or ebx, ecx
mov ecx, dword [0x8f1ae8]
or ebx, eax
mov eax, dword [0x8f1ae8]
imul eax, eax, 0x24
add ecx, 0xffffff80
mov dword [eax + 0x862348], ebx
mov dword [eax + 0x86236c], ebx
mov dword [eax + 0x862390], ebx
mov dword [eax + 0x8623b4], ebx
mov dword [eax + 0x86234c], 0
mov dword [eax + 0x862350], 0
mov dword [eax + 0x862370], 0x41800000
mov dword [eax + 0x862374], 0
mov dword [eax + 0x862394], 0
mov dword [eax + 0x862398], 0x41800000
mov dword [eax + 0x8623b8], 0x41800000
mov dword [eax + 0x8623bc], 0x41800000
fstp dword [eax + 0x862330]
fld dword [esp + 0x14]
fstp dword [eax + 0x862334]
fld dword [esp + 0x18]
fstp dword [eax + 0x862338]
fld dword [esp + 0x1c]
fstp dword [eax + 0x862354]
fld dword [esp + 0x20]
fstp dword [eax + 0x862358]
fld dword [esp + 0x24]
fstp dword [eax + 0x86235c]
fld dword [esp + 0x28]
fstp dword [eax + 0x862378]
fld dword [esp + 0x2c]
fstp dword [eax + 0x86237c]
fld dword [esp + 0x30]
fstp dword [eax + 0x862380]
fld dword [esp + 0x34]
fstp dword [eax + 0x86239c]
fld dword [esp + 0x38]
fstp dword [eax + 0x8623a0]
fld dword [esp + 0x3c]
mov ebx, ecx
fstp dword [eax + 0x8623a4]
mov edx, dword [ebp + 0x50]
mov eax, dword [0x942fa8]
add bx, word [edx]
mov word [eax*2 + 0x846288], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 2]
mov word [eax*2 + 0x84628a], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 4]
mov word [eax*2 + 0x84628c], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 8]
mov word [eax*2 + 0x84628e], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 0xa]
mov word [eax*2 + 0x846290], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 0xc]
mov word [eax*2 + 0x846292], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx]
mov word [eax*2 + 0x846294], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 4]
mov word [eax*2 + 0x846296], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 2]
mov word [eax*2 + 0x846298], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 8]
mov word [eax*2 + 0x84629a], bx
mov edx, dword [ebp + 0x50]
mov ebx, ecx
mov eax, dword [0x942fa8]
add bx, word [edx + 0xc]
mov word [eax*2 + 0x84629c], bx
mov edx, dword [ebp + 0x50]
mov eax, dword [0x942fa8]
add cx, word [edx + 0xa]
add dword [0x942fa8], 0xc
mov word [eax*2 + 0x84629e], cx
add dword [0x8f1ae8], 4
cmp dword [0x8e2cb8], 0x3f3
jge 0x50391a
cmp dword [0x8e2be4], 0xfb
jl 0x50391f
call fcn.00503e70
fld dword [esp + 0xc]
fcomp dword [0x5fd8b8]
fnstsw ax
mov bl, 0x64
test ah, 0x45
jne 0x503978
fld dword [esp + 0xc]
fsub dword [0x5fd8b8]
and ebx, 0xff
mov dword [esp + 0x48], ebx
fmul dword [0x5fd8bc]
fmul dword [0x5fd8c0]
fsubr dword [0x5fd8c4]
fimul dword [esp + 0x48]
fnstcw word [esp]
mov eax, dword [esp]
or byte [esp + 1], 0xc
fldcw word [esp]
mov dword [esp], eax
fistp dword [esp + 0x48]
fldcw word [esp]
mov bl, byte [esp + 0x48]
movzx eax, bl
fld dword [0x5fd8cc]
add esi, 0x10
mov edx, eax
mov ebx, eax
mov ecx, eax
shl ebx, 0x10
shl edx, 0x18
shl ecx, 8
or ebx, edx
or ebx, ecx
or ebx, eax
mov eax, dword [0x8e2be4]
imul eax, eax, 0x24
mov dword [eax + 0x862348], ebx
mov dword [eax + 0x86236c], ebx
mov dword [eax + 0x862390], ebx
mov dword [eax + 0x8623b4], ebx
fmul dword [esi + 8]
fmul dword [0x5fd8e0]
fstp dword [esp + 8]
push dword [esi + 4]
push dword [esi]
call fcn.0048cc30
fmul dword [0x5fd8e4]
mov si, word [0x8e2be4]
mov bx, word [0x8e2be4]
mov dx, word [0x8e2be4]
pop ecx
fstp dword [esp + 8]
movzx eax, word [edi + 0x5a]
pop ecx
mov cx, word [0x8e2be4]
and eax, 0xf
mov dword [esp + 0x48], eax
mov eax, dword [0x8e2be4]
fild dword [esp + 0x48]
imul eax, eax, 0x24
fmul dword [0x5fd894]
fadd dword [esp + 4]
fstp dword [esp + 4]
fld dword [esp + 4]
fstp dword [eax + 0x86234c]
fld dword [esp + 8]
fstp dword [eax + 0x862350]
fld dword [0x5fd8e0]
fadd dword [esp + 4]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [eax + 0x862370]
fld dword [esp + 8]
fstp dword [eax + 0x862374]
fld dword [esp + 4]
fstp dword [eax + 0x862394]
fld dword [0x5fd8e0]
fadd dword [esp + 8]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp dword [eax + 0x862398]
fld dword [esp + 0x40]
fstp dword [eax + 0x8623b8]
fld dword [esp + 0x44]
fstp dword [eax + 0x8623bc]
fld dword [esp + 0x10]
fstp dword [eax + 0x862330]
fld dword [esp + 0x14]
fstp dword [eax + 0x862334]
fld dword [esp + 0x18]
fstp dword [eax + 0x862338]
fld dword [esp + 0x1c]
fstp dword [eax + 0x862354]
fld dword [esp + 0x20]
fstp dword [eax + 0x862358]
fld dword [esp + 0x24]
fstp dword [eax + 0x86235c]
fld dword [esp + 0x28]
fstp dword [eax + 0x862378]
fld dword [esp + 0x2c]
fstp dword [eax + 0x86237c]
fld dword [esp + 0x30]
fstp dword [eax + 0x862380]
fld dword [esp + 0x34]
fstp dword [eax + 0x86239c]
fld dword [esp + 0x38]
fstp dword [eax + 0x8623a0]
fld dword [esp + 0x3c]
fstp dword [eax + 0x8623a4]
mov eax, dword [ebp + 0x50]
add si, word [eax]
mov eax, dword [0x8e2cb8]
add esi, 0xffffff40
mov word [eax*2 + 0x846288], si
mov eax, dword [ebp + 0x50]
add bx, word [eax + 2]
mov eax, dword [0x8e2cb8]
add ebx, 0xffffff40
mov si, word [0x8e2be4]
mov word [eax*2 + 0x84628a], bx
mov eax, dword [ebp + 0x50]
add dx, word [eax + 4]
mov eax, dword [0x8e2cb8]
add edx, 0xffffff40
mov bx, word [0x8e2be4]
mov word [eax*2 + 0x84628c], dx
mov eax, dword [ebp + 0x50]
add cx, word [eax + 8]
mov eax, dword [0x8e2cb8]
add ecx, 0xffffff40
mov dx, word [0x8e2be4]
mov word [eax*2 + 0x84628e], cx
mov eax, dword [ebp + 0x50]
add si, word [eax + 0xa]
mov eax, dword [0x8e2cb8]
add esi, 0xffffff40
mov cx, word [0x8e2be4]
mov word [eax*2 + 0x846290], si
mov eax, dword [ebp + 0x50]
add bx, word [eax + 0xc]
mov eax, dword [0x8e2cb8]
add ebx, 0xffffff40
mov si, word [0x8e2be4]
mov word [eax*2 + 0x846292], bx
mov eax, dword [ebp + 0x50]
add dx, word [eax]
mov eax, dword [0x8e2cb8]
add edx, 0xffffff40
mov bx, word [0x8e2be4]
mov word [eax*2 + 0x846294], dx
mov eax, dword [ebp + 0x50]
add cx, word [eax + 4]
mov eax, dword [0x8e2cb8]
add ecx, 0xffffff40
mov dx, word [0x8e2be4]
mov word [eax*2 + 0x846296], cx
mov eax, dword [ebp + 0x50]
add si, word [eax + 2]
mov eax, dword [0x8e2cb8]
add esi, 0xffffff40
mov cx, word [0x8e2be4]
mov word [eax*2 + 0x846298], si
mov eax, dword [ebp + 0x50]
add bx, word [eax + 8]
mov eax, dword [0x8e2cb8]
add ebx, 0xffffff40
mov word [eax*2 + 0x84629a], bx
mov eax, dword [ebp + 0x50]
add dx, word [eax + 0xc]
mov eax, dword [0x8e2cb8]
add edx, 0xffffff40
mov word [eax*2 + 0x84629c], dx
mov eax, dword [ebp + 0x50]
add cx, word [eax + 0xa]
mov eax, dword [0x8e2cb8]
add ecx, 0xffffff40
add dword [0x8e2cb8], 0xc
add dword [0x8e2be4], 4
mov word [eax*2 + 0x84629e], cx
add esp, 0xc0
pop ebp
pop edi
pop esi
pop ebx
ret