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

Disassembly:
jmp 0x514330
sub esp, 0x88
push ebp
mov ebp, dword [esp + 0x90]
test ebp, ebp
je 0x5148fc
push ebx
push esi
push edi
call fcn.00510710
mov esi, dword [esp + 0xa0]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x64], eax
mov eax, dword [0x84fb00]
mov ecx, dword [esi + 0x70]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], ecx
test eax, eax
mov dword [esp + 0x10], edx
mov ebx, ebp
jne 0x51438a
call fcn.00513820
mov ebx, eax
push ebp
push ebx
call fcn.005138b0
add esp, 8
cmp dword [ebx + 4], 0xffffffff
jne 0x51439f
mov eax, dword [ebx]
push eax
call fcn.00528710
add esp, 4
mov edi, eax
jmp 0x5143a1
mov edi, dword [ebx]
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
jne 0x5143bc
mov ecx, dword [ebx]
push ecx
call fcn.00528780
mov ebx, eax
add esp, 4
mov dword [esp + 0x3c], ebx
jmp 0x5143c2
mov dword [esp + 0x3c], eax
mov ebx, eax
mov edx, dword [esi + 0x68]
test edx, edx
je 0x514423
mov eax, dword [edx + 0x50]
mov edx, dword [edx]
mov ecx, eax
mov ebx, eax
shr ecx, 0xc
shr eax, 8
and ecx, 0xf
and eax, 0xf
sub eax, ecx
and ebx, 0xff
neg eax
sbb eax, eax
push edx
not eax
and eax, ecx
push 1
mov ebp, eax
mov eax, dword [0x84a7c8]
call dword [eax + 0x20]
mov ecx, dword [0x84a7c8]
push ebx
push 9
call dword [ecx + 0x20]
mov edx, dword [0x84a7c8]
push ebp
push 2
call dword [edx + 0x20]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x54]
add esp, 0x18
jmp 0x514432
mov eax, dword [0x84a7c8]
push 0
push 1
call dword [eax + 0x20]
add esp, 8
fld dword [0x5303b4]
lea ecx, [ebx + ebx*2]
xor eax, eax
cmp ebx, eax
mov dword [esp + 0x18], eax
fdiv dword [edi + ecx*8 - 4]
mov ecx, dword [0x84f924]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x34]
jle 0x5148ec
fld dword [esp + 0x10]
fadd dword [esp + 0x14]
lea edx, [edi + 0x14]
lea ebx, [edi + 4]
lea ebp, [edi + 0x10]
fstp dword [esp + 0x60]
fld dword [esp + 0x14]
fsub dword [esp + 0x10]
mov dword [esp + 0x10], edx
lea edx, [edi + 8]
mov dword [esp + 0x14], edx
add edi, 0xc
fstp dword [esp + 0x68]
jmp 0x514490
mov eax, dword [esp + 0x18]
cmp eax, 0xfe
jl 0x514511
mov edx, dword [esi + 0x68]
xor ecx, ecx
test edx, edx
mov edx, dword [0x84fafc]
setne cl
or ecx, edx
mov edx, dword [esp + 0x64]
push ecx
push edx
push eax
mov eax, dword [0x84f924]
push eax
call fcn.004d98f0
add esp, 0x10
test eax, eax
je 0x5144db
mov ecx, dword [esp + 0x18]
push ecx
push 0x84f420
push 4
call fcn.004d99f0
add esp, 0xc
call fcn.004d99c0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
dec eax
mov ecx, dword [0x84f924]
mov dword [esp + 0x38], eax
mov eax, 0x18
sub edx, eax
sub edi, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sub ebp, eax
sub ebx, eax
sub edx, eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], edx
fld dword [edi]
fmul dword [esp + 0x60]
fld dword [ebp]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
fmul dword [esp + 0x60]
fstp dword [esp + 0x8c]
fsubr dword [ebx]
fld dword [edx]
fsub dword [esp + 0x8c]
fxch st(1)
fstp dword [ecx]
mov dword [ecx + 8], eax
fstp dword [ecx + 4]
test byte [esi + 0x64], 1
je 0x514654
mov edx, dword [esp + 0x10]
fld dword [esp + 0x34]
fmul dword [edx]
fld dword [esi + 0x18]
fmul st(1)
fld dword [esi + 0x1c]
fmul st(2)
fstp dword [esp + 0x20]
fld dword [esi + 0x20]
fmul st(2)
fstp dword [esp + 0x24]
fld dword [esi + 0x24]
fmul st(2)
fstp dword [esp + 0x28]
fadd dword [esi]
fstp dword [esp + 0x1c]
fstp st(0)
fld dword [esi + 4]
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esi + 8]
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esi + 0xc]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fnstcw word [esp + 0x46]
fld dword [esp + 0x1c]
mov ax, word [esp + 0x46]
or ah, 0xc
mov word [esp + 0x4a], ax
fldcw word [esp + 0x4a]
fistp dword [esp + 0x94]
fldcw word [esp + 0x46]
fnstcw word [esp + 0x52]
fld dword [esp + 0x20]
mov ax, word [esp + 0x52]
or ah, 0xc
mov word [esp + 0x4e], ax
fldcw word [esp + 0x4e]
fistp dword [esp + 0x84]
fldcw word [esp + 0x52]
fnstcw word [esp + 0x40]
fld dword [esp + 0x24]
mov ax, word [esp + 0x40]
or ah, 0xc
mov word [esp + 0x58], ax
fldcw word [esp + 0x58]
fistp dword [esp + 0x70]
fldcw word [esp + 0x40]
fnstcw word [esp + 0x42]
fld dword [esp + 0x28]
mov ax, word [esp + 0x42]
or ah, 0xc
mov word [esp + 0x56], ax
fldcw word [esp + 0x56]
fistp dword [esp + 0x7c]
fldcw word [esp + 0x42]
mov edx, dword [esp + 0x84]
xor eax, eax
mov ah, byte [esp + 0x7c]
and edx, 0xff
mov al, byte [esp + 0x94]
shl eax, 8
or eax, edx
mov edx, dword [esp + 0x70]
and edx, 0xff
jmp 0x51466b
xor eax, eax
xor edx, edx
mov ah, byte [esi + 0x63]
mov dl, byte [esi + 0x61]
mov al, byte [esi + 0x60]
shl eax, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x62]
shl eax, 8
or eax, edx
mov dword [ecx + 0x18], eax
mov al, byte [esi + 0x64]
test al, 2
je 0x5146b2
mov eax, dword [esp + 0x10]
fld dword [esp + 0x34]
fmul dword [eax]
fld dword [esi + 0x28]
fmul st(1)
fld dword [esi + 0x2c]
fmul st(2)
fstp dword [esp + 0x30]
fld dword [esi + 0x10]
fadd st(1)
fst dword [esp + 0x2c]
fstp st(2)
fstp st(0)
fld dword [esi + 0x14]
fadd dword [esp + 0x30]
fst dword [esp + 0x30]
fxch st(1)
fstp dword [ecx + 0x1c]
fstp dword [ecx + 0x20]
fld dword [edi]
fmul dword [esp + 0x68]
fld dword [ebp]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
fmul dword [esp + 0x68]
add ecx, 0x24
fstp dword [esp + 0x8c]
fadd dword [ebx]
fld dword [edx]
fadd dword [esp + 0x8c]
fxch st(1)
fstp dword [ecx]
mov dword [ecx + 8], eax
fstp dword [ecx + 4]
test byte [esi + 0x64], 1
je 0x5147fd
mov edx, dword [esp + 0x10]
fld dword [esp + 0x34]
fmul dword [edx]
fld dword [esi + 0x48]
fmul st(1)
fld dword [esi + 0x4c]
fmul st(2)
fstp dword [esp + 0x20]
fld dword [esi + 0x50]
fmul st(2)
fstp dword [esp + 0x24]
fld dword [esi + 0x54]
fmul st(2)
fstp dword [esp + 0x28]
fld dword [esi + 0x30]
fadd st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fstp st(0)
fld dword [esi + 0x34]
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esi + 0x38]
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esi + 0x3c]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fnstcw word [esp + 0x5e]
fld dword [esp + 0x1c]
mov ax, word [esp + 0x5e]
or ah, 0xc
mov word [esp + 0x5a], ax
fldcw word [esp + 0x5a]
fistp dword [esp + 0x74]
fldcw word [esp + 0x5e]
fnstcw word [esp + 0x54]
fld dword [esp + 0x20]
mov ax, word [esp + 0x54]
or ah, 0xc
mov word [esp + 0x48], ax
fldcw word [esp + 0x48]
fistp dword [esp + 0x78]
fldcw word [esp + 0x54]
fnstcw word [esp + 0x5c]
fld dword [esp + 0x24]
mov ax, word [esp + 0x5c]
or ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp dword [esp + 0x80]
fldcw word [esp + 0x5c]
fnstcw word [esp + 0x44]
fld dword [esp + 0x28]
mov ax, word [esp + 0x44]
or ah, 0xc
mov word [esp + 0x50], ax
fldcw word [esp + 0x50]
fistp dword [esp + 0x90]
fldcw word [esp + 0x44]
mov edx, dword [esp + 0x78]
xor eax, eax
mov ah, byte [esp + 0x90]
and edx, 0xff
mov al, byte [esp + 0x74]
shl eax, 8
or eax, edx
mov edx, dword [esp + 0x80]
and edx, 0xff
jmp 0x514814
xor eax, eax
xor edx, edx
mov ah, byte [esi + 0x63]
mov dl, byte [esi + 0x61]
mov al, byte [esi + 0x60]
shl eax, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x62]
shl eax, 8
or eax, edx
mov dword [ecx + 0x18], eax
mov al, byte [esi + 0x64]
test al, 2
je 0x51485b
mov eax, dword [esp + 0x10]
fld dword [esp + 0x34]
fmul dword [eax]
fld dword [esi + 0x58]
fmul st(1)
fld dword [esi + 0x5c]
fmul st(2)
fstp dword [esp + 0x30]
fld dword [esi + 0x40]
fadd st(1)
fst dword [esp + 0x2c]
fstp st(2)
fstp st(0)
fld dword [esi + 0x44]
fadd dword [esp + 0x30]
fst dword [esp + 0x30]
fxch st(1)
fstp dword [ecx + 0x1c]
fstp dword [ecx + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add edx, 0x18
add eax, 2
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
add edx, 0x18
add ecx, 0x24
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
inc eax
add edi, 0x18
add ebp, 0x18
add ebx, 0x18
cmp eax, edx
mov dword [esp + 0x38], eax
jl 0x51448c
mov edi, dword [esp + 0x18]
test edi, edi
jle 0x5148e5
mov ebp, dword [esi + 0x68]
mov ebx, dword [0x84fafc]
mov edx, dword [esp + 0x64]
xor ecx, ecx
mov eax, dword [0x84f924]
test ebp, ebp
setne cl
or ecx, ebx
push ecx
push edx
push edi
push eax
call fcn.004d98f0
add esp, 0x10
test eax, eax
je 0x5148e5
push edi
push 0x84f420
push 4
call fcn.004d99f0
add esp, 0xc
call fcn.004d99c0
mov ebp, dword [esp + 0x9c]
mov ecx, dword [ebp + 0x14]
push esi
push ecx
call 0x514330
add esp, 8
pop edi
pop esi
pop ebx
mov eax, ebp
pop ebp
add esp, 0x88
ret