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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
push esi
push edi
movzx edi, cx
mov byte [esp + 0x27], dl
movss dword [esp + 0x2c], xmm3
movss dword [esp + 0x40], xmm2
lea esi, [edi*8]
movss dword [esp + 0x44], xmm1
sub esi, edi
mov dword [esp + 0x88], edi
shl esi, 2
mov dword [esp + 0x8c], esi
cmp byte [esi + 0xb23500], 0
jne 0x4d1dab
call fcn.004d14b0
test al, al
jne 0x4d1dab
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi*4 + 0xa91ea0]
lea edx, [esp + 0x90]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x4c]
test eax, eax
jne 0x4d1da3
mov eax, dword [esp + 0x94]
movss xmm1, dword [0x4fc6e0]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x14]
mov ecx, eax
shr ecx, 0x10
shr eax, 8
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x18]
mov ecx, eax
shr ecx, 0x18
mov dword [esp + 0x80], ecx
mov ecx, eax
shr ecx, 0x10
shr eax, 8
cmp dword [0xa91e98], 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
jne 0x4d1e52
movss xmm4, dword [0x4fc598]
movss xmm0, dword [esi + 0xb23508]
movaps xmm5, xmm4
nop dword [eax + eax]
mulss xmm5, xmm1
comiss xmm0, xmm5
ja 0x4d1e30
movss xmm0, dword [esi + 0xb2350c]
movss dword [esp + 0x50], xmm5
mulss xmm4, xmm1
comiss xmm0, xmm4
ja 0x4d1e47
jmp 0x4d1e68
movss xmm5, dword [esi + 0xb23508]
movss xmm4, dword [esi + 0xb2350c]
movss dword [esp + 0x50], xmm5
mov eax, dword [esp + 0x90]
cvttss2si ecx, xmm5
cdq
movss xmm2, dword [esp + 0x2c]
idiv ecx
movss xmm0, dword [esp + 0x44]
movss xmm3, dword [esp + 0x40]
subss xmm0, xmm2
mov byte [esp + 0x13], al
mulss xmm2, xmm1
mov dword [esp + 0x74], ecx
mov dword [esp + 0x2c], 1
mulss xmm0, xmm5
mulss xmm2, xmm5
cvttss2si esi, xmm0
movss xmm0, dword [ebp + 8]
subss xmm3, xmm0
movss dword [esp + 0x4c], xmm4
mulss xmm0, xmm1
mov dword [esp + 0x54], esi
mulss xmm3, xmm4
mulss xmm0, xmm4
cvttss2si eax, xmm3
cvttss2si edx, xmm0
mov dword [esp + 0x78], eax
movaps xmm0, xmm5
mulss xmm0, dword [ebp + 0x10]
mov dword [esp + 0x44], edx
cvttss2si eax, xmm2
cvttss2si ecx, xmm0
mov dword [esp + 0x20], eax
movaps xmm0, xmm5
mulss xmm0, dword [ebp + 0xc]
test ecx, ecx
cmove ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
cvttss2si eax, xmm0
cmp eax, ecx
cmovl eax, ecx
xor ecx, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
test edx, edx
js 0x4d2453
mov edi, eax
mov dword [esp + 0x84], 0xff
neg edi
mov dword [esp + 0x58], edi
mov edi, eax
sub edi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], edi
nop dword [eax]
xor edi, edi
mov dword [esp + 0x5c], edi
test edx, edx
js 0x4d2439
mov edx, eax
mov dword [esp + 0x48], eax
neg edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x20]
sub dword [esp + 0x48], edx
add esi, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], esi
nop dword [eax]
add eax, esi
js 0x4d241b
cmp eax, dword [esp + 0x74]
jge 0x4d241b
mov esi, dword [esp + 0x78]
add esi, ecx
js 0x4d2417
cvttss2si eax, xmm4
cmp esi, eax
jge 0x4d2417
movaps xmm0, xmm5
call fcn.004d6c60
mov ecx, eax
mov al, byte [esp + 0x13]
imul ecx, esi
cmp al, 4
jne 0x4d1feb
mov eax, dword [esp + 0x28]
lea edx, [ecx + edi]
add edx, dword [esp + 0x54]
mov dword [esp + 0x30], edx
mov edx, dword [eax + edx*4]
mov eax, edx
shr eax, 0x10
mov esi, edx
movzx ecx, al
mov eax, edx
shr esi, 0x18
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
movzx eax, dl
mov dword [esp + 0x7c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jmp 0x4d202f
cmp al, 2
jne 0x4d2013
mov eax, dword [esp + 0x7c]
shr eax, 8
movzx esi, al
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x54]
add ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
movzx eax, word [eax + ecx*2]
movzx eax, al
jmp 0x4d202b
lea eax, [ecx + edi]
mov esi, 0xff
add eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
movzx eax, byte [eax + ecx]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
cmp edx, ecx
jge 0x4d206d
cmp edi, ecx
jge 0x4d204d
movd xmm1, dword [esp + 0x38]
movd xmm0, dword [esp + 0x58]
jmp 0x4d20a9
mov eax, dword [esp + 0x20]
sub eax, ecx
cmp edi, eax
jle 0x4d213d
mov eax, dword [esp + 0x48]
movd xmm0, dword [esp + 0x58]
add eax, edi
movd xmm1, eax
jmp 0x4d20a9
mov eax, dword [esp + 0x44]
sub eax, ecx
cmp edx, eax
jle 0x4d213d
cmp edi, ecx
jge 0x4d2087
movd xmm1, dword [esp + 0x38]
jmp 0x4d209f
mov eax, dword [esp + 0x20]
sub eax, ecx
cmp edi, eax
jle 0x4d213d
mov eax, dword [esp + 0x48]
add eax, edi
movd xmm1, eax
mov eax, dword [esp + 0x2c]
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mov ecx, dword [esp + 0x40]
xorps xmm2, xmm2
mov eax, ecx
sub eax, dword [esp + 0x60]
cvtsd2ss xmm2, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
ja 0x4d2243
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x4d2109
movss xmm2, dword [0x4fc87c]
xorps xmm4, xmm4
movaps xmm1, xmm4
movss dword [esp + 0x1c], xmm1
jmp 0x4d21e5
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4d2243
subss xmm2, xmm1
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm2, dword [0x4fc878]
movss xmm1, dword [0x4fc87c]
divss xmm2, xmm0
subss xmm1, xmm2
jmp 0x4d21d2
movd xmm2, dword [esp + 0x20]
xorps xmm4, xmm4
movss xmm6, dword [0x4fc3d4]
movss xmm5, dword [0x4fd2b0]
cvtdq2ps xmm2, xmm2
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm2, xmm6
subss xmm0, xmm2
comiss xmm4, xmm0
jbe 0x4d2170
xorps xmm0, xmm5
mov ecx, dword [esp + 0x60]
subss xmm2, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movaps xmm3, xmm1
minss xmm3, xmm2
movd xmm2, dword [esp + 0x44]
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm6
subss xmm0, xmm2
comiss xmm4, xmm0
jbe 0x4d21a6
xorps xmm0, xmm5
test ecx, ecx
je 0x4d2243
subss xmm2, xmm0
mov eax, ecx
imul eax, ecx
minss xmm1, xmm2
movd xmm0, eax
mulss xmm1, xmm3
cvtdq2ps xmm0, xmm0
mulss xmm1, dword [0x4fc878]
divss xmm1, xmm0
movss xmm2, dword [0x4fc87c]
comiss xmm2, xmm1
movss dword [esp + 0x1c], xmm1
jbe 0x4d2251
mov al, byte [esp + 0x27]
cmp al, 1
jne 0x4d2212
mulss xmm1, dword [0x4fc838]
cvttss2si eax, xmm1
movaps xmm1, xmm2
movzx eax, ax
movss xmm0, dword [eax*4 + 0x94ab20]
mulss xmm0, xmm2
subss xmm1, xmm0
jmp 0x4d224b
cmp al, 3
jne 0x4d2251
movss xmm3, dword [0x4fc858]
mulss xmm1, xmm3
cvttss2si eax, xmm1
movaps xmm1, xmm2
movzx eax, ax
movss xmm0, dword [eax*4 + 0x94ab20]
mulss xmm0, xmm3
addss xmm0, xmm3
subss xmm1, xmm0
jmp 0x4d224b
movss xmm1, dword [0x4fc87c]
movss dword [esp + 0x1c], xmm1
movaps xmm0, xmm1
call fcn.004d6c60
movss xmm0, dword [esp + 0x1c]
mov edx, eax
mov eax, dword [esp + 0x80]
movzx ecx, al
imul edx, ecx
shr edx, 8
cmp byte [ebp + 0x1c], 2
jne 0x4d231b
comiss xmm0, dword [0x4fc874]
mov ecx, dword [esp + 0x18]
jbe 0x4d22ad
mov eax, dword [esp + 0x64]
movzx eax, al
imul eax, edx
shr eax, 8
add ecx, eax
mov eax, dword [esp + 0x68]
movzx eax, al
imul eax, edx
shr eax, 8
add dword [esp + 0xc], eax
mov eax, dword [ebp + 0x14]
jmp 0x4d22d0
mov eax, dword [esp + 0x6c]
movzx eax, al
imul eax, edx
shr eax, 8
add ecx, eax
mov eax, dword [esp + 0x70]
movzx eax, al
imul eax, edx
shr eax, 8
add dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
movzx eax, al
imul eax, edx
shr eax, 8
add dword [esp + 0x14], eax
cmp ecx, 0xff
mov eax, 0xff
cmova ecx, eax
mov eax, dword [esp + 0xc]
cmp eax, 0xff
cmova eax, dword [esp + 0x84]
cmp dword [esp + 0x14], 0xff
mov dword [esp + 0xc], eax
jbe 0x4d23b8
mov dword [esp + 0x14], 0xff
jmp 0x4d23b8
mov edi, 0x100
sub edi, edx
imul edi, esi
shr edi, 8
comiss xmm0, dword [0x4fc874]
jbe 0x4d2363
mov eax, dword [esp + 0x64]
movzx ecx, al
mov eax, edi
imul eax, dword [esp + 0x18]
imul ecx, edx
add ecx, eax
mov eax, dword [esp + 0x68]
shr ecx, 8
mov dword [esp + 0x18], ecx
movzx ecx, al
mov eax, edi
imul eax, dword [esp + 0xc]
imul ecx, edx
add ecx, eax
mov eax, dword [ebp + 0x14]
jmp 0x4d2393
mov eax, dword [esp + 0x6c]
movzx ecx, al
mov eax, edi
imul eax, dword [esp + 0x18]
imul ecx, edx
add ecx, eax
mov eax, dword [esp + 0x70]
shr ecx, 8
mov dword [esp + 0x18], ecx
movzx ecx, al
mov eax, edi
imul eax, dword [esp + 0xc]
imul ecx, edx
add ecx, eax
mov eax, dword [ebp + 0x18]
imul edi, dword [esp + 0x14]
movzx eax, al
imul eax, edx
shr ecx, 8
mov dword [esp + 0xc], ecx
add eax, edi
mov edi, dword [esp + 0x5c]
shr eax, 8
mov dword [esp + 0x14], eax
mov eax, ecx
mov ecx, dword [esp + 0x18]
movss xmm4, dword [esp + 0x4c]
cmp edx, esi
movss xmm5, dword [esp + 0x50]
cmova esi, edx
mov dl, byte [esp + 0x13]
cmp dl, 4
jne 0x4d23f0
shl esi, 8
or esi, ecx
mov ecx, dword [esp + 0x28]
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x30]
shl esi, 8
or esi, dword [esp + 0x14]
mov dword [ecx + eax*4], esi
jmp 0x4d240f
mov eax, dword [esp + 0x30]
cmp dl, 2
jne 0x4d2408
shl esi, 8
or esi, ecx
mov ecx, dword [esp + 0x28]
mov word [ecx + eax*2], si
jmp 0x4d240f
mov edx, dword [esp + 0x28]
mov byte [eax + edx], cl
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc edi
inc eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x38], eax
cmp edi, edx
jle 0x4d1f70
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
inc dword [esp + 0x58]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x44]
jle 0x4d1f40
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
push 0
mov byte [eax + 0xb23500], 2
mov eax, dword [edi*4 + 0xa91ea0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret