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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, dword [ebp + 8]
sub esp, 0x74
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
cmp ecx, 0xffffffff
jne 0x4cfd24
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0x4cfd3d
lea eax, [ecx + edi]
push eax
push ecx
mov ecx, dword [esi + 0x9c]
call fcn.004ced80
mov ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
cmp eax, 4
mov ebx, 1
cmovne ebx, eax
mov dword [esp + 0x1c], ebx
cmp ebx, 3
jne 0x4cfd55
xor eax, eax
jmp 0x4cfd71
cmp ebx, 2
jne 0x4cfd61
xor eax, eax
lea ebx, [eax + 1]
jmp 0x4cfd6d
mov eax, dword [esi + 0x124]
sub eax, dword [esi + 0xc4]
mov dword [esp + 0x1c], ebx
movd xmm0, eax
mov edx, 1
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x24], edx
movsd qword [esp + 0x78], xmm0
nop dword [eax + eax]
cmp edx, 1
mov dword [esp + 0x3c], edx
mov eax, 0x2000
movsd qword [esp + 0x58], xmm0
mov edx, 0x1000
mov dword [esp + 0x14], 0
cmove eax, edx
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x4d06fb
push 0
push edi
push dword [ebp + 0xc]
mov ecx, esi
movsd qword [esp + 0x6c], xmm0
xor bh, bh
movsd qword [esp + 0x74], xmm0
xor bl, bl
mov dword [esp + 0x24], 0
call fcn.004d0c40
xor edi, edi
mov dword [esp + 0x20], eax
cmp dword [ebp + 0x10], edi
jle 0x4d01fb
mov eax, dword [esp + 0x10]
mov bh, byte [edi + eax]
mov byte [esp + 0x30], bh
push dword [esp + 0x30]
call fcn.004d4650
add esp, 4
mov ecx, 1
test eax, eax
cmovle eax, ecx
mov ecx, esi
push edi
push dword [ebp + 0x10]
mov dword [esp + 0x48], eax
push dword [ebp + 0xc]
call fcn.004d0c40
mov ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x54], ecx
cmp ecx, eax
jne 0x4cfe43
cmp bh, 9
je 0x4cfe43
cmp bl, 9
jne 0x4d01ec
jmp 0x4cfe4c
cmp bl, 9
jne 0x4cffe5
mov eax, dword [esi + 0x9c]
sub esp, 8
mov ecx, esi
movd xmm0, dword [eax + 0x3c]
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004cf220
mov edx, dword [esp + 0x1c]
movsd xmm3, qword [esp + 0x58]
fstp qword [esp + 0x70]
movsd xmm4, qword [esp + 0x70]
cmp edx, 3
jne 0x4cfeab
movaps xmm0, xmm3
divsd xmm0, xmm4
cvttsd2si eax, xmm0
movaps xmm0, xmm3
inc eax
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm4
subsd xmm2, xmm3
addsd xmm0, xmm2
jmp 0x4d01c6
movd xmm1, dword [esi + 0xc4]
mov ecx, edi
movd xmm0, dword [esi + 0x124]
cvtdq2pd xmm1, xmm1
mov dword [esp + 0x18], ecx
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm3
subsd xmm1, xmm0
movaps xmm0, xmm1
divsd xmm0, xmm4
cvttsd2si eax, xmm0
inc eax
movd xmm2, eax
mov eax, ecx
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm4
subsd xmm2, xmm1
movsd qword [esp + 0x70], xmm2
movaps xmm0, xmm2
addsd xmm0, xmm3
movaps xmm1, xmm2
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x60], xmm0
movaps xmm6, xmm0
movsd qword [esp + 0x68], xmm0
movaps xmm4, xmm0
test edx, edx
jne 0x4cff57
cmp dword [esp + 0x24], 1
jne 0x4d01d6
cvttsd2si eax, xmm0
push edx
push edx
mov ecx, esi
push eax
push dword [ebp + 0x1c]
cvttsd2si eax, xmm3
push eax
mov eax, dword [esp + 0x34]
or eax, 0x1000
push eax
call fcn.004cf340
movsd xmm2, qword [esp + 0x70]
movsd xmm3, qword [esp + 0x58]
jmp 0x4d01d6
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x68], xmm0
mov dword [esp + 0x18], eax
cmp edx, 1
jne 0x4d01d6
movd xmm5, dword [ebp + 0x28]
cvtdq2pd xmm5, xmm5
mov dword [esp + 0x18], eax
movsd qword [esp + 0x60], xmm0
comisd xmm6, xmm5
movsd qword [esp + 0x68], xmm0
jbe 0x4d01d6
push dword [esp + 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [ebp + 8], 4
jne 0x4d058a
movsd xmm0, qword [esp + 0x48]
mulsd xmm0, qword [0x55cb60]
movd xmm1, dword [ebp + 0x28]
cvtdq2pd xmm1, xmm1
addsd xmm0, qword [esp + 0x58]
comisd xmm1, xmm0
jbe 0x4d058a
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x40]
add eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
movzx edx, cl
mov ecx, dword [esi + 0xd0]
movzx eax, al
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
cmp eax, edx
jne 0x4d0089
test ecx, ecx
je 0x4d002c
test eax, eax
je 0x4d002c
add eax, 0xffffffbf
jns 0x4d0012
xor eax, eax
jmp 0x4d0019
cmp eax, ecx
jl 0x4d0019
lea eax, [ecx - 1]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xd4]
mov edx, dword [eax + ecx*4 + 4]
mov eax, dword [eax + ecx*4 + 8]
jmp 0x4d0038
mov edx, dword [esi + 0x138]
mov eax, dword [esi + 0x13c]
push eax
push edx
call fcn.004c81a0
mov ecx, dword [0x599954]
add esp, 8
mov ebx, dword [esp + 0x10]
mov edx, edi
sub edx, dword [esp + 0x18]
add ebx, dword [esp + 0x18]
mov eax, dword [ecx]
push edx
push ebx
mov dword [esp + 0x34], edx
mov eax, dword [eax + 0x160]
call eax
fsub qword [esp + 0x58]
mov eax, dword [esp + 0x14]
mov ebx, edi
mov edx, dword [esp + 0x10]
sub ebx, eax
mov ecx, dword [esp + 0x2c]
add edx, eax
mov dword [esp + 0x38], ebx
fadd qword [esp + 0x68]
jmp 0x4d0104
test ecx, ecx
je 0x4d00b4
test eax, eax
je 0x4d00b4
add eax, 0xffffffbf
jns 0x4d009a
xor eax, eax
jmp 0x4d00a1
cmp eax, ecx
jl 0x4d00a1
lea eax, [ecx - 1]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xd4]
mov edx, dword [eax + ecx*4 + 4]
mov eax, dword [eax + ecx*4 + 8]
jmp 0x4d00c0
mov edx, dword [esi + 0x138]
mov eax, dword [esi + 0x13c]
push eax
push edx
call fcn.004c81a0
mov ecx, dword [0x599954]
add esp, 8
mov edx, dword [esp + 0x10]
mov ebx, edi
sub ebx, dword [esp + 0x14]
add edx, dword [esp + 0x14]
mov eax, dword [ecx]
push ebx
push edx
mov dword [esp + 0x40], ebx
mov eax, dword [eax + 0x160]
mov dword [esp + 0x3c], edx
call eax
mov edx, dword [esp + 0x34]
mov ecx, edi
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x1c], 0
fstp qword [esp + 0x70]
movsd xmm2, qword [esp + 0x70]
movsd qword [esp + 0x70], xmm2
jne 0x4d02e5
movsd xmm0, qword [esp + 0x58]
mov ebx, dword [esp + 0x28]
or ebx, dword [esp + 0x20]
cvttsd2si eax, xmm0
addsd xmm0, xmm2
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
cvttsd2si ecx, xmm0
mov dword [esp + 0x20], ecx
je 0x4d02ce
push dword [esi + 0xe4]
mov ecx, dword [0x599954]
cvttsd2si eax, xmm2
mov edx, dword [ecx]
inc eax
push eax
push dword [ebp + 0x1c]
push dword [esp + 0x40]
call dword [edx + 0xac]
push dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, esi
add eax, dword [esp + 0x14]
push eax
cvttsd2si eax, qword [esp + 0x68]
push dword [esp + 0x28]
push dword [ebp + 0x1c]
push eax
push ebx
call fcn.004cf340
mov ecx, dword [0x599954]
mov eax, dword [ecx]
call dword [eax + 0xbc]
movsd xmm2, qword [esp + 0x70]
movsd xmm3, qword [esp + 0x58]
mov eax, dword [esp + 0x44]
mov bh, byte [esp + 0x30]
cmp dword [esp + 0x48], eax
je 0x4d01d6
movaps xmm0, xmm2
addsd xmm0, xmm3
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm0
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x54]
addsd xmm2, xmm3
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
movsd qword [esp + 0x58], xmm2
add edi, dword [esp + 0x40]
mov bl, bh
cmp edi, dword [ebp + 0x10]
jl 0x4cfdf2
cmp bh, 9
jne 0x4d0343
mov eax, dword [esi + 0x9c]
sub esp, 8
mov ecx, esi
movd xmm0, dword [eax + 0x3c]
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004cf220
mov ebx, dword [esp + 0x1c]
fstp qword [esp + 0x70]
movsd xmm3, qword [esp + 0x70]
cmp ebx, 3
je 0x4d0635
movd xmm1, dword [esi + 0xc4]
movd xmm0, dword [esi + 0x124]
movsd xmm2, qword [esp + 0x58]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm2
subsd xmm1, xmm0
movaps xmm0, xmm1
divsd xmm0, xmm3
cvttsd2si eax, xmm0
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
subsd xmm0, xmm1
movsd qword [esp + 0x68], xmm0
test ebx, ebx
jne 0x4d0555
cmp dword [esp + 0x24], 1
jne 0x4d04bf
addsd xmm0, xmm2
mov ecx, esi
push ebx
push ebx
cvttsd2si eax, xmm0
push eax
push dword [ebp + 0x1c]
cvttsd2si eax, xmm2
push eax
mov eax, dword [esp + 0x34]
or eax, 0x1000
push eax
call fcn.004cf340
push edi
mov edi, dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [ebp + 0xc]
call fcn.004d0c40
mov ecx, eax
jmp 0x4d04e5
push dword [esp + 0x38]
push edx
push ecx
push dword [ebp + 0x1c]
mov ecx, esi
push eax
push ebx
call fcn.004cf340
jmp 0x4d01a5
cmp dword [esp + 0x1c], 1
jne 0x4d01ab
movd xmm1, dword [ebp + 0x28]
movaps xmm0, xmm2
movsd xmm3, qword [esp + 0x58]
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm3
comisd xmm0, xmm1
jbe 0x4d01b1
mov edi, dword [esp + 0x18]
cmp eax, edi
je 0x4d059a
subsd xmm1, qword [esp + 0x60]
cvttsd2si eax, xmm1
neg eax
push eax
push dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push ecx
add eax, edi
mov ecx, esi
push eax
call fcn.004cf9f0
add eax, edi
jmp 0x4d05b6
mov ecx, dword [esi + 0xd0]
test ecx, ecx
je 0x4d0377
movzx eax, al
test eax, eax
je 0x4d0377
add eax, 0xffffffbf
jns 0x4d035d
xor eax, eax
jmp 0x4d0364
cmp eax, ecx
jl 0x4d0364
lea eax, [ecx - 1]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xd4]
mov edx, dword [eax + ecx*4 + 4]
mov eax, dword [eax + ecx*4 + 8]
jmp 0x4d0383
mov edx, dword [esi + 0x138]
mov eax, dword [esi + 0x13c]
push eax
push edx
call fcn.004c81a0
mov ecx, dword [0x599954]
add esp, 8
mov edx, dword [esp + 0x10]
mov ebx, edi
sub ebx, dword [esp + 0x14]
add edx, dword [esp + 0x14]
mov eax, dword [ecx]
push ebx
push edx
mov eax, dword [eax + 0x160]
call eax
mov eax, dword [esp + 0x1c]
fstp qword [esp + 0x48]
test eax, eax
jne 0x4d049d
movsd xmm1, qword [esp + 0x58]
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x48]
cvttsd2si ecx, xmm1
mov dword [esp + 0x28], eax
movsd qword [esp + 0x68], xmm0
mov dword [esp + 0x54], ecx
cmp edx, dword [esp + 0x18]
je 0x4d0466
push dword [esi + 0xe4]
mov ecx, dword [0x599954]
mov ebx, dword [ebp + 0x1c]
cvttsd2si eax, xmm0
mov edx, dword [ecx]
inc eax
push eax
push ebx
push dword [esp + 0x60]
call dword [edx + 0xac]
movsd xmm0, qword [esp + 0x48]
mov ecx, edi
mov eax, dword [esp + 0x18]
sub ecx, eax
addsd xmm0, qword [esp + 0x58]
add eax, dword [esp + 0x10]
push ecx
push eax
mov ecx, esi
cvttsd2si eax, xmm0
push eax
cvttsd2si eax, qword [esp + 0x6c]
push ebx
push eax
push dword [esp + 0x3c]
call fcn.004cf340
mov ecx, dword [0x599954]
mov eax, dword [ecx]
call dword [eax + 0xbc]
push edi
mov edi, dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [ebp + 0xc]
call fcn.004d0c40
mov ebx, dword [esp + 0x1c]
mov ecx, eax
jmp 0x4d04d8
mov eax, dword [esp + 0x10]
addsd xmm0, xmm1
push ebx
add eax, edx
push eax
cvttsd2si eax, xmm0
push eax
push dword [ebp + 0x1c]
push ecx
push dword [esp + 0x3c]
mov ecx, esi
call fcn.004cf340
push edi
mov edi, dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [ebp + 0xc]
call fcn.004d0c40
mov ebx, dword [esp + 0x1c]
mov ecx, eax
jmp 0x4d04d8
cmp eax, 1
je 0x4d069d
movsd xmm0, qword [esp + 0x48]
cmp eax, 3
je 0x4d0656
mov ebx, dword [esp + 0x1c]
movsd qword [esp + 0x68], xmm0
push edi
mov edi, dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [ebp + 0xc]
call fcn.004d0c40
mov ecx, eax
test ebx, ebx
jne 0x4d0569
mov edx, dword [esp + 0x24]
cmp edx, 1
jne 0x4d056d
movsd xmm0, qword [esp + 0x68]
or ecx, 0x1000
addsd xmm0, qword [esp + 0x58]
mov eax, dword [esi + 0x12c]
add eax, dword [esi + 0x124]
push edi
push dword [esp + 0x14]
push eax
push dword [ebp + 0x1c]
cvttsd2si eax, xmm0
push eax
push ecx
mov ecx, esi
call fcn.004cf340
mov eax, dword [esp + 0x3c]
movsd xmm0, qword [esp + 0x78]
inc eax
mov ecx, eax
mov dword [esp + 0x24], eax
cmp ecx, 1
mov dword [esp + 0x3c], ecx
mov eax, 0x2000
movsd qword [esp + 0x58], xmm0
mov ecx, 0x1000
mov dword [esp + 0x14], 0
cmove eax, ecx
mov dword [esp + 0x28], eax
jmp 0x4cfdbe
cmp ebx, 1
je 0x4d05d3
push edi
mov edi, dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [ebp + 0xc]
call fcn.004d0c40
mov edx, dword [esp + 0x24]
inc edx
mov dword [esp + 0x24], edx
cmp edx, 2
jg 0x4d0682
movsd xmm0, qword [esp + 0x78]
mov ecx, dword [esp + 0x10]
jmp 0x4cfd90
mov eax, dword [esp + 0x14]
add eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
subsd xmm1, xmm3
cvttsd2si eax, xmm1
neg eax
push eax
push dword [esp + 0x24]
push ebx
push edx
mov ecx, esi
call fcn.004cf9f0
add eax, dword [esp + 0x14]
mov esi, dword [ebp + 0xc]
push dword [esp + 0x10]
add esi, eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
push dword [esp + 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movd xmm1, dword [ebp + 0x28]
add esp, 4
cvtdq2pd xmm1, xmm1
xor eax, eax
cmp dword [ebp + 8], 4
subsd xmm1, qword [esp + 0x58]
jne 0x4d061c
movsd xmm0, qword [esp + 0x68]
mulsd xmm0, qword [0x55cb60]
comisd xmm1, xmm0
seta al
add eax, dword [esp + 0x14]
add eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
comisd xmm1, xmmword [esp + 0x68]
seta al
add eax, dword [esp + 0x14]
add eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
movsd xmm0, qword [esp + 0x58]
divsd xmm0, xmm3
cvttsd2si eax, xmm0
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
subsd xmm0, qword [esp + 0x58]
push dword [esp + 0x10]
movsd qword [esp + 0x7c], xmm0
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movsd xmm0, qword [esp + 0x7c]
add esp, 4
addsd xmm0, qword [esp + 0x58]
cvttsd2si eax, xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
push dword [esp + 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ebp + 0xc]
add esp, 4
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
movd xmm0, dword [ebp + 0x28]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cvtdq2pd xmm0, xmm0
cmp ecx, eax
je 0x4d06dd
subsd xmm0, qword [esp + 0x60]
mov ecx, dword [esp + 0x10]
sub edi, eax
add ecx, eax
cvttsd2si eax, xmm0
neg eax
push eax
push dword [esp + 0x24]
push edi
push ecx
mov ecx, esi
call fcn.004cf9f0
add eax, dword [esp + 0x18]
jmp 0x4d05b6
subsd xmm0, qword [esp + 0x58]
cvttsd2si eax, xmm0
neg eax
push eax
push dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push ebx
add eax, ecx
push eax
jmp 0x4d05ab
test ebx, ebx
jne 0x4d0740
push 0xffffffffffffffff
push edi
push dword [ebp + 0xc]
mov ecx, esi
call fcn.004d0c40
cmp dword [esp + 0x24], 1
jne 0x4d0735
mov edx, dword [esi + 0x124]
or eax, 0x1000
mov ecx, dword [esi + 0x12c]
push edi
push ebx
add ecx, edx
push ecx
push dword [ebp + 0x1c]
mov ecx, esi
push edx
push eax
call fcn.004cf340
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
xor eax, eax
cmp ebx, 1
pop edi
cmove eax, dword [ebp + 0xc]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24