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

Disassembly:
sub esp, 0xd4
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xec]
mov ebx, ecx
mov ecx, dword [edi]
call fcn.00556550
mov ecx, dword [edi]
mov esi, eax
call fcn.00556560
fld dword [eax]
fmul dword [esi + 0x30]
fld dword [esi + 0x34]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esi + 0x38]
fmul dword [eax + 0x20]
faddp st(1)
fstp dword [esp + 0x40]
fld dword [esi + 0x34]
fmul dword [eax + 0x14]
fld dword [esi + 0x38]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [eax + 4]
fmul dword [esi + 0x30]
faddp st(1)
fstp dword [esp + 0x44]
fld dword [esi + 0x30]
fmul dword [eax + 8]
fld dword [esi + 0x38]
fmul dword [eax + 0x28]
faddp st(1)
fld dword [esi + 0x34]
fmul dword [eax + 0x18]
faddp st(1)
fstp dword [esp + 0x48]
fld dword [eax + 0x2c]
fmul dword [esi + 0x38]
fld dword [eax + 0x1c]
fmul dword [esi + 0x34]
faddp st(1)
fld dword [esi + 0x30]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esi + 0x3c]
fstp dword [esp + 0x4c]
fld dword [esi + 0x24]
fmul dword [eax + 0x10]
fld dword [eax]
fmul dword [esi + 0x20]
faddp st(1)
fld dword [esi + 0x28]
fmul dword [eax + 0x20]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esi + 0x20]
fmul dword [eax + 4]
fld dword [esi + 0x28]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esi + 0x24]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esi + 0x28]
fmul dword [eax + 0x28]
fld dword [esi + 0x24]
fmul dword [eax + 0x18]
faddp st(1)
fld dword [esi + 0x20]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0x28]
fld dword [eax + 0x2c]
fmul dword [esi + 0x28]
fld dword [eax + 0x1c]
fmul dword [esi + 0x24]
faddp st(1)
fld dword [esi + 0x20]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esi + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax]
fmul dword [esi + 0x10]
fld dword [esi + 0x14]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esi + 0x18]
fmul dword [eax + 0x20]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [eax + 4]
fmul dword [esi + 0x10]
fld dword [esi + 0x18]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esi + 0x14]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esi + 0x18]
fmul dword [eax + 0x28]
fld dword [esi + 0x14]
fmul dword [eax + 0x18]
faddp st(1)
fld dword [eax + 8]
fmul dword [esi + 0x10]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [eax + 0x2c]
fmul dword [esi + 0x18]
fld dword [esi + 0x14]
fmul dword [eax + 0x1c]
faddp st(1)
fld dword [esi + 0x10]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esi + 0x1c]
fstp dword [esp + 0x1c]
fld dword [eax]
fmul dword [esi]
fld dword [eax + 0x20]
fmul dword [esi + 8]
faddp st(1)
fld dword [esi + 4]
fmul dword [eax + 0x10]
faddp st(1)
fstp dword [esp + 0x30]
fld dword [eax + 4]
fmul dword [esi]
fld dword [eax + 0x24]
fmul dword [esi + 8]
faddp st(1)
fld dword [eax + 0x14]
fmul dword [esi + 4]
faddp st(1)
fstp dword [esp + 0x34]
fld dword [eax + 8]
fmul dword [esi]
fld dword [eax + 0x28]
fmul dword [esi + 8]
faddp st(1)
fld dword [eax + 0x18]
fmul dword [esi + 4]
faddp st(1)
fstp dword [esp + 0x38]
fld dword [eax + 0x2c]
fmul dword [esi + 8]
fld dword [eax + 0x1c]
fmul dword [esi + 4]
faddp st(1)
fld dword [eax + 0xc]
fmul dword [esi]
mov eax, dword [esp + 0xf0]
faddp st(1)
fadd dword [esi + 0xc]
fstp dword [esp + 0x3c]
fld dword [esp + 0x44]
fmul dword [eax + 0x10]
fld dword [esp + 0x48]
fmul dword [eax + 0x20]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [eax]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [eax + 0x14]
fld dword [esp + 0x48]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [eax + 4]
faddp st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x48]
fmul dword [eax + 0x28]
fld dword [esp + 0x40]
fmul dword [eax + 8]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [eax + 0x18]
faddp st(1)
fstp dword [esp + 0x98]
fld dword [esp + 0x44]
fmul dword [eax + 0x1c]
fld dword [esp + 0x48]
fmul dword [eax + 0x2c]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esp + 0x4c]
fstp dword [esp + 0x9c]
fld dword [esp + 0x28]
fmul dword [eax + 0x20]
fld dword [esp + 0x24]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax + 4]
fld dword [esp + 0x28]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x28]
fmul dword [eax + 0x28]
fld dword [esp + 0x24]
fmul dword [eax + 0x18]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0x48]
fld dword [esp + 0x28]
fmul dword [eax + 0x2c]
fld dword [esp + 0x24]
fmul dword [eax + 0x1c]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x18]
fmul dword [eax + 0x20]
fld dword [esp + 0x14]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax + 4]
fld dword [esp + 0x18]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x14]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x18]
fmul dword [eax + 0x28]
fld dword [esp + 0x14]
fmul dword [eax + 0x18]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x18]
fmul dword [eax + 0x2c]
fld dword [esp + 0x14]
fmul dword [eax + 0x1c]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x38]
fmul dword [eax + 0x20]
fld dword [esp + 0x34]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [eax]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [eax + 4]
fld dword [esp + 0x38]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x34]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x38]
fmul dword [eax + 0x28]
fld dword [esp + 0x34]
fmul dword [eax + 0x18]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x38]
fmul dword [eax + 0x2c]
fld dword [esp + 0x34]
fmul dword [eax + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x28]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], eax
faddp st(1)
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x64], eax
fadd dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x88], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x74], eax
fstp dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
fstp dword [esp + 0x50]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x2c]
fstp dword [esp + 0x60]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x4c]
fstp dword [esp + 0x70]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x9c]
fstp dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x8c], edx
mov eax, dword [eax + 8]
test ch, 4
mov dword [esp + 0xa0], eax
je 0x58eab1
mov ebx, dword [ebx + 0x40]
test ebx, ebx
je 0x58eab1
mov ecx, dword [esp + 0xf4]
test ecx, ecx
je 0x58eab1
mov ebp, dword [ebx + 8]
xor edx, edx
test edi, edi
jle 0x58eac8
lea ebx, [ebp + edx*2]
mov esi, dword [esp + 0xf4]
xor ecx, ecx
mov cx, word [ebx]
mov esi, dword [esi + 0x14]
fld dword [esp + 0x80]
lea eax, [ecx + ecx*4]
lea eax, [ecx + eax*2]
shl eax, 4
fmul dword [eax + esi + 0x48]
fld dword [esp + 0x88]
fmul dword [eax + esi + 0x68]
lea eax, [eax + esi + 0x48]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x80]
fmul dword [eax + 4]
fld dword [esp + 0x88]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x80]
fmul dword [eax + 8]
fld dword [esp + 0x88]
fmul dword [eax + 0x28]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [eax + 0x18]
faddp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x80]
fmul dword [eax + 0xc]
fld dword [esp + 0x88]
fmul dword [eax + 0x2c]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [eax + 0x1c]
faddp st(1)
fadd dword [esp + 0x8c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x70]
fmul dword [eax]
fld dword [esp + 0x78]
fmul dword [eax + 0x20]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x70]
fmul dword [eax + 4]
fld dword [esp + 0x78]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x70]
fmul dword [eax + 8]
fld dword [esp + 0x78]
fmul dword [eax + 0x28]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [eax + 0x18]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x70]
fmul dword [eax + 0xc]
fld dword [esp + 0x78]
fmul dword [eax + 0x2c]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [eax + 0x1c]
faddp st(1)
fadd dword [esp + 0x7c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x60]
fmul dword [eax]
fld dword [esp + 0x68]
fmul dword [eax + 0x20]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x68]
fmul dword [eax + 0x24]
fld dword [esp + 0x64]
fmul dword [eax + 0x14]
faddp st(1)
fld dword [esp + 0x60]
fmul dword [eax + 4]
faddp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x60]
fmul dword [eax + 8]
fld dword [esp + 0x68]
fmul dword [eax + 0x28]
faddp st(1)
fld dword [esp + 0x64]
fmul dword [eax + 0x18]
faddp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x68]
fmul dword [eax + 0x2c]
fld dword [esp + 0x64]
fmul dword [eax + 0x1c]
faddp st(1)
fld dword [esp + 0x60]
fmul dword [eax + 0xc]
faddp st(1)
fadd dword [esp + 0x6c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x58]
fmul dword [eax + 0x20]
fld dword [esp + 0x54]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [eax]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [eax + 4]
fld dword [esp + 0x58]
fmul dword [eax + 0x24]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [eax + 0x14]
faddp st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x50]
fmul dword [eax + 8]
fld dword [esp + 0x58]
fmul dword [eax + 0x28]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [eax + 0x18]
faddp st(1)
fstp dword [esp + 0x98]
fld dword [esp + 0x50]
fmul dword [eax + 0xc]
fld dword [esp + 0x58]
fmul dword [eax + 0x2c]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [eax + 0x1c]
mov eax, dword [esp + 0x94]
cmp edx, edi
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x98]
faddp st(1)
mov dword [esp + 0xac], eax
mov esi, edx
fadd dword [esp + 0x5c]
fstp dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x14]
fstp dword [esp + 0xa4]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x18]
fstp dword [esp + 0xb4]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0xc4]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x24]
fstp dword [esp + 0xd4]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xe0], eax
jge 0x58ea6a
xor eax, eax
mov ax, word [ebx]
cmp ecx, eax
jne 0x58ea6a
inc esi
add ebx, 2
cmp esi, edi
jl 0x58ea59
mov ecx, esi
lea eax, [esp + 0xa4]
sub ecx, edx
push ecx
push eax
mov eax, dword [esp + 0xa8]
lea ecx, [edx + edx*2]
shl edx, 4
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0xf0]
add edx, eax
push ecx
push edx
call fcn.00600650
add esp, 0x10
cmp esi, edi
mov edx, esi
jl 0x58e78b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10
lea edx, [esp + 0x50]
push edi
push edx
push eax
mov eax, dword [esp + 0xf4]
push eax
call fcn.00600650
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret 0x10