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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
mov eax, 0x10
pxor xmm0, xmm0
cmp edx, eax
mov qword [rsp + 0x190], rcx
cmovle eax, edx
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
test edx, edx
jle 0x140205db3
cmp edx, 0xf
jle 0x140206736
movdqu xmm1, xmmword [r8]
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
punpcklbw xmm2, xmm0
pxor xmm0, xmm0
movdqa xmm3, xmm2
punpckhwd xmm2, xmm0
movups xmmword [rsp + 0x90], xmm2
movdqa xmm2, xmm1
punpcklwd xmm3, xmm0
punpckhwd xmm1, xmm0
punpcklwd xmm2, xmm0
movups xmmword [rsp + 0x80], xmm3
movups xmmword [rsp + 0xa0], xmm2
movups xmmword [rsp + 0xb0], xmm1
xor eax, eax
mov rdi, qword [rsp + 0x190]
cmp edx, 0xa
mov edx, dword [rsp + 0x84]
setle al
mov ebx, dword [rsp + 0xa4]
mov ecx, dword [rsp + 0xa8]
lea r9, [0x1402e3160]
mov dword [rdi + 0x80], eax
mov eax, dword [rsp + 0x80]
shl edx, 0x10
lea r13, [0x1402e3560]
mov r8d, ebx
mov esi, dword [rsp + 0xac]
mov r11d, dword [rsp + 0xb0]
mov qword [rsp + 0x28], rbx
shl eax, 0x18
shl r8d, 0x10
mov edi, dword [rsp + 0xbc]
mov r10d, dword [rsp + 0xb8]
or eax, edx
mov edx, dword [rsp + 0x88]
or eax, dword [rsp + 0x8c]
lea rbx, [rsp + 0x100]
mov qword [rsp + 0x78], rbx
shl edx, 8
or eax, edx
mov edx, dword [rsp + 0x94]
mov r14d, eax
mov eax, dword [rsp + 0x90]
shl edx, 0x10
mov ebx, r14d
shl eax, 0x18
mov dword [rsp + 0x20], ebx
or eax, edx
mov edx, dword [rsp + 0x98]
or eax, dword [rsp + 0x9c]
shl edx, 8
or eax, edx
mov dword [rsp + 8], eax
mov eax, dword [rsp + 0xa0]
mov edx, eax
shl edx, 0x18
or edx, r8d
mov r8d, ecx
or edx, esi
shl r8d, 8
mov esi, dword [r9 + rsi*4]
or edx, r8d
mov r8d, r11d
mov r12d, edx
mov edx, dword [rsp + 0xb4]
shl r8d, 0x18
mov dword [rsp + 0x18], esi
lea rsi, [rsp + 0xc0]
mov ebp, edx
mov qword [rsp + 0x70], rsi
shl ebp, 0x10
mov qword [rsp], rsi
mov esi, edx
mov edx, ecx
or r8d, ebp
mov ebp, r10d
mov qword [rsp + 0x10], rdx
mov edx, r12d
or r8d, edi
shl ebp, 8
mov r12d, dword [rsp + 8]
mov r15d, r8d
mov r8d, dword [r9 + rdi*4]
lea rdi, [0x1402e2d60]
or r15d, ebp
mov eax, dword [rdi + rax*4]
lea rbp, [0x1402e2960]
mov r14d, r15d
jmp 0x140205f11
mov rbx, qword [rsp + 0x78]
mov qword [rsp], rbx
mov ecx, dword [r13 + rsi*4]
mov esi, dword [rsp + 0x20]
xor ecx, dword [rdi + r11*4]
xor ecx, dword [rbp + r10*4]
xor ecx, esi
xor ecx, r8d
mov esi, ecx
xor esi, eax
mov ecx, esi
mov eax, esi
shr ecx, 0x10
shr eax, 0x18
movzx ebx, cl
mov rcx, qword [rsp + 0x10]
mov r10d, dword [rdi + rbx*4]
mov qword [rsp + 0x48], rbx
mov ebx, eax
movzx eax, sil
mov r15, rax
mov qword [rsp + 0x50], rbx
mov eax, dword [r13 + rbx*4]
mov ebx, esi
xor eax, dword [rbp + r15*4]
xor eax, dword [rbp + rcx*4]
movzx ecx, bh
mov qword [rsp + 0x20], r15
xor eax, dword [r9 + rcx*4]
mov r15, qword [rsp + 0x28]
mov dword [rsp + 0x30], r10d
xor eax, r10d
xor eax, edx
mov ebx, eax
mov r8d, eax
shr eax, 0x18
movzx edx, bh
mov dword [rsp + 8], ebx
shr r8d, 0x10
movzx ebx, byte [rsp + 8]
movzx r8d, r8b
mov qword [rsp + 0x60], rax
mov r11d, dword [r9 + rdx*4]
mov r10d, dword [rdi + r8*4]
mov qword [rsp + 0x58], r8
mov r8d, dword [rbp + rax*4]
mov eax, dword [r13 + rbx*4]
mov dword [rsp + 0x28], r10d
xor eax, r8d
xor eax, dword [r13 + r15*4]
mov dword [rsp + 0x38], r8d
mov r15d, r11d
xor eax, r11d
xor eax, r10d
mov r8d, eax
xor r8d, r14d
mov r14d, r8d
mov eax, r8d
mov dword [rsp + 0x10], r8d
shr r14d, 0x10
movzx eax, ah
mov r10d, r14d
mov r14d, r8d
shr r14d, 0x18
movzx r10d, r10b
mov r11d, r14d
mov r14d, dword [r13 + rax*4]
movzx eax, byte [rsp + 0x10]
mov r8d, dword [rdi + rax*4]
xor r8d, dword [rbp + r11*4]
mov qword [rsp + 0x68], rax
xor r8d, r14d
mov dword [rsp + 0x40], r14d
xor r8d, dword [r9 + r10*4]
mov r14d, dword [rsp + 0x18]
xor r8d, r12d
mov eax, dword [rbp + rcx*4]
xor r14d, r8d
mov dword [rsp + 0x18], eax
mov r12d, r14d
shr r12d, 0x18
mov r8d, r12d
mov r12d, dword [rbp + rdx*4]
mov edx, dword [rdi + rbx*4]
xor edx, dword [r13 + rcx*4]
mov ecx, r15d
mov r15, qword [rsp + 0x20]
xor edx, r12d
xor edx, dword [r13 + r11*4]
mov r11d, dword [rsp + 0x28]
xor edx, dword [r9 + r10*4]
xor ecx, r11d
mov r11d, dword [rsp + 0x38]
movd xmm0, edx
mov rdx, qword [rsp]
xor ecx, r11d
mov r11, qword [rsp + 0x68]
xor ecx, dword [r9 + r11*4]
mov r11d, dword [rsp + 0x40]
xor ecx, r11d
mov r11d, dword [rdi + r15*4]
movd xmm4, ecx
mov rcx, qword [rsp + 0x60]
xor r11d, eax
xor r11d, dword [rdi + r10*4]
mov r10d, dword [r13 + r8*4]
mov eax, r14d
movzx eax, ah
punpckldq xmm0, xmm4
xor r10d, r11d
mov r11d, r14d
shr r11d, 0x10
movzx r11d, r11b
mov r15d, dword [r9 + r11*4]
movzx r11d, r14b
xor r15d, r10d
mov r10d, dword [rsp + 0x30]
movd xmm1, r15d
mov r15, qword [rsp + 0x50]
xor r10d, dword [rbp + r15*4]
xor r10d, dword [r9 + r11*4]
xor r10d, dword [rbp + r8*4]
mov r8d, r10d
xor r8d, dword [r13 + rax*4]
movd xmm5, r8d
mov r8, qword [rsp + 0x58]
punpckldq xmm1, xmm5
punpcklqdq xmm0, xmm1
movups xmmword [rdx], xmm0
mov edx, dword [r9 + rbx*4]
xor edx, dword [rdi + rcx*4]
xor edx, dword [rdi + r15*4]
xor edx, r12d
xor edx, dword [r13 + r8*4]
mov r8d, dword [rsp + 0x10]
mov ecx, edx
mov eax, dword [rsp + 0x18]
xor ecx, r8d
mov r11d, ecx
mov r10d, ecx
shr ecx, 0x18
xor eax, esi
mov r15d, ecx
mov ecx, r11d
shr r10d, 0x10
movzx esi, r11b
movzx edx, ch
movzx r10d, r10b
xor eax, dword [r13 + r15*4]
xor eax, dword [rbp + rsi*4]
mov ecx, dword [r9 + rdx*4]
mov r8d, dword [rdi + r10*4]
mov qword [rsp + 0x28], rsi
xor eax, ecx
xor r8d, eax
mov ebx, r8d
shr r8d, 0x10
movzx edx, bh
movzx esi, bl
mov eax, r8d
mov r8d, ebx
mov r12d, dword [r9 + rdx*4]
mov rdx, qword [rsp + 0x48]
shr r8d, 0x18
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x18], r12d
mov r12d, dword [rsp + 8]
xor r12d, dword [r13 + rdx*4]
mov edx, dword [r13 + rsi*4]
xor edx, r12d
mov r12d, dword [rsp + 0x18]
xor edx, dword [rbp + r8*4]
xor edx, r12d
movzx r12d, al
xor edx, dword [rdi + r12*4]
mov qword [rsp + 0x40], r12
mov eax, edx
shr edx, 0x10
mov r12d, edx
mov edx, eax
mov dword [rsp + 8], eax
mov rax, qword [rsp + 0x20]
shr edx, 0x18
movzx r12d, r12b
mov r8d, edx
mov edx, dword [rsp + 8]
xor r14d, dword [r9 + rax*4]
mov qword [rsp + 0x30], r12
mov eax, r14d
movzx r14d, dl
movzx edx, dh
xor eax, dword [rdi + r14*4]
xor eax, dword [rbp + r8*4]
mov qword [rsp + 0x20], r14
xor eax, dword [r13 + rdx*4]
xor eax, dword [r9 + r12*4]
mov qword [rsp + 0x48], rdx
mov r12d, eax
shr eax, 0x10
mov r14d, eax
mov eax, r12d
mov dword [rsp + 0x10], r12d
shr eax, 0x18
movzx r14d, r14b
mov r12d, eax
mov r12d, dword [rdi + r12*4]
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp]
xor ecx, dword [r13 + rdx*4]
xor ecx, dword [r13 + r8*4]
xor ecx, r12d
xor ecx, dword [rbp + r14*4]
mov dword [rax + 0x10], ecx
mov ecx, dword [r13 + r10*4]
mov r10d, dword [rsp + 0x10]
xor ecx, dword [r9 + r15*4]
mov edx, r10d
movzx r15d, r10b
movzx edx, dh
xor ecx, dword [rbp + r15*4]
xor ecx, dword [rdi + rdx*4]
xor ecx, dword [r9 + r14*4]
mov r10, rdx
mov rdx, rax
mov dword [rax + 0x14], ecx
mov ecx, dword [rdi + r8*4]
mov r8, qword [rsp + 0x28]
mov eax, dword [r13 + rsi*4]
xor eax, dword [rdi + r8*4]
mov r8d, eax
mov eax, dword [rsp + 0x18]
xor r8d, eax
mov rax, qword [rsp + 0x30]
xor r8d, ecx
xor ecx, r11d
xor r8d, dword [rbp + rax*4]
mov rax, qword [rsp + 0x48]
xor ecx, r12d
mov dword [rdx + 0x18], r8d
mov r8, qword [rsp + 0x38]
xor ecx, dword [r9 + r15*4]
mov r15, rax
mov r8d, dword [r9 + r8*4]
xor r8d, dword [rbp + rsi*4]
mov rsi, qword [rsp + 0x40]
xor r8d, dword [r13 + rsi*4]
mov rsi, qword [rsp + 0x20]
xor r8d, dword [rbp + rsi*4]
xor r8d, dword [rdi + rax*4]
mov dword [rdx + 0x1c], r8d
xor ecx, dword [r13 + r14*4]
xor ecx, dword [rbp + r10*4]
mov eax, dword [rsp + 8]
mov r12d, ecx
shr ecx, 0x10
xor eax, dword [rbp + r15*4]
mov esi, ecx
mov edx, r12d
mov ecx, r12d
movzx r8d, r12b
shr ecx, 0x18
movzx edx, dh
movzx esi, sil
mov qword [rsp + 0x18], r8
mov r11d, dword [r9 + rdx*4]
mov r15d, dword [rdi + rsi*4]
mov qword [rsp + 0x40], rdx
mov edx, eax
mov eax, ecx
xor edx, dword [r13 + rax*4]
xor edx, dword [rbp + r8*4]
mov qword [rsp + 8], rax
xor edx, r11d
mov dword [rsp + 0x28], r11d
xor r15d, edx
movzx eax, r15b
mov edx, r15d
mov r10d, r15d
mov ecx, r15d
mov r11d, dword [r13 + rax*4]
mov qword [rsp + 0x48], rax
movzx edx, dh
shr ecx, 0x18
mov rax, qword [rsp + 0x30]
mov r8d, dword [r9 + rdx*4]
mov qword [rsp + 0x50], rdx
shr r10d, 0x10
mov edx, dword [rsp + 0x10]
movzx r10d, r10b
mov dword [rsp + 0x10], r11d
xor edx, dword [r13 + rax*4]
mov dword [rsp + 0x30], r8d
mov eax, edx
mov dword [rsp + 0x38], r15d
xor eax, r11d
xor eax, dword [rbp + rcx*4]
xor eax, r8d
xor eax, dword [rdi + r10*4]
mov r14d, eax
shr r14d, 0x10
mov r8d, r14d
mov r14d, eax
shr r14d, 0x18
movzx r8d, r8b
mov r11d, r14d
mov r14, qword [rsp + 0x20]
xor ebx, dword [r9 + r14*4]
movzx r14d, al
mov qword [rsp + 0x20], r14
mov edx, ebx
movzx ebx, ah
xor edx, dword [rdi + r14*4]
mov r14d, dword [r9 + r8*4]
xor edx, dword [rbp + r11*4]
mov qword [rsp + 0x58], rbx
xor edx, dword [r13 + rbx*4]
xor r14d, edx
mov rdx, qword [rsp + 0x18]
mov esi, dword [r13 + rsi*4]
mov r15d, r14d
shr r15d, 0x18
mov ebx, r15d
mov r15d, dword [rsp + 0x28]
xor r15d, dword [r13 + rdx*4]
mov dword [rsp + 0x28], esi
mov edx, dword [r13 + r8*4]
xor edx, r15d
mov r15d, r14d
xor edx, dword [rdi + rbx*4]
shr r15d, 0x10
movzx r15d, r15b
xor edx, dword [rbp + r15*4]
mov r15, qword [rsp]
mov dword [r15 + 0x20], edx
mov rdx, qword [rsp + 8]
xor esi, dword [r9 + rdx*4]
mov edx, esi
movzx esi, r14b
xor edx, dword [rbp + rsi*4]
xor edx, dword [r9 + rbx*4]
mov ebx, r14d
mov rsi, r15
movzx ebx, bh
xor edx, dword [rdi + rbx*4]
mov ebx, dword [rsp + 0x10]
mov dword [r15 + 0x24], edx
mov r15, qword [rsp + 0x40]
xor ebx, dword [rdi + r15*4]
mov edx, ebx
mov ebx, dword [rsp + 0x30]
xor edx, ebx
xor edx, dword [rdi + r11*4]
xor edx, dword [rbp + r8*4]
mov r8d, dword [r13 + r10*4]
mov r10, qword [rsp + 0x50]
mov dword [rsi + 0x28], edx
mov rbx, qword [rsp + 0x58]
mov r11, qword [rsp + 0x20]
mov r10d, dword [rbp + r10*4]
mov edx, r8d
xor edx, r10d
xor edx, dword [r9 + rcx*4]
xor edx, dword [rbp + r11*4]
xor edx, dword [rdi + rbx*4]
mov dword [rsi + 0x2c], edx
mov r11, qword [rsp + 0x48]
mov rsi, qword [rsp + 8]
mov edx, dword [r9 + r11*4]
xor edx, dword [rdi + rcx*4]
xor edx, dword [rdi + rsi*4]
xor edx, r8d
mov r8, qword [rsp + 0x18]
xor edx, r10d
mov r10d, edx
mov edx, dword [rsp + 0x38]
xor r14d, dword [r9 + r8*4]
xor r10d, eax
mov eax, r10d
mov esi, r10d
mov dword [rsp + 0x20], r10d
shr eax, 0x18
mov ecx, esi
mov r10d, eax
mov eax, esi
shr eax, 0x10
mov qword [rsp + 0x40], r10
movzx eax, al
mov r11d, dword [rdi + rax*4]
mov eax, dword [rbp + r15*4]
movzx r15d, sil
movzx esi, ch
mov ecx, dword [rsp + 0x28]
mov qword [rsp + 0x48], rsi
xor eax, r12d
mov r12d, r11d
xor eax, dword [r13 + r10*4]
xor eax, dword [rbp + r15*4]
xor eax, dword [r9 + rsi*4]
mov dword [rsp + 0x30], r11d
xor edx, ecx
xor r12d, eax
mov qword [rsp + 8], r15
mov eax, r12d
movzx esi, r12b
mov ecx, r12d
shr eax, 0x10
xor edx, dword [r13 + rsi*4]
movzx ebx, ch
movzx eax, al
mov qword [rsp + 0x50], rbx
mov r11d, dword [rdi + rax*4]
mov eax, r12d
shr eax, 0x18
mov eax, dword [rbp + rax*4]
xor edx, eax
xor edx, dword [r9 + rbx*4]
xor edx, r11d
mov ecx, edx
mov r15d, edx
movzx ebx, dh
movzx r8d, dl
shr ecx, 0x10
shr r15d, 0x18
mov qword [rsp + 0x10], rbx
movzx ecx, cl
mov r10d, r15d
mov r15d, dword [r13 + rbx*4]
mov ebx, dword [r9 + rcx*4]
mov qword [rsp + 0x28], rcx
mov ecx, r14d
xor ecx, dword [rdi + r8*4]
xor ecx, dword [rbp + r10*4]
mov dword [rsp + 0x38], r15d
xor ecx, r15d
mov r14d, ebx
xor r14d, ecx
mov ecx, r14d
shr ecx, 0x10
mov dword [rsp + 0x58], ecx
mov ecx, r14d
shr ecx, 0x18
mov dword [rsp + 0x60], ecx
mov r15, qword [rsp + 8]
mov ecx, dword [rdi + rsi*4]
mov r8d, dword [r9 + r8*4]
xor ecx, dword [r13 + r15*4]
mov r15, qword [rsp + 0x50]
xor eax, dword [r9 + rsi*4]
mov rsi, qword [rsp + 8]
mov dword [rsp + 0x18], r8d
xor ecx, dword [rbp + r15*4]
xor ecx, dword [r13 + r10*4]
xor eax, r11d
xor ecx, ebx
mov rbx, qword [rsp]
mov r15d, dword [rsp + 0x38]
xor eax, r8d
mov r11d, dword [rsp + 0x60]
mov dword [rbx + 0x30], ecx
mov ecx, dword [rdi + rsi*4]
xor eax, r15d
mov r15, rbx
mov rsi, qword [rsp + 0x48]
mov dword [rbx + 0x34], eax
mov eax, dword [rdi + r10*4]
mov r10, qword [rsp + 0x40]
xor ecx, dword [rbp + rsi*4]
movzx esi, byte [rsp + 0x58]
xor ecx, eax
xor ecx, dword [r13 + r11*4]
xor ecx, dword [r9 + rsi*4]
mov dword [rbx + 0x38], ecx
movzx ecx, r14b
mov ebx, r14d
mov r8d, dword [r9 + rcx*4]
movzx ebx, bh
mov ecx, dword [rsp + 0x30]
xor ecx, dword [rbp + r10*4]
mov r10, rbx
xor ecx, r8d
xor ecx, dword [r13 + rbx*4]
xor ecx, dword [rbp + rsi*4]
mov dword [r15 + 0x3c], ecx
mov rcx, qword [rsp + 0x70]
cmp r15, rcx
je 0x140205f08
movdqu xmm0, xmmword [0x1402e4960]
movdqu xmm3, xmmword [rsp + 0x100]
movdqu xmm2, xmmword [0x1402e4970]
mov rax, qword [rsp + 0x190]
movdqu xmm1, xmmword [rsp + 0xc0]
paddd xmm3, xmm0
pand xmm3, xmm2
movdqa xmm4, xmm1
punpckhdq xmm1, xmm3
punpckldq xmm4, xmm3
movups xmmword [rax + 0x10], xmm1
movdqu xmm3, xmmword [rsp + 0x110]
movdqu xmm1, xmmword [rsp + 0xd0]
movups xmmword [rax], xmm4
paddd xmm3, xmm0
movdqa xmm4, xmm1
pand xmm3, xmm2
punpckldq xmm4, xmm3
punpckhdq xmm1, xmm3
movdqu xmm3, xmmword [rsp + 0x120]
movups xmmword [rax + 0x30], xmm1
movdqu xmm1, xmmword [rsp + 0xe0]
paddd xmm3, xmm0
movups xmmword [rax + 0x20], xmm4
paddd xmm0, xmmword [rsp + 0x130]
pand xmm3, xmm2
movdqa xmm4, xmm1
punpckhdq xmm1, xmm3
pand xmm0, xmm2
punpckldq xmm4, xmm3
movups xmmword [rax + 0x50], xmm1
movdqu xmm1, xmmword [rsp + 0xf0]
movups xmmword [rax + 0x40], xmm4
movdqa xmm2, xmm1
punpckhdq xmm1, xmm0
punpckldq xmm2, xmm0
movups xmmword [rax + 0x70], xmm1
movups xmmword [rax + 0x60], xmm2
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea ecx, [rax - 1]
cmp ecx, 6
jbe 0x140206874
movq xmm0, qword [r8]
pxor xmm1, xmm1
movdqa xmm2, xmm0
punpcklbw xmm0, xmm1
punpcklbw xmm2, xmm1
pxor xmm1, xmm1
pshufd xmm0, xmm0, 0x4e
movdqa xmm3, xmm2
punpcklwd xmm2, xmm1
pshufd xmm2, xmm2, 0x4e
punpcklwd xmm3, xmm1
movq qword [rsp + 0x88], xmm2
movdqa xmm2, xmm0
punpcklwd xmm0, xmm1
punpcklwd xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
movq qword [rsp + 0x80], xmm3
movq qword [rsp + 0x90], xmm2
movq qword [rsp + 0x98], xmm0
cmp eax, 8
je 0x140205db3
mov ecx, 8
movsxd r9, ecx
movzx r10d, byte [r8 + r9]
mov dword [rsp + r9*4 + 0x80], r10d
lea r9d, [rcx + 1]
cmp eax, r9d
jle 0x140205db3
movsxd r9, r9d
movzx r10d, byte [r8 + r9]
mov dword [rsp + r9*4 + 0x80], r10d
lea r9d, [rcx + 2]
cmp eax, r9d
jle 0x140205db3
movsxd r9, r9d
movzx r10d, byte [r8 + r9]
mov dword [rsp + r9*4 + 0x80], r10d
lea r9d, [rcx + 3]
cmp eax, r9d
jle 0x140205db3
movsxd r9, r9d
movzx r10d, byte [r8 + r9]
mov dword [rsp + r9*4 + 0x80], r10d
lea r9d, [rcx + 4]
cmp eax, r9d
jle 0x140205db3
movsxd r9, r9d
movzx r10d, byte [r8 + r9]
mov dword [rsp + r9*4 + 0x80], r10d
lea r9d, [rcx + 5]
cmp eax, r9d
jle 0x140205db3
movsxd r9, r9d
add ecx, 6
movzx r10d, byte [r8 + r9]
mov dword [rsp + r9*4 + 0x80], r10d
cmp eax, ecx
jle 0x140205db3
movsxd rcx, ecx
movzx eax, byte [r8 + rcx]
mov dword [rsp + rcx*4 + 0x80], eax
jmp 0x140205db3
xor ecx, ecx
jmp 0x1402067b4