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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x58a3b8
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x6a3b20]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
fld qword [edi + 8]
fld qword [edi]
call fcn.00580800
mov dword [esp + 0x2c], eax
call fcn.00580800
mov esi, dword [ebp + 0x14]
mov ebx, dword [0x5a7a20]
mov dword [esp + 0x30], eax
push 0
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call ebx
mov byte [esp + 0x12], al
mov eax, dword [ebp + 0x10]
fld qword [eax + 8]
fld qword [eax]
call fcn.00580800
mov dword [esp + 0x2c], eax
call fcn.00580800
push 0
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
mov dword [esp + 0x38], eax
call ebx
cmp byte [esp + 0x12], 0
mov byte [esp + 0x13], al
je 0x46a646
test al, al
je 0x46a646
mov eax, dword [ebp + 0x10]
fld qword [eax]
fld qword [eax + 8]
mov eax, dword [ebp + 8]
fld qword [edi]
fld qword [edi + 8]
fxch st(1)
fstp qword [eax]
fstp qword [eax + 8]
fxch st(1)
fstp qword [eax + 0x10]
fstp qword [eax + 0x18]
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
fld qword [edi]
mov ebx, dword [ebp + 0x10]
mov edx, dword [0x5a7c68]
fst qword [esp + 0x34]
fld qword [edi + 8]
mov dword [esp + 0x14], edx
fst qword [esp + 0x3c]
fld qword [ebx]
fsub qword [edi]
fst qword [esp + 0x18]
fld qword [ebx + 8]
fsub qword [edi + 8]
fst qword [esp + 0x2c]
fldz
fst qword [esp + 0x54]
fst qword [esp + 0x5c]
fst qword [esp + 0x64]
fst qword [esp + 0x6c]
fcom st(1)
mov dword [esp + 0x80], 0
fnstsw ax
fld st(1)
test ah, 0x41
jnp 0x46a69c
fchs
fcomp qword [0x5acb20]
fnstsw ax
test ah, 0x41
jnp 0x46a7dd
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst qword [esp + 0x24]
fsubrp st(5)
fxch st(4)
fdiv st(2)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x46a73e
fld1
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a73e
fld st(5)
fsub st(5)
fld st(4)
fmulp st(2)
faddp st(1)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x46a73e
mov edx, dword [esi + 8]
sub edx, ecx
inc edx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a73e
fstp st(1)
lea eax, [esp + 0x44]
fstp st(1)
push eax
fstp st(1)
lea ecx, [esp + 0x18]
fstp st(2)
faddp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x28]
fstp qword [esp + 0x50]
call fcn.0045f9c0
fld qword [esp + 0x34]
fld qword [esp + 0x18]
fld qword [esp + 0x2c]
fldz
jmp 0x46a746
fstp st(0)
fstp st(3)
fxch st(1)
fxch st(2)
mov ecx, dword [esi]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fst qword [esp + 0x24]
fsub qword [esp + 0x3c]
fdiv st(3)
fcom st(2)
fnstsw ax
test ah, 1
jne 0x46a7d7
fld1
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a7d7
fld st(5)
fsub st(2)
fld st(5)
fmulp st(2)
faddp st(1)
fcom st(2)
fnstsw ax
test ah, 1
jne 0x46a7d7
mov eax, dword [esi + 8]
sub eax, ecx
inc eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a7d7
fstp st(2)
lea ecx, [esp + 0x44]
fstp st(2)
push ecx
fstp st(2)
lea ecx, [esp + 0x18]
fstp st(2)
faddp st(1)
fstp qword [esp + 0x48]
fld qword [esp + 0x28]
fstp qword [esp + 0x50]
call fcn.0045f9c0
fld qword [esp + 0x34]
fld qword [esp + 0x18]
fld qword [esp + 0x2c]
fldz
jmp 0x46a7e3
fstp st(0)
fstp st(0)
jmp 0x46a7e3
fstp st(3)
fxch st(1)
fxch st(2)
fcom st(2)
fnstsw ax
fld st(2)
test ah, 0x41
jnp 0x46a7f0
fchs
fcomp qword [0x5acb20]
fnstsw ax
test ah, 0x41
jnp 0x46a918
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov dword [esp + 0x20], ecx
fst qword [esp + 0x24]
fild dword [esp + 0x20]
fxch st(1)
fsub st(5)
fdiv st(4)
fcom st(2)
fnstsw ax
test ah, 1
jne 0x46a894
fld1
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a894
fld qword [esp + 0x3c]
fsub st(2)
fld st(4)
fmulp st(2)
faddp st(1)
fcom st(2)
fnstsw ax
test ah, 1
jne 0x46a894
mov eax, dword [esi + 0xc]
sub eax, ecx
inc eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a894
fstp st(2)
lea ecx, [esp + 0x44]
fstp st(2)
push ecx
fstp st(2)
lea ecx, [esp + 0x18]
fstp st(2)
fld qword [esp + 0x28]
fstp qword [esp + 0x48]
faddp st(1)
fstp qword [esp + 0x50]
call fcn.0045f9c0
fld qword [esp + 0x34]
fld qword [esp + 0x18]
fld qword [esp + 0x2c]
fldz
jmp 0x46a898
fstp st(0)
fstp st(0)
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fld st(1)
fsubrp st(6)
fxch st(5)
fdivrp st(4)
fxch st(3)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x46a920
fld1
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x46a920
fld qword [esp + 0x3c]
fsub st(5)
fxch st(3)
fmulp st(1)
faddp st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x46a922
mov eax, dword [esi + 0xc]
sub eax, ecx
inc eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x46a922
fstp st(0)
lea ecx, [esp + 0x44]
fxch st(1)
push ecx
fstp qword [esp + 0x48]
lea ecx, [esp + 0x18]
faddp st(1)
fstp qword [esp + 0x50]
call fcn.0045f9c0
fldz
jmp 0x46a928
fstp st(1)
fstp st(1)
fstp st(1)
jmp 0x46a928
fstp st(2)
fstp st(1)
fstp st(2)
fstp st(0)
cmp byte [esp + 0x12], 0
je 0x46a93d
push edi
fstp st(0)
lea ecx, [esp + 0x18]
call fcn.0045f9c0
fldz
cmp byte [esp + 0x13], 0
je 0x46a952
push ebx
fstp st(0)
lea ecx, [esp + 0x18]
call fcn.0045f9c0
fldz
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 8]
mov edi, dword [edx + 0xc]
sub edi, ecx
mov dword [esp + 0x24], edi
cmp edi, 2
jne 0x46a9bc
mov eax, dword [edx + ecx*4 + 0x14]
fstp st(0)
mov ecx, dword [edx + ecx*4 + 0x10]
fld qword [eax]
fld qword [eax + 8]
fld qword [ecx]
fld qword [ecx + 8]
fxch st(2)
fxch st(3)
fxch st(2)
mov esi, dword [ebp + 8]
fxch st(1)
fstp qword [esi]
lea ecx, [esp + 0x14]
mov dword [esp + 0x80], 0xffffffff
fstp qword [esi + 8]
fstp qword [esi + 0x10]
fstp qword [esi + 0x18]
call fcn.00450930
mov eax, esi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
jle 0x46aa51
fld st(0)
lea edx, [edi - 1]
fld st(1)
fld st(2)
fld st(3)
test edx, edx
jle 0x46aa46
mov esi, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x18], eax
lea ebx, [esi + ecx*4 + 0x10]
mov dword [esp + 0x20], edx
cmp eax, edi
jge 0x46aa38
lea esi, [ebx + 4]
sub edi, eax
mov edx, dword [ebx]
mov ecx, dword [esi]
fld qword [edx]
fsub qword [ecx]
fld qword [edx + 8]
fsub qword [ecx + 8]
fld st(1)
fmulp st(2)
fmul st(0), st(0)
faddp st(1)
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x46aa4d
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(1)
fld qword [edx]
fld qword [edx + 8]
fld qword [ecx]
fld qword [ecx + 8]
fxch st(4)
fxch st(3)
fxch st(2)
fxch st(1)
add esi, 4
dec edi
jne 0x46a9ef
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
inc eax
add ebx, 4
dec dword [esp + 0x20]
mov dword [esp + 0x18], eax
jne 0x46a9e6
fstp st(3)
jmp 0x46a981
fstp st(0)
jmp 0x46aa2a
fstp st(0)
fld qword [esp + 0x64]
fld qword [esp + 0x5c]
fld qword [esp + 0x54]
fld qword [esp + 0x6c]
jmp 0x46a97d