Function at 0x140039ea0
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, 0x108
mov qword [rsp + 0x98], r9
mov qword [rsp + 0x90], rdx
cmp r8, qword [rsp + 0x170]
jne 0x14003a4e3
test r8, r8
je 0x14003a48e
mov r15, rcx
lea rax, [rcx + 0x40]
mov qword [rsp + 0xe0], rax
mov r10, qword [rcx + 0x80]
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x24], eax
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov ebp, dword [rcx + 4]
mov eax, dword [rcx + 8]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x4c], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x44], eax
mov r12d, dword [rcx + 0x1c]
mov eax, dword [rcx + 0x20]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x24]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x28]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x30]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x34]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x38]
mov dword [rsp + 0x28], eax
mov r13d, dword [rcx + 0x3c]
mov rax, qword [rsp + 0x90]
add rax, 0x10
mov qword [rsp + 0xd8], rax
lea rax, [rcx + 0x50]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x98]
add rax, 0x10
mov qword [rsp + 0xc8], rax
xor r11d, r11d
mov qword [rsp + 0x88], r8
mov qword [rsp + 0xa8], rcx
mov dword [rsp + 0x80], r12d
mov dword [rsp + 0x7c], r13d
jmp 0x140039fc3
add r10, rax
mov qword [r15 + 0x80], r10
cmp r11, r8
jae 0x14003a48e
mov rbx, r11
cmp r10, 0x40
jne 0x14003a345
mov qword [rsp + 0xa0], rbx
mov dword [rsp + 0x84], 0xa
mov r15d, r13d
mov eax, dword [rsp + 0x28]
mov r13d, eax
mov r10d, ebp
mov eax, dword [rsp + 0x2c]
mov ebp, eax
mov eax, dword [rsp + 0x30]
mov esi, eax
mov eax, dword [rsp + 0x34]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x38]
mov edx, eax
mov eax, dword [rsp + 0x3c]
mov r9d, eax
mov eax, dword [rsp + 0x40]
mov r14d, eax
mov ebx, r12d
mov eax, dword [rsp + 0x44]
mov r12d, eax
mov eax, dword [rsp + 0x48]
mov edi, eax
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x4c]
mov r8d, ecx
mov ecx, dword [rsp + 0x50]
mov dword [rsp + 0x20], r10d
mov r11d, dword [rsp + 0x54]
nop word cs:[rax + rax]
mov qword [rsp + 0x58], rdx
mov rdx, r9
mov qword [rsp + 0x70], r9
lea r9d, [r14 + rsi]
rol r9d, 7
xor r9d, r11d
add edx, ebp
rol edx, 7
xor edx, r10d
mov qword [rsp + 0xb8], rdx
mov rdx, qword [rsp + 0x58]
add edx, r13d
rol edx, 7
xor edx, ecx
mov qword [rsp + 0xb0], rdx
mov rcx, qword [rsp + 0x68]
lea edx, [rcx + r15]
rol edx, 7
xor edx, r8d
lea ecx, [r9 + rsi]
mov r10, r9
mov qword [rsp + 0x60], r9
rol ecx, 9
xor ecx, eax
mov r9, qword [rsp + 0xb8]
lea eax, [r9 + rbp]
rol eax, 9
xor eax, edi
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xb0]
lea r8d, [rax + r13]
rol r8d, 9
xor r8d, r12d
lea r11d, [rdx + r15]
rol r11d, 9
xor r11d, ebx
lea edi, [rcx + r10]
mov qword [rsp + 0x100], rcx
rol edi, 0xd
xor edi, r14d
mov r10, qword [rsp + 0xc0]
lea ebx, [r10 + r9]
rol ebx, 0xd
xor ebx, dword [rsp + 0x70]
lea r14d, [r8 + rax]
rol r14d, 0xd
xor r14d, dword [rsp + 0x58]
mov rax, rdx
mov qword [rsp + 0xf8], rdx
lea r12d, [r11 + rdx]
rol r12d, 0xd
xor r12d, dword [rsp + 0x68]
lea edx, [rdi + rcx]
rol edx, 0x12
xor edx, esi
mov rsi, rdx
lea edx, [rbx + r10]
rol edx, 0x12
xor edx, ebp
mov rbp, rdx
lea edx, [r14 + r8]
rol edx, 0x12
xor edx, r13d
mov r13, rdx
lea ecx, [r12 + r11]
rol ecx, 0x12
xor ecx, r15d
lea r9d, [rsi + rax]
mov r10, rsi
mov qword [rsp + 0x58], rsi
rol r9d, 7
xor r9d, ebx
mov rax, rbp
mov qword [rsp + 0x70], rbp
mov rdx, qword [rsp + 0x60]
add edx, ebp
rol edx, 7
xor edx, r14d
mov rbp, qword [rsp + 0xb8]
mov qword [rsp + 0xf0], r13
lea esi, [r13 + rbp]
rol esi, 7
xor esi, r12d
mov r15, qword [rsp + 0xb0]
lea r14d, [rcx + r15]
mov qword [rsp + 0xe8], rcx
rol r14d, 7
xor r14d, edi
lea r12d, [r9 + r10]
rol r12d, 9
xor r12d, r8d
lea ebx, [rdx + rax]
rol ebx, 9
xor ebx, r11d
lea eax, [rsi + r13]
rol eax, 9
xor eax, dword [rsp + 0x100]
lea edi, [r14 + rcx]
rol edi, 9
xor edi, dword [rsp + 0xc0]
lea r8d, [r12 + r9]
rol r8d, 0xd
xor r8d, dword [rsp + 0xf8]
lea r11d, [rbx + rdx]
rol r11d, 0xd
xor r11d, dword [rsp + 0x60]
mov qword [rsp + 0x68], rsi
lea r10d, [rax + rsi]
rol r10d, 0xd
xor r10d, ebp
lea ecx, [rdi + r14]
rol ecx, 0xd
xor ecx, r15d
lea esi, [r8 + r12]
rol esi, 0x12
xor esi, dword [rsp + 0x58]
lea ebp, [r11 + rbx]
rol ebp, 0x12
xor ebp, dword [rsp + 0x70]
lea r13d, [r10 + rax]
rol r13d, 0x12
xor r13d, dword [rsp + 0xf0]
lea r15d, [rcx + rdi]
rol r15d, 0x12
xor r15d, dword [rsp + 0xe8]
dec dword [rsp + 0x84]
jne 0x14003a050
add esi, dword [rsp + 0x30]
mov qword [rsp + 0x60], r14
mov r14, qword [rsp + 0xa8]
mov dword [r14 + 0x40], esi
add r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0xa8]
mov dword [rsi + 0x44], r9d
add r12d, dword [rsp + 0x44]
mov dword [rsi + 0x48], r12d
add r8d, dword [rsp + 0x4c]
mov dword [rsi + 0x4c], r8d
add r11d, dword [rsp + 0x54]
mov dword [rsi + 0x50], r11d
add ebp, dword [rsp + 0x2c]
mov dword [rsi + 0x54], ebp
add edx, dword [rsp + 0x38]
mov dword [rsi + 0x58], edx
mov r12d, dword [rsp + 0x80]
add ebx, r12d
mov dword [rsi + 0x5c], ebx
mov edx, dword [rsp + 0x24]
add eax, edx
mov dword [rsi + 0x60], eax
mov ebp, dword [rsp + 0x20]
add r10d, ebp
mov dword [rsi + 0x64], r10d
add r13d, dword [rsp + 0x28]
mov dword [rsi + 0x68], r13d
mov rax, qword [rsp + 0x68]
add eax, dword [rsp + 0x34]
mov dword [rsi + 0x6c], eax
mov rax, qword [rsp + 0x60]
add eax, dword [rsp + 0x40]
mov dword [rsi + 0x70], eax
add edi, dword [rsp + 0x48]
mov dword [rsi + 0x74], edi
add ecx, dword [rsp + 0x50]
mov dword [rsi + 0x78], ecx
mov r13d, dword [rsp + 0x7c]
add r15d, r13d
mov dword [rsi + 0x7c], r15d
mov r15, rsi
inc edx
mov dword [rsp + 0x24], edx
mov dword [rsi + 0x10], edx
test r12d, r12d
jne 0x14003a327
inc ebp
mov dword [r15 + 4], ebp
mov r8, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa0]
mov qword [r15 + 0x80], 0
xor r10d, r10d
mov ecx, 0x40
sub rcx, r10
mov rax, r8
sub rax, rbx
cmp rcx, rax
cmovb rax, rcx
mov r11, rax
add r11, rbx
jb 0x14003a4a2
cmp r11, r8
ja 0x14003a4b6
cmp r10, 0x41
jae 0x14003a4cd
test rax, rax
jle 0x140039fb0
mov rcx, qword [rsp + 0x98]
add rcx, rbx
mov rdx, qword [rsp + 0x90]
add rdx, rbx
mov r9, qword [rsp + 0xe0]
lea r14, [r9 + r10]
cmp rax, 8
jae 0x14003a3c0
xor r9d, r9d
jmp 0x14003a470
cmp rax, 0x20
jae 0x14003a3cb
xor r9d, r9d
jmp 0x14003a43c
mov dword [rsp + 0x20], ebp
mov r9, rax
and r9, 0xffffffffffffffe0
mov rsi, qword [rsp + 0xd8]
add rsi, rbx
mov rdi, qword [rsp + 0xd0]
add rdi, r10
add rbx, qword [rsp + 0xc8]
mov rbp, rbx
xor ebx, ebx
nop dword [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 [rbp + rbx - 0x10], xmm2
movups xmmword [rbp + rbx], xmm0
add rbx, 0x20
cmp r9, rbx
jne 0x14003a400
cmp rax, r9
mov ebp, dword [rsp + 0x20]
je 0x140039fb0
test al, 0x18
je 0x14003a470
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 0x14003a450
cmp rax, r9
je 0x140039fb0
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 0x14003a470
jmp 0x140039fb0
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x140138c80]
mov rcx, rbx
mov rdx, r11
call dbg.slice_index_order_fail
ud2
lea rax, [0x140138c80]
mov rcx, r11
mov rdx, r8
mov r8, rax
call dbg.slice_end_index_len_fail
ud2
lea r8, [0x140138c98]
mov edx, 0x40
mov rcx, r10
call dbg.slice_start_index_len_fail
ud2
lea rcx, str.assertion_failed:_input.len____output.len__
lea r8, [0x140138ce0]
mov edx, 0x2d
call dbg.panic
ud2