Function at 0x14015c000
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
xor eax, eax
mov r13, rdx
mov r14d, 1
mov qword [rbp - 0x20], rax
mov r15d, eax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov r12, rcx
mov dword [rbp - 0x4c], eax
xor cl, cl
mov eax, r14d
dec rdx
cmp r13, rax
jbe 0x14015c0ce
cmp rdx, 0x20
jb 0x14015c0c0
and edx, 0x1f
mov rcx, r13
sub rcx, rdx
xorps xmm1, xmm1
xorps xmm2, xmm2
movdqu xmm0, xmmword [rax + r12]
xorps xmm1, xmm0
movdqu xmm0, xmmword [r12 + rax + 0x10]
add rax, 0x20
xorps xmm0, xmm2
movdqa xmm2, xmm0
cmp rax, rcx
jb 0x14015c060
xorps xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
xorps xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
xorps xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 2
xorps xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 1
xorps xmm1, xmm0
movd ecx, xmm1
cmp rax, r13
jae 0x14015c0d3
nop dword [rax]
xor cl, byte [rax + r12]
inc rax
cmp rax, r13
jb 0x14015c0c0
jmp 0x14015c0d3
test r13, r13
je 0x14015c141
cmp cl, byte [r12]
jne 0x14015c141
mov edx, 0x40
mov qword [rbp - 0x30], r12
mov rcx, r14
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x20], r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rbx, rax
test rax, rax
je 0x14015c141
call fcn.14015e360
mov qword [rbx], rax
test rax, rax
jne 0x14015c15e
nop dword [rax + rax]
mov rcx, qword [rbx]
mov rdi, qword [rbx + 0x38]
call fcn.14015e370
mov rcx, qword [rbx + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, rdi
test rdi, rdi
jne 0x14015c110
xor eax, eax
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r8, r13
mov rdx, r12
xor ecx, ecx
call fcn.140156d50
mov ecx, eax
xor r8d, r8d
mov rax, r13
mov esi, r8d
shl rax, 0x20
or rcx, rax
mov qword [rbx + 0x28], rcx
cmp byte [rbp - 0xc], sil
jne 0x14015c2d5
nop dword [rax + rax]
cmp r14, r13
jae 0x14015c236
movzx eax, byte [r14 + r12]
add esi, 8
shl r15, 8
inc r14
or rax, r15
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rax
mov r15, rax
mov dword [rbp - 0x10], esi
cmp esi, 1
jl 0x14015c190
lea ecx, [rsi - 1]
mov rax, r15
shr rax, cl
mov esi, ecx
mov dword [rbp - 0x10], ecx
bt eax, 0
jae 0x14015c2d5
lea rcx, [rbp - 0x30]
call fcn.14015bbc0
inc eax
mov ecx, eax
mov dword [rbx + 0x10], eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbx + 8], rax
test rax, rax
jne 0x14015c245
nop word [rax + rax]
mov rcx, qword [rbx]
mov rdi, qword [rbx + 0x38]
call fcn.14015e370
mov rcx, qword [rbx + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, rdi
test rdi, rdi
jne 0x14015c200
jmp 0x14015c141
cmp esi, 1
jge 0x14015c1be
mov dl, 1
mov byte [rbp - 0xc], dl
jmp 0x14015c2e0
mov r13, qword [rbp - 0x28]
xor r8d, r8d
mov r9d, r8d
mov r12, qword [rbp - 0x30]
mov esi, dword [rbp - 0x10]
mov r15, qword [rbp - 0x18]
mov r14, qword [rbp - 0x20]
cmp dword [rbx + 0x10], r8d
jbe 0x14015c2d5
movzx edx, byte [rbp - 0xc]
cmp esi, 8
jge 0x14015c2a0
test dl, dl
jne 0x14015c2d0
cmp esi, 8
jge 0x14015c2a0
cmp r14, r13
jae 0x14015c2c6
movzx eax, byte [r14 + r12]
add esi, 8
shl r15, 8
inc r14
or rax, r15
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rax
mov r15, rax
mov dword [rbp - 0x10], esi
cmp esi, 8
jl 0x14015c276
lea ecx, [rsi - 8]
mov r8, r15
mov esi, ecx
mov dword [rbp - 0x10], ecx
shr r8, cl
mov rax, qword [rbx + 8]
mov byte [r9 + rax], r8b
inc r9
mov eax, dword [rbx + 0x10]
cmp r9, rax
jb 0x14015c264
xor r8d, r8d
jmp 0x14015c2e0
cmp esi, 8
jge 0x14015c2a0
mov dl, 1
mov byte [rbp - 0xc], dl
xor r8b, r8b
jmp 0x14015c2ae
movzx edx, byte [rbp - 0xc]
nop dword [rax]
test dl, dl
jne 0x14015c606
cmp esi, 8
jge 0x14015c325
nop dword [rax]
cmp r14, r13
jae 0x14015c31c
movzx eax, byte [r14 + r12]
add esi, 8
shl r15, 8
inc r14
or rax, r15
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rax
mov r15, rax
mov dword [rbp - 0x10], esi
cmp esi, 8
jl 0x14015c2f0
jmp 0x14015c325
cmp esi, 8
jl 0x14015c606
cmp esi, 4
jge 0x14015c365
test dl, dl
jne 0x14015c55e
cmp esi, 4
jge 0x14015c365
cmp r14, r13
jae 0x14015c551
movzx eax, byte [r14 + r12]
add esi, 8
shl r15, 8
inc r14
or rax, r15
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rax
mov r15, rax
mov dword [rbp - 0x10], esi
cmp esi, 4
jl 0x14015c337
lea ecx, [rsi - 4]
mov byte [rbp - 0x40], 0
mov rdi, r15
mov dword [rbp - 0x10], ecx
shr rdi, cl
mov esi, ecx
and dil, 0xf
mov byte [rbp + 0x50], 0
mov qword [rbp - 0x38], rdi
mov byte [rbp + 0x48], 0
mov dword [rbp - 0x50], r8d
mov dword [rbp + 0x58], r8d
test dil, 8
je 0x14015c401
movzx r8d, dil
cmp ecx, 2
jge 0x14015c3e2
test dl, dl
jne 0x14015c58f
cmp ecx, 2
jge 0x14015c3e2
nop dword [rax + rax]
cmp r14, r13
jae 0x14015c57a
movzx eax, byte [r14 + r12]
add esi, 8
shl r15, 8
inc r14
or rax, r15
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rax
mov r15, rax
mov dword [rbp - 0x10], esi
cmp esi, 2
jl 0x14015c3b0
mov byte [rbp - 0x40], 0
lea ecx, [rsi - 2]
mov rax, r15
shr rax, cl
mov esi, ecx
and al, 3
mov dword [rbp - 0x10], ecx
shl r8b, 2
or r8b, al
lea edi, [r8 - 0x18]
mov qword [rbp - 0x38], rdi
movzx ecx, dil
call fcn.14015ffd0
test al, al
je 0x14015c464
cmp esi, 1
jge 0x14015c450
cmp byte [rbp - 0xc], 0
jne 0x14015c5a3
cmp esi, 1
jge 0x14015c450
cmp r14, r13
jae 0x14015c596
movzx eax, byte [r14 + r12]
add esi, 8
shl r15, 8
inc r14
or rax, r15
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rax
mov r15, rax
mov dword [rbp - 0x10], esi
cmp esi, 1
jl 0x14015c422
lea ecx, [rsi - 1]
mov rax, r15
shr rax, cl
mov esi, ecx
and al, 1
mov dword [rbp - 0x10], ecx
mov qword [rbp - 0x40], rax
movzx r8d, byte [rbp - 0x40]
movzx edx, dil
mov rcx, qword [rbx]
call fcn.140160050
movzx ecx, byte [rbp - 0x38]
movzx edi, al
call fcn.14015e340
mov dword [rbp - 0x48], eax
test dil, dil
je 0x14015c5ac
mov rdi, qword [rbp - 0x38]
cmp eax, 1
jl 0x14015c4dc
mov r9d, dword [rbp - 0x4c]
lea rax, [rbp - 0x50]
movzx r8d, byte [rbp - 0x40]
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x28], rax
movzx edx, dil
lea rax, [rbp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.14015d6e0
test al, al
je 0x14015c5ac
mov esi, dword [rbp - 0x10]
mov r15, qword [rbp - 0x18]
mov r14, qword [rbp - 0x20]
mov r13, qword [rbp - 0x28]
mov r12, qword [rbp - 0x30]
mov eax, dword [rbp - 0x48]
cmp eax, 2
jne 0x14015c526
movzx r8d, byte [rbp - 0x40]
lea rax, [rbp + 0x58]
mov qword [rsp + 0x28], rax
lea rcx, [rbp - 0x30]
lea rax, [rbp + 0x48]
mov r9d, 0xffffffff
movzx edx, dil
mov qword [rsp + 0x20], rax
call fcn.14015d6e0
test al, al
je 0x14015c5ac
mov esi, dword [rbp - 0x10]
mov r15, qword [rbp - 0x18]
mov r14, qword [rbp - 0x20]
mov r13, qword [rbp - 0x28]
mov r12, qword [rbp - 0x30]
mov eax, dword [rbp + 0x58]
movzx r9d, byte [rbp + 0x48]
mov r8d, dword [rbp - 0x50]
movzx edx, byte [rbp + 0x50]
mov rcx, qword [rbx]
mov dword [rsp + 0x20], eax
call fcn.140160170
test al, al
je 0x14015c5ac
inc dword [rbp - 0x4c]
xor r8d, r8d
jmp 0x14015c2d5
cmp esi, 4
jge 0x14015c365
mov byte [rbp - 0xc], 1
xor dil, dil
mov byte [rbp + 0x50], 0
mov byte [rbp - 0x40], dil
mov byte [rbp + 0x48], 0
mov dword [rbp - 0x50], r8d
mov dword [rbp + 0x58], r8d
jmp 0x14015c3fd
mov byte [rbp - 0x40], 0
cmp esi, 2
jge 0x14015c3e2
mov byte [rbp - 0xc], 1
mov byte [rbp - 0x40], 0
xor al, al
jmp 0x14015c3f2
cmp esi, 1
jge 0x14015c450
mov byte [rbp - 0xc], 1
mov byte [rbp - 0x40], 0
jmp 0x14015c464
lea r9, [0x1401d50f0]
mov r8d, 0xd0
lea rdx, str.D:_a_vgmtrans_vgmtranslibunarr_rar_filter_rar.c
lea rcx, [0x1401d47ec]
call fcn.140156180
nop dword [rax]
mov rcx, qword [rbx]
mov rdi, qword [rbx + 0x38]
call fcn.14015e370
mov rcx, qword [rbx + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, rdi
test rdi, rdi
jne 0x14015c5d0
jmp 0x14015c141
mov rcx, qword [rbx]
call fcn.140160010
test al, al
jne 0x14015c659
mov rcx, qword [rbx]
xor r8d, r8d
mov dl, 0x16
call fcn.140160050
test al, al
jne 0x14015c659
mov rcx, qword [rbx]
mov rdi, qword [rbx + 0x38]
call fcn.14015e370
mov rcx, qword [rbx + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, rdi
test rdi, rdi
jne 0x14015c623
jmp 0x14015c141
mov rax, rbx
jmp 0x14015c143