Function at 0x180041980
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
lea r13d, [r8 + 7]
mov r14, r9
mov r12, rdx
mov r15, rcx
cmp r8d, r13d
jae case.0x1800419da.2
mov rdi, qword [rsp + 0x68]
lea esi, [r8 - 0xe3]
xor ebx, ebx
lea rdx, [0x180000000]
cmp esi, 0xe
ja case.0x1800419da.3
mov ecx, dword [rdx + rsi*4 + 0x41c94]
add rcx, rdx
jmp rcx
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 0x39]
call fcn.180049420
mov ecx, eax
shl rcx, 3
mov dword [rsp + 0xe0], eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x68], rax
cmp rax, 0
je 0x180041c50
mov rdi, r15
jmp case.0x1800419da.3
mov eax, dword [r12]
xor r9d, r9d
mov qword [rsp + 0x48], rbx
xor edx, edx
cmp dword [r15], eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
lea r8d, [r9 + 0x5f]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
jle 0x180041a5f
mov rcx, r15
call fcn.180018250
test eax, eax
jne 0x180041c6d
mov r10, r12
jmp 0x180041a72
mov rcx, r12
call fcn.180018250
test eax, eax
jne 0x180041c6d
mov r10, r15
movsxd rbp, dword [r10]
mov rax, rbx
test ebp, ebp
jle 0x180041b9d
cmp ebp, 0x10
jb 0x180041b9d
mov r8, qword [rsp + 0x80]
lea ecx, [rbp - 1]
mov r9, qword [r10 + 0x10]
lea r11, [r10 + 0x10]
movsxd rdx, ecx
lea rcx, [r9 + rdx*4]
lea r14, [r8 + rdx*4]
cmp r8, rcx
ja 0x180041ab5
cmp r14, r9
jae 0x180041b67
cmp r8, r11
ja 0x180041ac3
cmp r14, r11
jae 0x180041b67
mov edx, ebp
and edx, 0x8000000f
jge 0x180041ad4
dec edx
or edx, 0xfffffff0
inc edx
mov r8, qword [rsp + 0x80]
mov ecx, ebp
sub ecx, edx
movsxd r11, ecx
lea rdx, [r8 + 0x20]
neg r8
nop word [rax + rax]
movdqu xmm0, xmmword [rdx - 0x20]
lea rcx, [rdx + r9]
add rax, 0x10
movdqu xmm1, xmmword [rcx + r8 - 0x20]
lea rcx, [rdx + r9]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x20], xmm1
movdqu xmm0, xmmword [rdx - 0x10]
movdqu xmm1, xmmword [rcx + r8 - 0x10]
lea rcx, [rdx + r9]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x10], xmm1
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rcx + r8]
lea rcx, [rdx + r9]
lea rdx, [rdx + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x40], xmm1
movdqu xmm0, xmmword [rdx - 0x30]
movdqu xmm1, xmmword [rcx + r8 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x30], xmm1
cmp rax, r11
jl 0x180041af0
mov r8, qword [rsp + 0x80]
mov r14, qword [rsp + 0xe8]
cmp rax, rbp
jge 0x180041ba7
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [r10 + 0x10]
mov edx, dword [rcx + rax*4]
xor dword [r8 + rax*4], edx
inc rax
cmp rax, rbp
jge 0x180041ba7
mov r8, qword [rsp + 0x80]
jmp 0x180041b80
mov r8, qword [rsp + 0x80]
jmp 0x180041b6f
mov qword [rsp + 0x50], rbx
lea r8, [rsp + 0x70]
mov qword [rsp + 0x48], rbx
xor r9d, r9d
mov qword [rsp + 0x40], rbx
xor edx, edx
mov qword [rsp + 0x38], rbx
mov ecx, 0xe9
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.180032550
lea r8, [rsp + 0x70]
mov edx, 0xc4
mov rcx, r14
call fcn.18000edb0
jmp case.0x1800419da.3
mov r8d, 0xa5
lea rdx, [rsp + 0x70]
xor ecx, ecx
call fcn.180059240
mov dword [rsp + 0x60], ebx
jmp case.0x1800419da.3
mov ebp, dword [rsp + 0xe0]
test ebp, ebp
je 0x180041c34
mov rcx, qword [rsp + 0x68]
mov edx, ebp
nop dword [rax]
mov rax, qword [rdi]
mov qword [rcx], rax
lea rcx, [rcx + 8]
mov rdi, qword [rdi + 0x10]
sub rdx, 1
jne 0x180041c20
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x60], rax
inc esi
lea eax, [rsi + 0xe3]
cmp eax, r13d
jae case.0x1800419da.2
jmp 0x1800419c0
mov rax, rbx
jmp 0x180041c76
mov rdx, qword [r14]
mov rcx, qword [r12]
cmp dword [r15], ebx
jne 0x180041c67
call qword [r15 + 8]
jmp 0x180041c6d
call qword [r15 + 8]
neg eax
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret