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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x168
mov r15, qword [rcx]
lea rdx, [0x140047b10]
mov r14d, dword [rsp + 0x1d0]
mov r12, r8
movaps xmmword [rax - 0x58], xmm6
movss xmm6, dword [0x1400505e4]
movaps xmmword [rax - 0xe8], xmm15
movss xmm15, dword [0x1400505e0]
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
movaps xmmword [rax - 0xd8], xmm14
mov eax, dword [0x140094564]
test eax, eax
movsxd rax, dword [rsp + 0x1e0]
movsxd r13, r9d
mov rcx, rax
lea r9, [0x140047a70]
mov dword [rsp + 0x24], eax
mov qword [rsp + 0x70], rax
mov r8, r9
cmovne r8, rdx
mov eax, r13d
cmovne rdx, r9
mov qword [rsp + 0x78], r8
imul eax, r14d
mov qword [rsp + 0x80], rdx
movsxd rbx, eax
mov qword [rsp + 0x90], rbx
nop dword [rax]
mov eax, dword [rdx + rcx*4]
lea r10, [0x140000000]
mov edi, dword [r8 + rcx*4]
mov ebp, 1
mov esi, dword [r10 + rcx*4 + 0x47ac0]
xor edx, edx
mov dword [rsp + 0x1e0], eax
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x40], esi
lea ecx, [rax + rsi]
add ecx, edi
shl ebp, cl
mov rcx, r12
lea eax, [rbp + 1]
movsxd r8, eax
call sub.VCRUNTIME140.dll_memset
mov r8d, dword [rsp + 0x1e0]
movaps xmm1, xmm15
mov ecx, 8
mov eax, 1
sub ecx, edi
mov r11d, 1
shl eax, cl
mov ecx, 8
dec eax
sub ecx, esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
divss xmm1, xmm15
mulss xmm1, xmm6
cvttss2si eax, xmm1
movaps xmm1, xmm15
mov dword [rsp + 0x30], eax
mov eax, 1
shl eax, cl
mov ecx, 8
dec eax
sub ecx, r8d
movd xmm0, eax
mov eax, 1
shl eax, cl
mov ecx, esi
dec eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm15
mulss xmm1, xmm6
cvttss2si edx, xmm1
movaps xmm1, xmm15
subss xmm1, xmm0
divss xmm1, xmm15
mulss xmm1, xmm6
cvttss2si eax, xmm1
mov dword [rsp + 0x28], eax
mov eax, 1
shl eax, cl
mov ecx, edi
dec eax
shl eax, cl
mov ecx, r8d
shl r11d, cl
mov ecx, edi
dec r11d
mov dword [rsp + 0x34], eax
shl r11d, cl
mov ecx, esi
shl r11d, cl
xor ecx, ecx
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x1c8], ecx
test r14d, r14d
jle 0x140017d24
mov eax, 0x10
mov dword [rsp + 0x20], ecx
sub eax, r8d
mov qword [rsp + 0x50], rcx
sub eax, esi
mov r9d, 0x10
sub eax, edi
sub r9d, esi
mov dword [rsp + 0x4c], eax
sub r9d, edi
lea eax, [r13 - 3]
mov dword [rsp + 0x3c], r9d
cdqe
mov r10d, 0x10
mov qword [rsp + 0x58], rax
sub r10d, edi
movsx eax, dx
xor r14d, r14d
mov dword [rsp + 0x2c], eax
xor r12d, r12d
lea rax, [r13*4]
mov dword [rsp + 0x44], r10d
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x68], r12
nop
mov edx, ecx
movd xmm0, r8d
and edx, 3
lea rax, [0x140000000]
shl edx, 2
xor ebx, ebx
mov qword [rsp + 0x60], rdx
movdqu xmm7, xmmword [rax + rdx*4 + 0x47b60]
movdqa xmm6, xmm7
movdqa xmm1, xmm7
psrld xmm6, xmm0
movd xmm0, edi
psrld xmm1, xmm0
pslld xmm6, 0x10
orps xmm6, xmm1
cmp qword [rsp + 0x58], rbx
jle 0x140017b9b
mov ecx, dword [rsp + 0x30]
lea rdx, [r12 + r15]
movd xmm8, dword [rsp + 0x2c]
movd xmm9, dword [rsp + 0x34]
movdqa xmm12, xmmword [0x140050680]
movdqa xmm13, xmmword [0x140050650]
movdqa xmm14, xmmword [0x140050670]
movzx eax, cx
movd xmm0, esi
movd xmm10, r11d
movd xmm11, ebp
movd xmm5, eax
mov eax, dword [rsp + 0x28]
pshufd xmm8, xmm8, 0
psrld xmm7, xmm0
pshufd xmm9, xmm9, 0
pinsrw xmm5, eax, 1
pinsrw xmm5, ecx, 2
mov ecx, 0x20
pinsrw xmm5, eax, 3
sub ecx, r8d
mov rax, qword [rsp + 0x50]
sub ecx, esi
mov r8, qword [rsp + 0x1b8]
sub rax, r12
sub rax, r15
punpcklqdq xmm5, xmm5
add r8, rax
pshufd xmm10, xmm10, 0
mov rax, qword [rsp + 0x58]
sub ecx, edi
dec rax
pshufd xmm11, xmm11, 0
shr rax, 2
inc rax
lea ebx, [rax*4]
nop dword [rax]
movd xmm2, dword [0x140094560]
movdqa xmm3, xmm12
pshufd xmm2, xmm2, 0
movdqa xmm1, xmm14
movdqu xmm4, xmmword [r8 + rdx]
lea rdx, [rdx + 0x10]
andps xmm3, xmm4
movdqa xmm0, xmm4
psrld xmm4, 8
psrld xmm0, 0x18
andps xmm4, xmm13
pmullw xmm4, xmm8
pcmpgtd xmm2, xmm0
pmullw xmm3, xmm5
movd xmm0, r9d
paddusw xmm4, xmm7
paddusw xmm3, xmm6
andps xmm1, xmm3
psrld xmm4, xmm0
movd xmm0, r10d
andps xmm4, xmm9
psrld xmm1, xmm0
movd xmm0, ecx
orps xmm4, xmm1
movdqa xmm1, xmm2
psrld xmm3, xmm0
movdqa xmm0, xmm11
andps xmm3, xmm10
andps xmm0, xmm2
orps xmm4, xmm3
andnps xmm1, xmm4
orps xmm1, xmm0
movdqu xmmword [rdx - 0x10], xmm1
sub rax, 1
jne 0x140017af0
mov r8d, dword [rsp + 0x1e0]
mov ecx, dword [rsp + 0x1c8]
mov rdx, qword [rsp + 0x60]
cmp ebx, r13d
jge 0x140017cc5
mov eax, dword [rsp + 0x20]
mov r11, qword [rsp + 0x1b8]
mov r12d, dword [rsp + 0x38]
add r11, 2
movsxd rdi, ebx
lea eax, [rax + rbx*4]
movsxd rcx, eax
add r11, rcx
nop word [rax + rax]
movzx eax, byte [r11 + 1]
lea rsi, [r14 + rdi]
cmp eax, dword [0x140094560]
jge 0x140017be9
mov r10d, ebp
jmp 0x140017c80
movzx r10d, byte [r11]
lea rcx, [0x140000000]
movzx r9d, byte [r11 - 2]
mov eax, ebx
and eax, 3
add eax, edx
mov edx, dword [rcx + rax*4 + 0x47b60]
mov ecx, r8d
movsx eax, word [rsp + 0x28]
movzx r8d, byte [r11 - 1]
imul r8d, dword [rsp + 0x2c]
imul r10d, eax
mov eax, edx
sar eax, cl
mov ecx, dword [rsp + 0x40]
add r10d, eax
mov eax, edx
sar eax, cl
mov ecx, r12d
add r8d, eax
sar edx, cl
movsx eax, word [rsp + 0x30]
mov ecx, dword [rsp + 0x4c]
imul r9d, eax
mov eax, 0xffff
add r9d, edx
cmp r10d, eax
cmovg r10d, eax
sar r10d, cl
and r10d, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x3c]
cmp r8d, eax
cmovg r8d, eax
sar r8d, cl
and r8d, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x44]
or r10d, r8d
cmp r9d, eax
cmovg r9d, eax
sar r9d, cl
or r10d, r9d
mov r8d, dword [rsp + 0x1e0]
inc ebx
mov rdx, qword [rsp + 0x60]
add r11, 4
inc rdi
mov dword [r15 + rsi*4], r10d
cmp ebx, r13d
jl 0x140017bd0
mov r9d, dword [rsp + 0x3c]
mov edi, r12d
mov r12, qword [rsp + 0x68]
mov esi, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x1c8]
mov r10d, dword [rsp + 0x44]
mov r11d, dword [rsp + 0x48]
movsxd rdx, dword [rsp + 0x1d8]
inc ecx
add r12, qword [rsp + 0x88]
add r14, r13
add dword [rsp + 0x20], edx
add qword [rsp + 0x50], rdx
mov r8d, dword [rsp + 0x1e0]
mov dword [rsp + 0x1c8], ecx
mov qword [rsp + 0x68], r12
cmp ecx, dword [rsp + 0x1d0]
jl 0x1400179f0
movss xmm6, dword [0x1400505e4]
mov r12, qword [rsp + 0x1c0]
mov rbx, qword [rsp + 0x90]
mov r14d, dword [rsp + 0x1d0]
xor r9d, r9d
xor ecx, ecx
test rbx, rbx
jle 0x140017d41
nop
mov eax, dword [r15 + rcx*4]
inc rcx
mov byte [rax + r12], 1
cmp rcx, rbx
jl 0x140017d30
xor ecx, ecx
test ebp, ebp
jle 0x140017dc4
cmp ebp, 8
jb 0x140017dc4
mov edx, ebp
xorps xmm3, xmm3
xorps xmm2, xmm2
and edx, 0x80000007
jge 0x140017d63
dec edx
or edx, 0xfffffff8
inc edx
mov eax, ebp
sub eax, edx
movsxd rdx, eax
nop word [rax + rax]
movd xmm1, dword [rcx + r12]
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm3, xmm1
movd xmm1, dword [rcx + r12 + 4]
punpcklbw xmm1, xmm0
add rcx, 8
punpcklwd xmm1, xmm0
paddd xmm2, xmm1
cmp rcx, rdx
jl 0x140017d70
paddd xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd r9d, xmm2
xor edx, edx
movsxd r11, ebp
xor r8d, r8d
cmp rcx, r11
jge 0x140017e1d
mov rax, r11
sub rax, rcx
cmp rax, 2
jl 0x140017e0e
lea r10, [r11 - 1]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + r12]
add edx, eax
movzx eax, byte [rcx + r12 + 1]
add r8d, eax
add rcx, 2
cmp rcx, r10
jl 0x140017df0
cmp rcx, r11
jge 0x140017e16
movzx eax, byte [rcx + r12]
add r9d, eax
lea eax, [r8 + rdx]
add r9d, eax
mov eax, dword [rsp + 0x24]
cmp r9d, 0x100
jl 0x140017e51
mov rcx, qword [rsp + 0x70]
dec eax
mov rdx, qword [rsp + 0x80]
sub rcx, 1
mov r8, qword [rsp + 0x78]
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x24], eax
jne 0x140017870
movaps xmm14, xmmword [rsp + 0xd0]
movaps xmm13, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm11, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x110]
movaps xmm9, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmm6, xmmword [rsp + 0x150]
movaps xmm15, xmmword [rsp + 0xc0]
mov dword [rsp + 0xa0], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x98], r15
mov dword [rsp + 0xa4], r9d
movups xmm0, xmmword [rsp + 0x98]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0xa8], eax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x47ac0]
mov dword [rsp + 0xac], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0x1b0]
movups xmm1, xmmword [rsp + 0xa8]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret