Function at 0x1400159c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x80], rdx
cmp r8, qword [rsp + 0x130]
jne 0x140015f9d
test r8, r8
je 0x140015f2e
mov r15, rcx
lea rax, [rcx + 0x40]
mov qword [rsp + 0xb8], rax
mov r10, qword [rcx + 0x80]
mov eax, dword [rcx + 0x30]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx]
mov dword [rsp + 0x78], eax
mov eax, dword [rcx + 4]
mov dword [rsp + 0x74], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 0x70], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x6c], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x68], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x64], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x5c], eax
mov eax, dword [rcx + 0x20]
mov dword [rsp + 0x58], eax
mov eax, dword [rcx + 0x24]
mov dword [rsp + 0x54], eax
mov eax, dword [rcx + 0x28]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x4c], eax
mov eax, dword [rcx + 0x34]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x38]
mov dword [rsp + 0x44], eax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x80]
add rax, 0x10
mov qword [rsp + 0xa0], rax
lea rax, [rcx + 0x50]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x88]
add rax, 0x10
mov qword [rsp + 0x90], rax
xor r11d, r11d
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xb0], rcx
jmp 0x140015ae3
add r10, rax
mov qword [r15 + 0x80], r10
cmp r11, r8
jae 0x140015f2e
mov r12, r11
cmp r10, 0x40
jne 0x140015dea
mov qword [rsp + 0xc0], r12
mov dword [rsp + 0x7c], 0xa
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x30], eax
mov r9d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x64]
mov ebp, dword [rsp + 0x60]
mov r14d, dword [rsp + 0x5c]
mov r15d, dword [rsp + 0x58]
mov r12d, dword [rsp + 0x54]
mov r13d, dword [rsp + 0x50]
mov edi, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
mov r10d, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x40]
nop word [rax + rax]
mov dword [rsp + 0x3c], r15d
mov r11d, dword [rsp + 0x2c]
add r11d, r9d
mov esi, dword [rsp + 0x34]
add esi, edx
mov ebx, dword [rsp + 0x28]
add ebx, ebp
mov r15d, dword [rsp + 0x30]
add r15d, r14d
xor r8d, r11d
xor eax, esi
mov dword [rsp + 0x28], ebx
xor r10d, ebx
rol r8d, 0x10
rol eax, 0x10
rol r10d, 0x10
mov ebx, r15d
mov r15d, dword [rsp + 0x3c]
xor ecx, ebx
rol ecx, 0x10
add r15d, r8d
add r12d, eax
add r13d, r10d
mov dword [rsp + 0x30], r13d
add edi, ecx
xor r9d, r15d
xor edx, r12d
xor ebp, r13d
rol r9d, 0xc
rol edx, 0xc
rol ebp, 0xc
xor r14d, edi
rol r14d, 0xc
add r11d, r9d
mov dword [rsp + 0x2c], r11d
add esi, edx
mov r13d, dword [rsp + 0x28]
add r13d, ebp
add ebx, r14d
xor r8d, r11d
xor eax, esi
mov r11d, r13d
mov dword [rsp + 0x28], r13d
mov r13d, dword [rsp + 0x30]
xor r10d, r11d
rol r8d, 8
rol eax, 8
rol r10d, 8
xor ecx, ebx
rol ecx, 8
add r15d, r8d
add r12d, eax
mov dword [rsp + 0x34], r12d
add r13d, r10d
add edi, ecx
xor r9d, r15d
xor edx, r12d
xor ebp, r13d
rol r9d, 7
rol edx, 7
rol ebp, 7
xor r14d, edi
rol r14d, 7
mov r11d, dword [rsp + 0x2c]
add r11d, edx
mov dword [rsp + 0x2c], r11d
add esi, ebp
mov r12d, dword [rsp + 0x28]
add r12d, r14d
add ebx, r9d
xor ecx, r11d
xor r8d, esi
mov r11d, esi
xor eax, r12d
mov esi, r12d
mov r12d, dword [rsp + 0x34]
rol ecx, 0x10
rol r8d, 0x10
rol eax, 0x10
xor r10d, ebx
rol r10d, 0x10
add r13d, ecx
add edi, r8d
mov dword [rsp + 0x3c], edi
add r15d, eax
add r12d, r10d
xor edx, r13d
xor ebp, edi
xor r14d, r15d
rol edx, 0xc
rol ebp, 0xc
rol r14d, 0xc
xor r9d, r12d
rol r9d, 0xc
mov edi, esi
mov esi, r11d
mov r11d, dword [rsp + 0x2c]
add r11d, edx
add esi, ebp
add edi, r14d
add ebx, r9d
mov dword [rsp + 0x2c], r11d
xor ecx, r11d
mov r11d, esi
mov esi, edi
mov edi, dword [rsp + 0x3c]
mov dword [rsp + 0x34], r11d
xor r8d, r11d
mov dword [rsp + 0x28], esi
xor eax, esi
rol ecx, 8
rol r8d, 8
rol eax, 8
mov r11d, ebx
mov dword [rsp + 0x30], ebx
xor r10d, ebx
rol r10d, 8
add r13d, ecx
add edi, r8d
add r15d, eax
add r12d, r10d
xor edx, r13d
xor ebp, edi
xor r14d, r15d
rol edx, 7
rol ebp, 7
rol r14d, 7
xor r9d, r12d
rol r9d, 7
dec dword [rsp + 0x7c]
jne 0x140015b60
mov r11d, dword [rsp + 0x2c]
add r11d, dword [rsp + 0x78]
mov rsi, qword [rsp + 0xb0]
mov dword [rsi + 0x40], r11d
mov r11d, dword [rsp + 0x34]
add r11d, dword [rsp + 0x74]
mov dword [rsi + 0x44], r11d
mov r11d, dword [rsp + 0x28]
add r11d, dword [rsp + 0x70]
mov dword [rsi + 0x48], r11d
mov r11d, dword [rsp + 0x30]
add r11d, dword [rsp + 0x6c]
mov dword [rsi + 0x4c], r11d
add r9d, dword [rsp + 0x68]
mov dword [rsi + 0x50], r9d
add edx, dword [rsp + 0x64]
mov dword [rsi + 0x54], edx
add ebp, dword [rsp + 0x60]
mov dword [rsi + 0x58], ebp
add r14d, dword [rsp + 0x5c]
mov dword [rsi + 0x5c], r14d
add r15d, dword [rsp + 0x58]
mov dword [rsi + 0x60], r15d
add r12d, dword [rsp + 0x54]
mov dword [rsi + 0x64], r12d
add r13d, dword [rsp + 0x50]
mov dword [rsi + 0x68], r13d
add edi, dword [rsp + 0x4c]
mov dword [rsi + 0x6c], edi
mov edx, dword [rsp + 0x38]
add r8d, edx
mov dword [rsi + 0x70], r8d
add eax, dword [rsp + 0x48]
mov dword [rsi + 0x74], eax
add r10d, dword [rsp + 0x44]
mov dword [rsi + 0x78], r10d
add ecx, dword [rsp + 0x40]
mov dword [rsi + 0x7c], ecx
inc edx
mov dword [rsp + 0x38], edx
mov dword [rsi + 0x30], edx
je 0x140015f83
mov r15, rsi
mov qword [rsi + 0x80], 0
xor r10d, r10d
mov r8, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xc0]
mov ecx, 0x40
sub rcx, r10
mov rax, r8
sub rax, r12
cmp rcx, rax
cmovb rax, rcx
mov r11, rax
add r11, r12
jb 0x140015f42
cmp r11, r8
ja 0x140015f56
cmp r10, 0x41
jae 0x140015f6d
test rax, rax
jle 0x140015ad0
mov rcx, qword [rsp + 0x88]
add rcx, r12
mov rdx, qword [rsp + 0x80]
add rdx, r12
mov r9, qword [rsp + 0xb8]
lea r14, [r9 + r10]
cmp rax, 8
jae 0x140015e60
xor r9d, r9d
jmp 0x140015f10
cmp rax, 0x20
jae 0x140015e6b
xor r9d, r9d
jmp 0x140015ed9
mov r9, rax
and r9, 0xffffffffffffffe0
mov rsi, qword [rsp + 0xa0]
add rsi, r12
mov rdi, qword [rsp + 0x98]
add rdi, r10
add r12, qword [rsp + 0x90]
xor ebx, ebx
nop word cs:[rax + rax]
movups xmm0, xmmword [rsi + rbx - 0x10]
movups xmm1, xmmword [rsi + rbx]
movups xmm2, xmmword [rdi + rbx - 0x10]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rbx]
xorps xmm0, xmm1
movups xmmword [r12 + rbx - 0x10], xmm2
movups xmmword [r12 + rbx], xmm0
add rbx, 0x20
cmp r9, rbx
jne 0x140015ea0
cmp rax, r9
je 0x140015ad0
test al, 0x18
je 0x140015f10
mov rsi, r9
mov r9, rax
and r9, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov rdi, qword [r14 + rsi]
xor rdi, qword [rdx + rsi]
mov qword [rcx + rsi], rdi
add rsi, 8
cmp r9, rsi
jne 0x140015ef0
cmp rax, r9
je 0x140015ad0
nop
movzx ebx, byte [r14 + r9]
xor bl, byte [rdx + r9]
mov byte [rcx + r9], bl
lea rsi, [r9 + 1]
mov r9, rsi
cmp rax, rsi
jne 0x140015f10
jmp 0x140015ad0
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x14012e4d8]
mov rcx, r12
mov rdx, r11
call dbg.slice_index_order_fail
ud2
lea rax, [0x14012e4d8]
mov rcx, r11
mov rdx, r8
mov r8, rax
call dbg.slice_end_index_len_fail
ud2
lea r8, [0x14012e4f0]
mov edx, 0x40
mov rcx, r10
call dbg.slice_start_index_len_fail
ud2
lea rcx, str.counter_is_exhausted
lea r8, [0x14012e4c0]
mov edx, 0x14
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2
lea rcx, [0x14012e508]
lea r8, [0x14012e538]
mov edx, 0x2d
call dbg.panic
ud2