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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
test ebx, ebx
jle 0x4b8f39
mov esi, dword [ebp + 0x14]
test esi, esi
jle 0x4b8f39
mov edx, dword [ebp + 0x18]
test edx, edx
jle 0x4b8f39
mov eax, dword [ebp + 0x1c]
xorps xmm1, xmm1
comisd xmm1, xmmword [eax]
ja 0x4b8f39
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, ebx
imul eax, esi
sar ecx, 3
imul eax, edx
cmp ecx, eax
jne 0x4b8f2d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, esi
imul eax, edx
cmp ecx, eax
jne 0x4b8f2d
push 0x7c3138
mov ecx, 0x7c3138
call fcn.004c05f0
test al, al
je 0x4b8747
push 0x7c312c
mov ecx, 0x7c3138
call fcn.004c05f0
test al, al
jne 0x4b8f2d
mov eax, dword [ebp + 0x28]
mov ecx, 0x7c3138
push 0x7c312c
mov byte [esp + 0x20], 0
mov byte [eax], 0
mov eax, dword [ebp + 0x2c]
mov byte [eax], 0
mov eax, dword [ebp + 0x30]
mov byte [eax], 0
call fcn.0044cb80
mov dl, byte [ebp + 0x20]
xor ch, ch
movsd xmm6, qword [0x71a1a0]
mov cl, 1
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], ch
movsd qword [esp + 0x50], xmm6
test dl, dl
je 0x4b87e5
mov esi, dword [ebp + 0x24]
test al, al
je 0x4b87b9
movsd xmm1, qword [esi]
movsd xmm0, qword [0x71a190]
comisd xmm0, xmm1
ja 0x4b8f39
comisd xmm1, xmmword [0x71a150]
ja 0x4b8f39
movsd xmm7, qword [esi]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x78], xmm7
test al, al
je 0x4b8812
movsd xmm0, qword [0x71a178]
movsd xmm2, qword [0x71a128]
movsd qword [esp + 0x58], xmm0
jmp 0x4b8848
test al, al
je 0x4b880f
movsd xmm7, qword [0x71a190]
movsd xmm0, qword [0x71a178]
movsd xmm2, qword [0x71a128]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x58], xmm0
jmp 0x4b8848
movaps xmm7, xmm6
movsd xmm0, qword [0x71a188]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x58], xmm0
test al, al
je 0x4b8834
movsd xmm2, qword [0x71a128]
jmp 0x4b8848
movsd xmm2, qword [0x71a148]
movsd qword [esp + 0x50], xmm6
movsd qword [esp + 0x48], xmm7
movsd xmm5, qword [0x71a160]
xor edi, edi
mov dword [esp + 0x18], edi
xor esi, esi
mov edi, ebx
mov dword [esp + 0x14], esi
imul edi, dword [ebp + 0x14]
xor eax, eax
movsd qword [esp + 0x40], xmm5
movsd qword [esp + 0x60], xmm2
mov dword [esp + 0x2c], eax
shl edi, 3
mov dword [esp + 0x3c], edi
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x38], edi
jmp 0x4b8893
mov cl, byte [esp + 0x12]
mov dl, byte [ebp + 0x20]
mov ch, byte [esp + 0x11]
mov eax, dword [esp + 0x2c]
mov edi, dword [ebp + 8]
movsd xmm1, qword [0x71a0e8]
mov edi, dword [edi]
add edi, eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], eax
nop dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp byte [esi + eax], 0
je 0x4b8aee
inc dword [esp + 0x18]
xor esi, esi
cmp ebx, 1
jg 0x4b8906
nop word [eax + eax]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
setp al
cmp al, 1
jne 0x4b8a0c
mov ch, al
inc esi
mov byte [esp + 0x11], ch
jmp 0x4b8a1f
movsd xmm5, qword [esp + 0x40]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
setp al
cmp al, 1
jne 0x4b898a
mov ch, al
inc esi
mov byte [esp + 0x11], ch
test dl, dl
je 0x4b892e
movsd qword [edi], xmm7
mov ch, byte [esp + 0x11]
movsd xmm6, qword [esp + 0x50]
add edi, 8
movsd xmm7, qword [esp + 0x48]
movsd xmm1, qword [0x71a0e8]
sub ebx, 1
jne 0x4b8900
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x60], xmm0
movaps xmm0, xmm7
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [esp + 0x58]
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], ch
movsd qword [esp + 0x50], xmm6
movsd qword [esp + 0x58], xmm0
jmp 0x4b8a48
test dl, dl
je 0x4b899b
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x4b899b
inc esi
jmp 0x4b892a
comisd xmm5, xmm0
jbe 0x4b89a9
movsd qword [esp + 0x40], xmm0
jmp 0x4b89b9
maxsd xmm0, xmm6
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x68]
test cl, cl
je 0x4b892a
addsd xmm0, xmm1
sub esp, 8
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.006e8440
movsd xmm0, qword [edi]
add esp, 8
mov dl, byte [ebp + 0x20]
mov ch, byte [esp + 0x11]
fstp qword [esp + 0x68]
ucomisd xmm0, qword [esp + 0x68]
lahf
test ah, 0x44
jnp 0x4b8a03
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x4b892e
mov cl, byte [esp + 0x12]
jmp 0x4b892e
test dl, dl
je 0x4b8a6b
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x4b8a6b
inc esi
mov ch, byte [esp + 0x11]
movsd xmm5, qword [esp + 0x40]
add edi, 8
movsd xmm6, qword [esp + 0x50]
movsd xmm7, qword [esp + 0x48]
movsd xmm1, qword [0x71a0e8]
mov dl, byte [ebp + 0x20]
sub ebx, 1
jne 0x4b88d0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0x20]
mov eax, dword [eax]
cmp esi, ebx
jne 0x4b8ad5
mov esi, dword [esp + 0x14]
mov byte [eax + esi], 0
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
jmp 0x4b8aee
comisd xmm5, xmm0
jbe 0x4b8a79
movsd qword [esp + 0x40], xmm0
jmp 0x4b8a89
maxsd xmm0, xmm6
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x68]
test cl, cl
je 0x4b8a1b
addsd xmm0, xmm1
sub esp, 8
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.006e8440
movsd xmm0, qword [edi]
add esp, 8
mov ch, byte [esp + 0x11]
fstp qword [esp + 0x68]
ucomisd xmm0, qword [esp + 0x68]
lahf
test ah, 0x44
jnp 0x4b8acc
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x4b8a1f
mov cl, byte [esp + 0x12]
jmp 0x4b8a1f
mov eax, dword [esp + 0x1c]
test esi, esi
mov esi, dword [esp + 0x14]
mov edx, 1
movzx eax, al
cmovg eax, edx
mov dword [esp + 0x1c], eax
movsd xmm5, qword [esp + 0x40]
lea eax, [ebx*8]
movsd xmm7, qword [esp + 0x48]
inc esi
movsd xmm1, qword [0x71a0e8]
add edi, eax
sub dword [esp + 0x30], 1
mov dl, byte [ebp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edi
jne 0x4b88b0
movsd xmm2, qword [esp + 0x58]
mov al, cl
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmm7
mov esi, dword [esp + 0x3c]
mov cl, bl
add dword [esp + 0x2c], esi
movaps xmm4, xmm6
sub dword [esp + 0x38], 1
movaps xmm1, xmm5
mov edi, dword [esp + 0x18]
mov edx, edi
mov esi, dword [esp + 0x14]
movsd qword [esp + 0x20], xmm2
movsd xmm2, qword [esp + 0x60]
mov dword [esp + 0x1c], ebx
movaps xmm3, xmm2
mov bl, byte [esp + 0x12]
mov byte [esp + 0x12], bl
mov bl, byte [esp + 0x11]
movsd qword [esp + 0x60], xmm2
movsd xmm2, qword [esp + 0x58]
mov byte [esp + 0x11], bl
mov ebx, dword [ebp + 0x10]
movsd qword [esp + 0x58], xmm2
movsd xmm2, qword [esp + 0x20]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x78], xmm4
movsd qword [esp + 0x68], xmm1
mov byte [esp + 0x13], cl
movsd qword [esp + 0x40], xmm5
movsd qword [esp + 0x50], xmm6
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
movsd qword [esp + 0x48], xmm7
jne 0x4b8884
mov esi, dword [ebp + 0x2c]
xor ebx, ebx
test edx, edx
movzx eax, al
cmovne ebx, eax
mov byte [esi], cl
mov esi, dword [ebp + 0x10]
test ch, ch
je 0x4b8bfb
cmp esi, 1
jle 0x4b8bfb
test cl, cl
je 0x4b8bfb
cmp byte [ebp + 0x20], 0
jne 0x4b8bfb
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x1c]
mov byte [esp + 0x2c], bl
movsd xmm5, qword [edi]
movsd qword [esp + 0x50], xmm5
test bl, bl
je 0x4b8ca8
comisd xmm1, xmm2
jb 0x4b8c30
comisd xmm3, xmm1
jb 0x4b8c30
comisd xmm4, xmm2
jb 0x4b8c30
comisd xmm3, xmm4
jb 0x4b8c30
mov al, 1
jmp 0x4b8c32
xor al, al
and bl, al
mov byte [esp + 0x2c], bl
test cl, cl
je 0x4b8c7c
sub esp, 8
movsd qword [esp], xmm0
call fcn.004bb9b0
add esp, 8
test al, al
je 0x4b8c6e
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmmword [esp + 0x20]
jb 0x4b8c6e
movsd xmm1, qword [esp + 0x70]
comisd xmm1, xmm0
jb 0x4b8c6e
mov al, 1
jmp 0x4b8c70
xor al, al
movsd xmm5, qword [esp + 0x50]
and bl, al
mov byte [esp + 0x2c], bl
test bl, bl
je 0x4b8ca8
fld qword [edi]
sub esp, 8
fstp qword [esp]
call fcn.006e8440
fstp qword [esp + 0x78]
movsd xmm5, qword [esp + 0x78]
add esp, 8
maxsd xmm5, qword [0x71a0e8]
movsd qword [esp + 0x50], xmm5
mov eax, dword [ebp + 0x30]
xorps xmm4, xmm4
ucomisd xmm5, xmm4
mov byte [eax], bl
lahf
test ah, 0x44
jnp 0x4b8d34
cmp byte [ebp + 0x20], 0
je 0x4b8d3d
test bl, bl
je 0x4b8ce8
fld qword [esp + 0x50]
sub esp, 8
fstp qword [esp]
call fcn.006e8440
movsd xmm5, qword [esp + 0x58]
add esp, 8
fstp qword [esp + 0x70]
movsd xmm2, qword [esp + 0x70]
jmp 0x4b8cef
movaps xmm2, xmm5
addsd xmm2, xmm5
movsd xmm3, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x30]
movaps xmm0, xmm3
subsd xmm0, xmm2
comisd xmm1, xmm0
jb 0x4b8d49
addsd xmm2, qword [esp + 0x78]
comisd xmm2, xmm1
jb 0x4b8d49
test bl, bl
je 0x4b8d2d
movsd xmm0, qword [0x71a0e8]
xor eax, eax
movsd qword [edi], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
movsd qword [edi], xmm0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd xmm1, qword [esp + 0x30]
movsd xmm3, qword [esp + 0x68]
cmp byte [esp + 0x13], 0
je 0x4b8eeb
movsd xmm0, qword [esp + 0x20]
lea eax, [esp + 0x60]
push eax
sub esp, 8
movsd qword [esp + 0x6c], xmm1
movsd qword [esp], xmm0
push dword [esp + 0x38]
sub esp, 0x10
movsd qword [esp + 8], xmm5
movsd qword [esp], xmm3
call fcn.004bb260
add esp, 0x20
test al, al
je 0x4b8f0c
movsd xmm2, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x30]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x4b8eeb
mov eax, dword [ebp + 8]
xor edi, edi
mov edx, dword [eax]
mov eax, esi
imul eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], edx
lea ecx, [edx + 0x10]
mov dword [esp + 0x30], ecx
shl eax, 3
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov esi, dword [eax]
mov eax, dword [ebp + 0x10]
shl eax, 3
mov dword [esp + 0x3c], eax
mov eax, ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
nop word [eax + eax]
cmp byte [esi + edi], 0
je 0x4b8eaa
xor esi, esi
cmp dword [ebp + 0x10], 4
jl 0x4b8e74
mov edx, dword [ebp + 0x10]
mov ecx, eax
lea edx, [edx - 4]
shr edx, 2
inc edx
lea esi, [edx*4]
movsd xmm0, qword [ecx - 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4b8e29
movsd qword [ecx - 0x10], xmm2
movsd xmm0, qword [ecx - 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4b8e3d
movsd qword [ecx - 8], xmm2
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4b8e4f
movsd qword [ecx], xmm2
movsd xmm0, qword [ecx + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4b8e63
movsd qword [ecx + 8], xmm2
add ecx, 0x20
sub edx, 1
jne 0x4b8e15
mov edx, dword [esp + 0x1c]
cmp esi, dword [ebp + 0x10]
jge 0x4b8e9e
lea eax, [esi + ebx]
lea ecx, [edx + eax*8]
mov edx, dword [ebp + 0x10]
sub edx, esi
nop
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4b8e92
movsd qword [ecx], xmm2
add ecx, 8
sub edx, 1
jne 0x4b8e80
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x3c]
inc edi
add ebx, dword [ebp + 0x10]
sub ecx, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
jne 0x4b8df0
mov ecx, dword [esp + 0x30]
add edx, dword [esp + 0x18]
add ecx, dword [esp + 0x18]
sub dword [ebp + 0x18], 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], ecx
jne 0x4b8dc8
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x1c]
movsd qword [eax], xmm2
movsd xmm1, qword [esp + 0x50]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4b8f03
movsd qword [edi], xmm1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmmword [esp + 0x68]
jb 0x4b8eeb
test bl, bl
je 0x4b8f28
movsd xmm1, qword [0x71a0e8]
jmp 0x4b8ef1
xorps xmm1, xmm1
jmp 0x4b8ef1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret