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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov ecx, dword [ebp + 0xc]
mov eax, dword [0x547008]
xor eax, ebp
mov dword [esp + 0x88], eax
pxor xmm0, xmm0
test ecx, ecx
je 0x4e78be
mov eax, dword [ebp + 0x10]
lea edx, [eax + ecx]
movq xmm1, qword [0x5339c0]
cmp edx, 0x135
jg 0x4e78ba
cmp edx, 0xfffffebd
jl 0x4e78be
cmp ecx, 0xf
jg 0x4e798c
cmp eax, 0xffffffea
jae 0x4e78e6
cmp eax, 0x16
ja 0x4e796e
test ecx, ecx
jle 0x4e78af
xor eax, eax
xor edi, edi
inc edi
xor ecx, ecx
nop dword [eax + eax]
mov edx, dword [ebp + 8]
movsx ebx, byte [edx + edi - 1]
mov esi, ebx
mov edx, 0xa
mul edx
sar esi, 0x1f
add eax, ebx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
adc ecx, esi
add eax, 0xffffffd0
adc ecx, 0xffffffff
cmp edi, dword [ebp + 0xc]
jge 0x4e788c
inc edi
mov edx, 0x99999999
cmp eax, edx
mov edx, ecx
mov esi, 0x19999999
sbb edx, esi
jb 0x4e7850
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x533230]
subpd xmm0, xmmword [0x533240]
haddpd xmm0, xmm0
mov eax, dword [ebp + 0x10]
mulsd xmm0, qword [eax*8 + 0x53dc90]
jmp 0x4e78be
movdqa xmm0, xmm1
movq qword [esp + 0x58], xmm0
fld qword [esp + 0x58]
fstp xword [esp + 0xc]
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.004e8be6
fld xword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
neg eax
test ecx, ecx
jle 0x4e7960
mov dword [esp + 0xc], eax
xor eax, eax
xor edi, edi
inc edi
xor ecx, ecx
nop word [eax + eax]
mov edx, dword [ebp + 8]
movsx ebx, byte [edx + edi - 1]
mov esi, ebx
mov edx, 0xa
mul edx
sar esi, 0x1f
add eax, ebx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
adc ecx, esi
add eax, 0xffffffd0
adc ecx, 0xffffffff
cmp edi, dword [ebp + 0xc]
jge 0x4e793c
inc edi
mov edx, 0x99999999
cmp eax, edx
mov edx, ecx
mov esi, 0x19999999
sbb edx, esi
jb 0x4e7900
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x533230]
subpd xmm0, xmmword [0x533240]
haddpd xmm0, xmm0
mov eax, dword [esp + 0xc]
divsd xmm0, qword [eax*8 + 0x53dc90]
jmp 0x4e78be
test eax, eax
js 0x4e7984
mov esi, 0xf
sub esi, ecx
sub eax, esi
cmp eax, 0x16
jle 0x4e8097
test ecx, ecx
jle 0x4e7a0c
mov dword [esp + 0x20], edx
xor esi, esi
xor ecx, ecx
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [ebp + 8]
movsx ebx, byte [eax + edi]
inc edi
mov dword [esp + 0xc], edi
mov eax, esi
mov esi, ebx
mov edx, 0xa
mul edx
sar esi, 0x1f
mov edi, eax
add edi, ebx
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*2]
adc ecx, esi
mov esi, edi
mov edi, dword [esp + 0xc]
add esi, 0xffffffd0
adc ecx, 0xffffffff
cmp edi, dword [ebp + 0xc]
jge 0x4e79e9
mov eax, 0x99999999
cmp esi, eax
mov eax, ecx
mov edx, 0x19999999
sbb eax, edx
jb 0x4e79a0
mov ebx, dword [ebp + 0xc]
cmp edi, ebx
je 0x4e7a18
xor eax, eax
mov edx, dword [ebp + 8]
cmp byte [edx + edi], 0x35
setge al
add esi, eax
adc ecx, 0
sub dword [esp + 0x20], edi
mov eax, 4
jmp 0x4e7a21
mov dword [esp + 0x20], edx
xor edi, edi
xor esi, esi
xor ecx, ecx
jmp 0x4e79e9
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 8], eax
test ecx, 0xffc00000
mov ebx, 0
je 0x4e7a36
mov edi, ecx
jmp 0x4e7a67
mov eax, 0x1000
xor ebx, ebx
mov edi, ecx
nop
shld edi, esi, 0xa
shl esi, 0xa
add ebx, 0xfffffff6
cmp ecx, eax
mov ecx, edi
jb 0x4e7a40
jmp 0x4e7a67
shld edi, esi, 1
add esi, esi
dec ebx
test edi, edi
jns 0x4e7a60
mov dword [esp + 0x34], ebx
mov ecx, ebx
neg cl
xor ebx, ebx
mov edx, dword [esp + 8]
shld ebx, edx, cl
shl edx, cl
xor eax, eax
test cl, 0x20
cmovne ebx, edx
cmovne edx, eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x20]
cmp ecx, 0xfffffea4
jl 0x4e78be
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], ebx
movaps xmm0, xmmword [0x5337e0]
lea eax, [esp + 0x78]
movups xmmword [eax], xmm0
lea ebx, [esp + 0x74]
mov dword [ebx], 0xffffffff
push ebx
push eax
push ecx
mov esi, ecx
call fcn.004df600
add esp, 0xc
sub esi, dword [ebx]
je 0x4e7b1b
mov dword [esp + 0x20], esi
lea eax, [esi - 1]
cmp eax, 6
movq xmm0, qword [0x5339c0]
ja case.default.0x4e7afb
xor ecx, ecx
mov ebx, 0x98968000
lea edx, [ebx + 0x7698000]
mov dword [esp + 0x18], 4
jmp dword [eax*4 + 0x53dd48]
xor ecx, ecx
add ebx, 0x5b8d8000
setb cl
mov dword [esp + 0x18], 0x14
jmp 0x4e7b84
mov ebx, edx
jmp 0x4e7b84
movq xmm0, qword [0x5339c0]
jmp 0x4e7bf1
mov dword [esp + 0x18], 0x18
jmp 0x4e7b84
xor ecx, ecx
add ebx, 0x2f698000
setb cl
mov dword [esp + 0x18], 7
jmp 0x4e7b84
xor ecx, ecx
add ebx, 0x3a98000
setb cl
mov dword [esp + 0x18], 0xe
jmp 0x4e7b84
xor ecx, ecx
add ebx, 0x61698000
setb cl
mov dword [esp + 0x18], 0xa
jmp 0x4e7b84
xor ecx, ecx
add ebx, 0x2ab98000
setb cl
mov dword [esp + 0x18], 0x11
mov eax, ebx
mul edi
mov dword [esp + 0x30], eax
mov esi, ecx
imul esi, edi
mov edi, edx
mov eax, ebx
mov ebx, dword [esp + 0x1c]
mul ebx
imul ecx, ebx
add ecx, edx
mov edx, dword [esp + 0x34]
add edx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov edx, 0x80000000
and eax, edx
add ecx, dword [esp + 0x30]
adc edi, esi
add eax, edx
adc ecx, 0
mov dword [esp + 0x1c], ecx
adc edi, 0
mov eax, 0x13
sub eax, dword [ebp + 0xc]
mov edx, dword [esp + 8]
mov ecx, edx
add ecx, 4
mov ebx, dword [esp + 0xc]
mov esi, ebx
adc esi, 0
cmp eax, dword [esp + 0x20]
cmovl ebx, esi
mov dword [esp + 0xc], ebx
cmovl edx, ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x7c]
mov eax, esi
mul edi
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, esi
mul ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x78]
mov eax, esi
mul edi
mov edi, edx
mov dword [esp + 0x30], eax
mov eax, esi
mul ebx
xor ebx, ebx
add edx, dword [esp + 0x30]
setb bl
add edx, dword [esp + 0x18]
adc ebx, 0
add edi, dword [esp + 0x20]
adc ecx, 0
add edi, dword [esp + 0x1c]
adc ecx, 0
add edx, 0x80000000
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x34]
lea eax, [edx + eax + 0x40]
mov dword [esp + 0x20], eax
adc edi, ebx
adc ecx, 0
xor ebx, ebx
mov eax, dword [esp + 8]
mov edx, eax
mov esi, dword [esp + 0xc]
or edx, esi
sete bl
xor ebx, 9
add ebx, eax
mov dword [esp + 8], ebx
mov edx, 0x400000
adc esi, 0
mov dword [esp + 0xc], esi
cmp ecx, edx
jae 0x4e7cb8
mov edx, 0x1000
mov ebx, dword [esp + 0x20]
mov esi, ecx
nop word cs:[eax + eax]
shld esi, edi, 0xa
shl edi, 0xa
add ebx, 0xfffffff6
cmp ecx, edx
mov ecx, esi
jb 0x4e7ca0
jmp 0x4e7cbe
mov edx, dword [esp + 8]
jmp 0x4e7cdb
mov ebx, dword [esp + 0x20]
mov esi, ecx
test esi, esi
js 0x4e7cb2
mov edx, dword [esp + 8]
nop word cs:[eax + eax]
shld esi, edi, 1
add edi, edi
dec ebx
test esi, esi
jns 0x4e7cd0
mov ecx, dword [esp + 0x20]
sub ecx, ebx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0xc]
shld eax, edx, cl
mov ecx, dword [esp + 0x20]
shl edx, cl
mov ecx, eax
xor eax, eax
test byte [esp + 0x20], 0x20
cmovne ecx, edx
cmovne edx, eax
mov dword [esp + 8], edx
lea eax, [ebx + 0x472]
cmp ebx, 0xfffffb8f
mov edx, 0
cmovl eax, edx
cmp ebx, 0xfffffbc3
mov edx, 0x35
cmovl edx, eax
cmp edx, 3
mov dword [esp + 0xc], ecx
jle 0x4e7d3d
mov eax, 0x40
sub eax, edx
mov dword [esp + 0x20], eax
jmp 0x4e7d82
mov ecx, 4
sub ecx, edx
shrd edi, esi, cl
shr esi, cl
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
shrd eax, edx, cl
add ebx, ecx
shr edx, cl
test cl, 0x20
cmovne edi, esi
mov ecx, 0
cmovne esi, ecx
cmovne eax, edx
cmovne edx, ecx
add eax, 9
mov dword [esp + 8], eax
adc edx, 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], 0x3c
mov eax, esi
mov edx, dword [esp + 0x20]
mov ecx, edx
shr eax, cl
mov dword [esp + 0x1c], eax
test dl, 0x20
mov ecx, eax
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x34], ecx
mov eax, edi
mov ecx, edx
shrd eax, esi, cl
mov ecx, edx
test cl, 0x20
cmovne eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
xor edx, edx
dec edx
mov dword [esp + 0x20], ecx
shl edx, cl
test cl, 0x20
mov ecx, 0
mov eax, edx
cmovne eax, ecx
mov ecx, 0xffffffff
cmove edx, ecx
not eax
and eax, edi
not edx
and edx, esi
mov ecx, dword [esp + 0x20]
dec cl
mov edi, 8
xor esi, esi
shld esi, edi, cl
shld edx, eax, 3
shl eax, 3
shl edi, cl
test cl, 0x20
cmovne esi, edi
mov ecx, 0
cmovne edi, ecx
add ebx, dword [esp + 0x20]
mov dword [esp + 0x40], edi
mov ecx, edi
add ecx, dword [esp + 8]
mov dword [esp + 0x44], esi
adc esi, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
cmp eax, ecx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x18], edx
mov eax, edx
mov dword [esp + 0x38], esi
sbb eax, esi
setae al
movzx eax, al
add eax, dword [esp + 0x1c]
adc edi, 0
cmp edi, 0x200000
jb 0x4e7e62
mov edx, edi
mov esi, 0x400000
nop
shrd eax, edi, 1
shr edx, 1
inc ebx
lea ecx, [esi - 1]
cmp ecx, edi
mov edi, edx
jb 0x4e7e50
jmp 0x4e7e64
mov edx, edi
cmp ebx, 0x3cc
jge 0x4e78be
pxor xmm1, xmm1
cmp ebx, 0xfffffbce
jl 0x4e7ef9
xor esi, esi
dec esi
mov edi, esi
add edi, 1
mov ecx, 0
adc ecx, 0xfffff
and ecx, edx
sete byte [esp + 0x20]
cmp ebx, 0xfffffbce
je 0x4e7ec4
or edi, ecx
jne 0x4e7ec4
mov ecx, edx
shld edx, eax, 1
add eax, eax
and ecx, 0x80000
sete byte [esp + 0x20]
cmp ebx, 0xfffffbd0
lea ebx, [ebx - 1]
jl 0x4e7ec4
test ecx, ecx
je 0x4e7ea2
cmp ebx, 0xfffffbce
sete cl
shl ebx, 0x14
add ebx, 0x43300000
test byte [esp + 0x20], cl
mov ecx, 0
cmovne ebx, ecx
and eax, esi
mov ecx, 0xfffff
and edx, ecx
or edx, ebx
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 8]
mov edx, dword [esp + 0x44]
sbb edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x18]
sbb edx, eax
jae 0x4e78ba
cmp ecx, dword [esp + 0x3c]
sbb eax, dword [esp + 0x38]
jae 0x4e78ba
ucomisd xmm1, qword [0x5339c0]
jae 0x4e78ba
mov eax, 0xfffffffe
movaps xmmword [esp + 0x20], xmm1
movsd qword [esp + 0x50], xmm1
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0xc], edx
mov ecx, edx
shr ecx, 0x14
and ecx, 0x7ff
shld edx, esi, 1
add ecx, 0xfffffbcc
mov dword [esp + 8], esi
lea edi, [esi + esi]
and edi, eax
mov ebx, 0x1fffff
and edx, ebx
add eax, 2
adc ebx, 0
or ebx, edx
or eax, edi
test dword [esp + 0xc], 0x7ff00000
mov esi, 0xfffffbcd
cmovne esi, ecx
cmove ebx, edx
cmove eax, edi
mov dword [esp + 0x64], ebx
or eax, 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0xffffffff
sub esp, 0x14
movups xmm0, xmmword [esp + 0x74]
movups xmmword [esp + 4], xmm0
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
call fcn.00519b40
add esp, 0x14
test eax, eax
js 0x4e802d
je 0x4e8026
mov eax, dword [esp + 0xc]
add eax, 0x80000000
or eax, dword [esp + 8]
je 0x4e8037
mov eax, dword [esp + 0xc]
xor eax, 0x7ff00000
or eax, dword [esp + 8]
movsd xmm0, qword [0x5339c0]
je 0x4e78be
cmp dword [esp + 0xc], 0
js 0x4e803f
mov eax, dword [esp + 8]
add eax, 1
mov ecx, dword [esp + 0xc]
adc ecx, 0
movd xmm1, ecx
movd xmm0, eax
punpckldq xmm0, xmm1
jmp 0x4e78be
test byte [esp + 8], 1
jne 0x4e804f
movaps xmm0, xmmword [esp + 0x20]
jmp 0x4e78be
xorps xmm0, xmm0
jmp 0x4e78be
mov eax, dword [esp + 8]
add eax, 0xffffffff
mov ecx, dword [esp + 0xc]
adc ecx, 0xffffffff
jmp 0x4e8015
mov eax, 0x7ff00000
xor eax, dword [esp + 0xc]
or eax, dword [esp + 8]
movsd xmm0, qword [0x5339c0]
je 0x4e78be
movaps xmm0, xmmword [esp + 0x20]
movsd qword [esp + 0x48], xmm0
cmp dword [esp + 0xc], 0
jns 0x4e8000
mov eax, 0x7fffffff
and eax, dword [esp + 0x4c]
xorps xmm0, xmm0
or eax, dword [esp + 0x48]
je 0x4e78be
jmp 0x4e8000
test ecx, ecx
jle 0x4e810e
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
xor eax, eax
xor ecx, ecx
inc ecx
xor esi, esi
mov edx, dword [ebp + 8]
movsx edi, byte [edx + ecx - 1]
mov ebx, edi
mov edx, 0xa
mul edx
sar ebx, 0x1f
add eax, edi
lea esi, [esi + esi*4]
lea esi, [edx + esi*2]
adc esi, ebx
add eax, 0xffffffd0
adc esi, 0xffffffff
cmp ecx, dword [ebp + 0xc]
jge 0x4e80e6
inc ecx
mov edx, 0x99999999
cmp eax, edx
mov edx, esi
mov edi, 0x19999999
sbb edx, edi
jb 0x4e80aa
movd xmm0, eax
movd xmm1, esi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x533230]
subpd xmm0, xmmword [0x533240]
haddpd xmm0, xmm0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 8]
mulsd xmm0, qword [esi*8 + 0x53dc90]
jmp 0x4e78af
call fcn.00518e20
int3