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

Disassembly:
mov ecx, dword [0x5f91cc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x46ba74
sub esp, 0xac
movsd xmm0, qword [0x51c5a0]
movsd xmm1, qword [esp + 0xb0]
ucomisd xmm0, xmm1
ja 0x46ba09
movsd qword [esp + 0x48], xmm1
mov edx, dword [esp + 0x4c]
mov ebx, edx
shr edx, 0x14
and edx, 0x7ff
lea eax, [edx - 0x3f6]
mov ecx, eax
shr eax, 6
cmp eax, 0x14
jae 0x46ba69
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ebx
and ecx, 0x3f
mov dword [esp + 0x54], ecx
lea edx, [0x5a6f00]
lea ebp, [edx + eax*8]
mov esi, dword [ebp]
mov dword [esp + 0x6c], esi
mov ebp, dword [ebp + 4]
shl ebp, cl
mov edi, esi
shl esi, cl
lea ebx, [ecx - 0x20]
mov dword [esp + 0x68], ebx
mov ecx, ebx
shl edi, cl
mov dword [esp + 0x64], edi
neg ecx
mov edx, dword [esp + 0x6c]
shr edx, cl
inc eax
mov edi, dword [esp + 0x54]
cmp edi, 0x20
sbb edi, edi
and ebp, edi
and esi, edi
mov dword [esp + 0x6c], esi
cmp ecx, 0x20
sbb esi, esi
and edx, esi
or edx, ebp
cmp ebx, 0x20
sbb ebp, ebp
mov ebx, dword [esp + 0x64]
and ebx, ebp
or ebx, edx
cmp eax, 0x14
jae 0x46ba5f
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebp
mov edx, dword [esp + 0x50]
lea ebx, [0x5a6f00]
lea ebx, [ebx + edx*8 + 8]
mov eax, dword [ebx]
mov dword [esp + 0x9c], eax
mov ebx, dword [ebx + 4]
mov dword [esp + 0x98], ebx
mov edx, dword [esp + 0x54]
lea ebp, [edx - 0x40]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x94], ebp
mov ecx, ebp
shr eax, cl
mov dword [esp + 0x90], eax
shr ebx, cl
mov dword [esp + 0x8c], ebx
lea eax, [ecx - 0x20]
mov dword [esp + 0x88], eax
mov ecx, eax
mov ebx, dword [esp + 0x98]
shr ebx, cl
mov dword [esp + 0x84], ebx
neg eax
mov ecx, eax
mov ebp, dword [esp + 0x98]
shl ebp, cl
mov dword [esp + 0x80], ebp
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x9c]
shr ebp, cl
mov ecx, edx
mov ebx, dword [esp + 0x98]
shl ebx, cl
and ebx, edi
and ebp, esi
or ebp, ebx
mov ebx, dword [esp + 0x9c]
shl ebx, cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x9c]
shl esi, cl
mov edx, dword [esp + 0xa0]
and esi, edx
mov edx, dword [esp + 0x50]
lea ecx, [edx + 2]
or esi, ebp
mov dword [esp + 0x9c], esi
and ebx, edi
mov dword [esp + 0x98], ebx
mov ebp, dword [esp + 0x88]
cmp ebp, 0x20
sbb ebx, ebx
mov dword [esp + 0x7c], ebx
mov esi, dword [esp + 0x84]
and esi, ebx
cmp eax, 0x20
sbb edi, edi
mov dword [esp + 0x84], edi
mov ebx, dword [esp + 0x80]
and ebx, edi
mov ebp, dword [esp + 0x94]
cmp ebp, 0x20
sbb edi, edi
mov ebp, dword [esp + 0x8c]
and ebp, edi
mov edx, dword [esp + 0x90]
and edx, edi
or ebx, edx
or esi, ebx
mov edx, dword [esp + 0x6c]
or esi, edx
mov edx, dword [esp + 0x64]
or ebp, edx
cmp ecx, 0x14
jae 0x46ba53
mov dword [esp + 0x6c], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x64], edi
mov edx, dword [esp + 0x50]
lea ebx, [0x5a6f00]
lea ecx, [ebx + edx*8 + 0x10]
mov ebp, dword [ecx]
mov dword [esp + 0x90], ebp
mov ecx, dword [ecx + 4]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x8c]
shr esi, cl
mov ecx, eax
mov ebx, dword [esp + 0x8c]
shl ebx, cl
and esi, edi
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x84]
and ebx, esi
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
shr esi, cl
mov edx, dword [esp + 0x7c]
and esi, edx
mov ecx, dword [esp + 0x94]
shr ebp, cl
and ebp, edi
or ebx, ebp
or esi, ebx
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x90]
shl ebp, cl
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x90]
shl edx, cl
mov edi, dword [esp + 0xa0]
and edx, edi
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x90]
shr edi, cl
mov ebx, dword [esp + 0xa8]
and edi, ebx
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x8c]
shl ebx, cl
mov ecx, ebp
mov ebp, dword [esp + 0xa4]
and ebx, ebp
or edi, ebx
mov ebx, dword [esp + 0x50]
lea eax, [ebx + 3]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x9c]
or ebx, ebp
mov ebp, dword [esp + 0x98]
or esi, ebp
or edx, edi
mov ebp, dword [esp + 0xa4]
and ecx, ebp
cmp eax, 0x14
jae 0x46ba49
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x70]
and eax, 0x800fffff
or eax, 0x100000
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x50]
lea ebp, [0x5a6f00]
lea ebx, [ebp + ebx*8 + 0x18]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
mov esi, ecx
mov ecx, dword [esp + 0x94]
mov edi, ebp
shr ebp, cl
mov eax, dword [esp + 0x64]
and ebp, eax
or ebp, edx
shr ebx, cl
and ebx, eax
mov ecx, dword [esp + 0x6c]
mov eax, edi
shl edi, cl
mov edx, dword [esp + 0x84]
and edi, edx
or edi, ebx
mov ecx, dword [esp + 0x88]
shr eax, cl
mov edx, dword [esp + 0x7c]
and eax, edx
or eax, edi
or eax, esi
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
mov esi, edx
imul edx, ebx
mov dword [esp + 0x70], edx
mov edi, dword [esp + 0x48]
mov dword [esp + 0x20], edi
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
call fcn.0046aa60
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 0xc], ebp
call fcn.0046aa60
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x2c], ebp
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov edi, edx
mul esi
mov ebp, dword [esp + 0x40]
imul esi, ebp
add edx, esi
mov ebp, dword [esp + 0x70]
add edx, ebp
mov dword [esp + 0x38], edx
mov ebp, dword [esp + 0x28]
mov esi, ebp
and ebp, ebx
or esi, ebx
nop
nop
nop
mov edx, dword [esp + 0x24]
add edi, edx
mov edx, dword [esp + 0x28]
adc ebx, edx
mov dword [esp + 0x78], ebx
mov edx, ebx
shr ebx, 0x1d
not edx
and edx, esi
or edx, ebp
shr edx, 0x1f
add eax, ecx
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
adc ebp, esi
add edx, eax
adc ebp, 0
mov eax, ebp
shl ebp, 3
mov esi, edx
shl edx, 3
shr esi, 0x1d
or esi, ebp
or ebx, edx
cmp esi, 1
seta dl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x46b80f
mov ecx, esi
xor edx, edx
mov ebp, 0x20
jmp 0x46b817
mov ecx, esi
mov edx, ecx
mov esi, ebx
xor ebp, ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x6c], ecx
test edx, edx
xchg edi, ebx
seta bl
xchg edi, ebx
sete cl
cmp esi, 0x10000
setae bl
and ebx, ecx
or ebx, edi
test bl, bl
je 0x46b850
shr esi, 0x10
mov ebx, edx
shl ebx, 0x10
or esi, ebx
shr edx, 0x10
add ebp, 0x10
test edx, edx
seta bl
xchg edi, ebx
sete bl
xchg edi, ebx
cmp esi, 0x100
setae cl
and ecx, edi
or ecx, ebx
test cl, cl
je 0x46b87d
shr esi, 8
mov ebx, edx
shl ebx, 0x18
or esi, ebx
shr edx, 8
add ebp, 8
test edx, edx
jne 0x46ba3b
cmp esi, 0x100
jae 0x46ba2f
shr eax, 0x1d
mov dword [esp + 0x68], eax
lea edx, [0x4ff32b]
movzx edx, byte [edx + esi]
lea edx, [edx + ebp - 0x40]
neg edx
lea ebx, [edx - 0x3fe]
neg ebx
lea ecx, [edx - 0x1f]
mov dword [esp + 0x64], ecx
mov ebp, dword [esp + 0x74]
mov esi, ebp
shl ebp, cl
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
shr esi, cl
mov dword [esp + 0x60], esi
lea eax, [edx + 1]
mov ecx, eax
mov esi, dword [esp + 0x74]
shl esi, cl
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x6c]
shl esi, cl
mov dword [esp + 0x6c], esi
add edx, 0xffffffc1
neg edx
mov dword [esp + 0x94], edx
mov ecx, edx
mov esi, dword [esp + 0x70]
shr esi, cl
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x78]
shr esi, cl
mov dword [esp + 0xa4], esi
lea esi, [ecx - 0x20]
mov ecx, esi
mov edx, dword [esp + 0x78]
shr edx, cl
mov dword [esp + 0xa0], edx
neg ecx
mov edx, dword [esp + 0x78]
shl edx, cl
shl ebx, 0x14
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x64]
cmp ebx, 0x20
sbb ebx, ebx
and ebp, ebx
cmp edi, 0x20
sbb ebx, ebx
mov edi, dword [esp + 0x60]
and edi, ebx
cmp eax, 0x20
sbb eax, eax
mov ebx, dword [esp + 0x6c]
and ebx, eax
or edi, ebx
or ebp, edi
mov ebx, dword [esp + 0xa8]
and ebx, eax
cmp esi, 0x20
sbb eax, eax
mov esi, dword [esp + 0xa0]
and esi, eax
cmp ecx, 0x20
sbb eax, eax
and edx, eax
mov eax, dword [esp + 0x94]
cmp eax, 0x20
sbb eax, eax
mov edi, dword [esp + 0xa4]
and edi, eax
or edi, ebp
mov ebp, dword [esp + 0x70]
and ebp, eax
or edx, ebp
or esi, edx
or esi, ebx
mov eax, edi
shr edi, 0xc
shr esi, 0xc
shl eax, 0x14
or eax, esi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x9c]
or eax, edi
mov dword [esp + 0x5c], eax
movsd xmm0, qword [esp + 0x58]
mov eax, dword [esp + 0x68]
test eax, 1
je 0x46b9db
movsd xmm1, qword [0x51c4b4]
subsd xmm0, xmm1
add eax, 1
and eax, 7
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0
movsd xmm1, qword [0x51c5a0]
mulsd xmm0, xmm1
movsd qword [esp + 0xc0], xmm0
add esp, 0xac
ret
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
movsd qword [esp + 0xc0], xmm1
add esp, 0xac
ret
mov eax, esi
mov ecx, 0x100
call fcn.00463130
mov eax, esi
mov ecx, 0x100
mov esi, edx
call fcn.004631d0
mov ecx, 0x14
call fcn.00463130
mov eax, ecx
mov ecx, 0x14
call fcn.00463130
mov ecx, 0x14
call fcn.00463130
mov ecx, 0x14
call fcn.00463130
nop
call fcn.00461ca0
jmp fcn.0046b370