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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov al, byte [ebx + 4]
mov dword [esp + 0x48], 0
cmp al, 2
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jne 0x4664dd
lea esi, [ebx + 0x68]
mov ecx, 6
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x80]
mov ecx, 6
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
push ecx
call fcn.0041ae70
fidiv dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
add esp, 0x20
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
lea ebx, [edx + 1]
test ebx, ebx
fstp qword [esp + 0x50]
jle 0x466996
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x68]
mov esi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x3c]
push eax
push ecx
push edx
push esi
push edi
mov edi, dword [esp + 0x64]
push edi
mov edi, dword [esp + 0x64]
push edi
mov edi, dword [esp + 0x64]
push edi
push eax
push ecx
push edx
push esi
call fcn.0041bba0
mov ecx, dword [0x500730]
mov eax, dword [0x500798]
add esp, 0x40
lea esi, [esp + 0x68]
mov dl, byte [ecx]
mov cl, byte [eax]
push edx
push ecx
sub esp, 0x18
mov ecx, 6
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call dword [0x4ff360]
fld qword [esp + 0x30]
fadd qword [esp + 0x70]
add esp, 0x20
dec ebx
fstp qword [esp + 0x10]
jne 0x466451
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 3
jne 0x4665e5
fld qword [ebx + 0xb0]
lea esi, [ebx + 0x68]
mov ecx, 6
lea edi, [esp + 0x80]
mov dword [esp + 0x10], 0
rep movsd dword es:[edi], dword [esi]
fadd qword [esp + 0x80]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
test eax, eax
fstp qword [esp + 0x20]
fild dword [ebp + 0xc]
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], 0
fdivr qword [0x5028a0]
fstp qword [esp + 0x50]
jle 0x466996
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x70]
lea edx, [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0xa0]
push edx
mov edx, dword [esp + 0xa0]
push ebx
push eax
push ecx
push edx
call fcn.0041c2e0
mov eax, dword [0x500730]
mov edx, dword [0x500798]
add esp, 0x30
lea esi, [esp + 0x68]
mov cl, byte [eax]
mov al, byte [edx]
push ecx
push eax
sub esp, 0x18
mov ecx, 6
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call dword [0x4ff360]
fld qword [esp + 0x30]
fadd qword [esp + 0x70]
mov eax, dword [esp + 0x3c]
add esp, 0x20
dec eax
mov dword [esp + 0x1c], eax
fstp qword [esp + 0x10]
jne 0x466550
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 4
jne 0x46672d
lea esi, [ebx + 0x68]
mov ecx, 6
lea edi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xd0]
push ecx
mov ecx, ebx
call dword [0x4ffde8]
mov ecx, 6
mov esi, eax
lea edi, [esp + 0x20]
lea edx, [esp + 0xd0]
rep movsd dword es:[edi], dword [esi]
push edx
mov ecx, ebx
call dword [0x4ffde4]
fld qword [ebx + 0xb8]
fidiv dword [ebp + 0xc]
mov ecx, 6
mov esi, eax
lea edi, [esp + 0x38]
lea eax, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x20]
push eax
push ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
xor ebx, ebx
fstp qword [esp + 0x58]
call dword [0x500964]
mov edx, dword [ebp + 0xc]
add esp, 8
neg eax
sbb eax, eax
inc eax
add eax, edx
test eax, eax
jle 0x466996
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x70]
lea eax, [esp + 0x68]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
push eax
push ecx
call fcn.0041c2e0
mov edx, dword [0x500730]
mov ecx, dword [0x500798]
add esp, 0x30
lea esi, [esp + 0x68]
mov al, byte [edx]
mov dl, byte [ecx]
push eax
push edx
sub esp, 0x18
mov ecx, 6
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call dword [0x4ff360]
fld qword [esp + 0x30]
fadd qword [esp + 0x70]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x40]
push eax
push ecx
inc ebx
fstp qword [esp + 0x38]
call dword [0x500964]
mov edx, dword [ebp + 0xc]
add esp, 0x28
neg eax
sbb eax, eax
inc eax
add eax, edx
cmp ebx, eax
jl 0x46667c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x10
je 0x4668c9
cmp al, 0xf
je 0x4668c9
cmp al, 7
jne 0x466996
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x64]
fidiv dword [ebp + 0xc]
mov esi, dword [ebx + 0x6c]
mov ecx, 6
lea edi, [esp + 0x20]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x68]
mov dword [esp + 0x58], 0
cmp ecx, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x64], eax
fstp qword [esp + 0x50]
jl 0x466996
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x1c]
mov edx, dword [ebx + 0x6c]
add esi, edx
mov ecx, 6
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
push ecx
call fcn.0041ae70
fst qword [esp + 0xb8]
fadd qword [esp + 0x78]
add esp, 0x20
fst qword [esp + 0x58]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 1
jne 0x466894
fld qword [esp + 0x10]
fsub qword [esp + 0x58]
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x68]
push edx
fadd qword [esp + 0x9c]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
sub esp, 8
fstp qword [esp]
push eax
push ecx
push edx
push esi
push edi
mov edi, dword [esp + 0x64]
push edi
mov edi, dword [esp + 0x64]
push edi
mov edi, dword [esp + 0x64]
push edi
push eax
push ecx
push edx
push esi
call fcn.0041bba0
mov ecx, dword [0x500730]
mov eax, dword [0x500798]
add esp, 0x40
lea esi, [esp + 0x68]
mov dl, byte [ecx]
mov cl, byte [eax]
push edx
push ecx
sub esp, 0x18
mov ecx, 6
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call dword [0x4ff360]
fld qword [esp + 0x30]
fadd qword [esp + 0x70]
add esp, 0x20
fstp qword [esp + 0x10]
fld qword [esp + 0x58]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x4667f8
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov ecx, 6
lea esi, [esp + 0x38]
lea edi, [esp + 0x20]
inc eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x68]
add edx, 0x18
cmp eax, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x1c], edx
jle 0x466796
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
lea edx, [esi + esi*2 + 3]
shl edx, 3
push edx
call fcn.004a021c
mov edi, eax
add esp, 4
test edi, edi
jne 0x4668e8
call dword [0x50064c]
push 0x3f50624d
push 0xd2f1a9fc
push edi
push esi
push ebx
call dword [0x500918]
lea eax, [esp + 0xb4]
lea ecx, [esp + 0xcc]
push eax
push ecx
push ebx
call dword [0x500920]
lea edx, [esp + 0xc0]
lea eax, [esp + 0xd8]
push edx
push eax
xor ebx, ebx
call dword [0x500964]
add esp, 0x28
neg eax
sbb eax, eax
inc eax
add eax, esi
test eax, eax
jle 0x466996
mov dword [esp + 0x1c], edi
mov ecx, dword [0x500730]
mov eax, dword [0x500798]
mov esi, dword [esp + 0x1c]
mov dl, byte [ecx]
mov cl, byte [eax]
push edx
push ecx
sub esp, 0x18
mov ecx, 6
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call dword [0x4ff360]
mov edi, dword [esp + 0x3c]
lea edx, [esp + 0xc0]
lea eax, [esp + 0xd8]
add edi, 0x18
push edx
push eax
inc ebx
mov dword [esp + 0x44], edi
call dword [0x500964]
mov edx, dword [ebp + 0xc]
add esp, 0x28
neg eax
sbb eax, eax
inc eax
add eax, edx
cmp ebx, eax
jl 0x46693c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret