Function at 0x140015c60
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rsi, rcx
mov rbx, r8
lea rcx, [rsp + 0x20]
call 0x140015d80
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x20]
mov rbp, r12
sub rbp, rdi
js 0x140015d6a
pxor xmm0, xmm0
mov qword [rsi + 0x10], 0
movups xmmword [rsi], xmm0
je 0x140015d48
mov rcx, rbp
call fcn.1400b0df0
cmp rbp, 1
lea r13, [rax + rbp]
mov qword [rsi], rax
mov qword [rsi + 0x10], r13
lea rcx, [rax + 1]
mov byte [rax], 0
jne 0x140015d08
cmp r12, rdi
mov qword [rsi + 8], rcx
je 0x140015d60
mov rax, qword [rbx]
mov rdx, qword [rsi]
movzx eax, byte [rax]
xor al, byte [rdi]
mov byte [rdx], al
mov rdx, qword [rsp + 0x30]
mov rcx, rdi
sub rdx, rdi
call fcn.1400b0db0
mov rax, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
lea r8, [rbp - 1]
xor edx, edx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
xor ecx, ecx
cmp r12, rdi
mov qword [rsi + 8], r13
je 0x140015d60
nop
mov rax, rcx
xor edx, edx
mov r8, qword [rsi]
div qword [rbx + 8]
mov rax, qword [rbx]
movzx eax, byte [rax + rdx]
xor al, byte [rdi + rcx]
mov byte [r8 + rcx], al
add rcx, 1
cmp rcx, rbp
jb 0x140015d20
jmp 0x140015ce1
mov qword [rsi], 0
xor ecx, ecx
mov qword [rsi + 0x10], 0
jmp 0x140015cc7
test rdi, rdi
je 0x140015cf1
jmp 0x140015ce1
lea rcx, str.cannot_create_std::vector_larger_than_max_size__
call fcn.1400b1d40
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
xor r9d, r9d
pxor xmm0, xmm0
mov rdi, qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
mov r8d, 1
lea rbp, [rsp + 0x4c]
movups xmmword [rcx], xmm0
mov rbx, rcx
mov rsi, rdx
mov qword [rcx + 0x10], 0
mov rcx, qword [rdx]
xor edx, edx
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rbp
call rdi
test eax, eax
jne 0x140015e48
mov rsi, qword [0x1400bd590]
mov r8d, 0x32
lea rdx, str.CryptStringToBinaryA_failed_to_get_length._Error:
mov rcx, rsi
call fcn.1400abb20
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140071220
mov rsi, rax
mov rax, qword [rax]
mov rax, qword [rax - 0x18]
mov rdi, qword [rsi + rax + 0xf0]
test rdi, rdi
je 0x140015fa1
cmp byte [rdi + 0x38], 0
je 0x140015f20
movsx edx, byte [rdi + 0x43]
mov rcx, rsi
call fcn.14006fe80
mov rcx, rax
call fcn.140070060
mov rax, rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, qword [rbx + 8]
mov r9, qword [rbx]
mov edx, dword [rsp + 0x4c]
mov rax, rcx
sub rax, r9
cmp rax, rdx
jb 0x140015f58
cmp rdx, rax
jae 0x140015e78
add rdx, r9
cmp rcx, rdx
je 0x140015e78
mov qword [rbx + 8], rdx
nop dword [rax + rax]
mov rcx, qword [rsi]
xor edx, edx
mov qword [rsp + 0x20], rbp
mov r8d, 1
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
call rdi
test eax, eax
jne 0x140015e39
mov rsi, qword [0x1400bd590]
mov r8d, 0x2e
lea rdx, str.CryptStringToBinaryA_failed_to_decode._Error:
mov rcx, rsi
call fcn.1400abb20
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140071220
mov rsi, rax
mov rax, qword [rax]
mov rax, qword [rax - 0x18]
mov rdi, qword [rsi + rax + 0xf0]
test rdi, rdi
je 0x140015fa1
cmp byte [rdi + 0x38], 0
je 0x140015f70
movsx edx, byte [rdi + 0x43]
mov rcx, rsi
call fcn.14006fe80
mov rcx, rax
call fcn.140070060
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
je 0x140015e39
mov qword [rbx + 8], rax
jmp 0x140015e39
mov rcx, rdi
call fcn.140022c50
mov rax, qword [rdi]
mov edx, 0xa
lea rcx, [0x140023300]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140015e29
mov rcx, rdi
call rax
movsx edx, al
jmp 0x140015e29
sub rdx, rax
mov rcx, rbx
call fcn.14009a2f0
mov r9, qword [rbx]
jmp 0x140015e78
mov rcx, rdi
call fcn.140022c50
mov rax, qword [rdi]
mov edx, 0xa
lea rcx, [0x140023300]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140015ef5
mov rcx, rdi
call rax
movsx edx, al
jmp 0x140015ef5
call fcn.1400b1bd0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop