Function at 0x14001c390
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x138
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xb0], 0xfffffffffffffffe
mov rdi, r9
mov rsi, r8
mov rbx, rdx
mov qword [rbp + 0xa0], rcx
mov qword [rcx], 0
mov eax, dword [0x140185ef8]
mov ecx, dword [0x14019f7f0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x28]
jg 0x14001c862
mov qword [rbp - 0x38], 0
mov byte [rbp - 0x30], 0
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
mov byte [rbp + 0x18], 0
movups xmmword [rbp + 0x20], xmm0
mov byte [rbp + 0x30], 0
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm0
movups xmmword [rbp - 0xf], xmm0
cmp qword [rbx + 0x18], 0x10
mov rcx, rbx
jb 0x14001c42a
mov rcx, qword [rbx]
mov rdx, qword [rbx + 0x10]
add rdx, rcx
mov byte [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
lea r9, [0x140185ed0]
lea r8, [rbp - 0x38]
call fcn.1400223d0
test al, al
je 0x14001c534
lea rbx, [rbp + 0x20]
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
sub rax, rcx
sar rax, 3
movabs r12, 0xaaaaaaaaaaaaaaab
imul rax, r12
add rcx, 0x18
cmp rax, 2
cmovb rcx, rbx
lea r15, [rbp + 0x40]
mov rdx, r15
call fcn.14001cee0
mov r14, qword [rbp + 0x50]
test r14, r14
je 0x14001c4f3
cmp byte [0x140184679], 0
jne 0x14001c4b9
mov dword [0x140184674], 0x70747468
mov byte [0x140184678], 0
mov byte [0x140184679], 1
lea rcx, [0x140184674]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
cmp r14, rax
jne 0x14001c939
cmp qword [rbp + 0x58], 0x10
jb 0x14001c4d9
mov r15, qword [rbp + 0x40]
lea rdx, [0x140184674]
mov rcx, r15
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14001c939
cmp byte [0x1401846a2], 0
jne 0x14001c516
mov dword [0x14018469c], 0x70747468
mov word [0x1401846a0], 0x73
mov byte [0x1401846a2], 1
lea rcx, [0x14018469c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
cmp r14, rax
jne 0x14001c58a
cmp qword [rbp + 0x58], 0x10
jb 0x14001c58f
mov rcx, qword [rbp + 0x40]
jmp 0x14001c593
mov ecx, 0x378
call fcn.1400f0b5c
mov qword [rsp + 0x20], rdi
mov qword [rbp + 0xa8], rax
mov rcx, rax
mov rdx, rbx
mov r8d, 0x50
mov r9, rsi
call fcn.140025900
mov rsi, qword [rbp + 0xa0]
mov rcx, qword [rsi]
mov rax, qword [rbp + 0xa8]
mov qword [rsi], rax
test rcx, rcx
je 0x14001c811
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
jmp 0x14001c811
xor r13d, r13d
jmp 0x14001c5a8
lea rcx, [rbp + 0x40]
lea rdx, [0x14018469c]
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
sete r13b
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
sub rax, rcx
sar rax, 3
imul rax, r12
add rcx, 0x30
cmp rax, 3
cmovb rcx, rbx
lea rdx, [rbp + 0x60]
call fcn.14001cee0
cmp qword [rbp + 0x70], 0
jne 0x14001c65b
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
sub rax, rcx
sar rax, 3
imul rax, r12
add rcx, 0x48
cmp rax, 4
cmovb rcx, rbx
lea rdx, [rbp + 0x80]
call fcn.14001cee0
mov rax, qword [rbp + 0x78]
cmp rax, 0x10
jb 0x14001c645
mov rcx, qword [rbp + 0x60]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14001c640
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14001c933
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400f0ba0
movups xmm0, xmmword [rbp + 0x80]
movups xmm1, xmmword [rbp + 0x90]
movaps xmmword [rbp + 0x70], xmm1
movaps xmmword [rbp + 0x60], xmm0
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x20]
sub rcx, rax
sar rcx, 3
imul rcx, r12
add rax, 0x60
cmp rcx, 5
cmovae rbx, rax
lea r14, [rbp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.14001cee0
cmp qword [rbp + 0x90], 0
je 0x14001c6e7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov r15, rax
cmp qword [rbp + 0x98], 0x10
jb 0x14001c6b0
mov r14, qword [rbp + 0x80]
mov dword [r15], 0
lea rdx, [rbp + 0x38]
mov rcx, r14
mov r8d, 0xa
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
cmp r14, qword [rbp + 0x38]
je 0x14001c9d5
cmp dword [r15], 0x22
je 0x14001c9e6
mov ebx, eax
test r13b, r13b
je 0x14001c6fc
jmp 0x14001c747
test r13b, r13b
mov eax, 0x1bb
mov ebx, 0x50
cmovne ebx, eax
test r13b, r13b
jne 0x14001c747
mov ecx, 0x378
call fcn.1400f0b5c
mov qword [rsp + 0x20], rdi
lea rdx, [rbp + 0x60]
mov qword [rbp + 0xa8], rax
mov rcx, rax
mov r8d, ebx
mov r9, rsi
call fcn.140025900
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax]
mov rdx, qword [rbp + 0xa8]
mov qword [rax], rdx
test rcx, rcx
je 0x14001c747
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rax, qword [rbp + 0x98]
cmp rax, 0x10
mov rsi, qword [rbp + 0xa0]
jb 0x14001c793
mov rcx, qword [rbp + 0x80]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14001c78e
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14001c933
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400f0ba0
mov rax, qword [rbp + 0x78]
cmp rax, 0x10
jb 0x14001c7d2
mov rcx, qword [rbp + 0x60]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14001c7cd
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14001c933
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400f0ba0
mov rax, qword [rbp + 0x58]
cmp rax, 0x10
jb 0x14001c811
mov rcx, qword [rbp + 0x40]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14001c80c
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14001c933
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400f0ba0
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14001c84b
mov rdx, qword [rbp - 0x18]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14001c846
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14001c933
add rdx, 0x27
mov rcx, rax
call fcn.1400f0ba0
mov rax, rsi
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [0x140185ef8]
call fcn.1400f0bdc
cmp dword [0x140185ef8], 0xffffffff
jne 0x14001c3f2
cmp byte [0x140184670], 0
jne 0x14001c8fd
xor eax, eax
lea rcx, [0x1400fc250]
lea rdx, [0x140184631]
mov r8d, eax
and r8d, 0xf
movzx r8d, byte [r8 + rcx + 0x1024]
xor r8b, byte [rax + rcx + 0x1034]
mov byte [rax + rdx], r8b
lea r8d, [rax + 1]
and r8d, 0xf
movzx r8d, byte [r8 + rcx + 0x1024]
lea r9d, [rax + 2]
and r9d, 0xf
movzx r9d, byte [r9 + rcx + 0x1024]
xor r8b, byte [rax + rcx + 0x1035]
xor r9b, byte [rax + rcx + 0x1036]
mov byte [rax + rdx + 1], r8b
mov byte [rax + rdx + 2], r9b
add rax, 3
cmp rax, 0x3f
jne 0x14001c894
mov byte [0x140184670], 1
lea rcx, [0x140185ed0]
lea rdx, [0x140184631]
mov r8d, 1
call fcn.14001cd10
lea rcx, [0x14001ce50]
call fcn.1400f0d90
lea rcx, [0x140185ef8]
call fcn.1400f0c90
jmp 0x14001c3f2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp byte [0x140184698], 0
jne 0x14001c952
mov word [0x140184696], 0x27
mov byte [0x140184698], 1
lea rdx, [0x140184696]
lea rcx, [rbp + 0x80]
lea r8, [rbp + 0x40]
call fcn.14001d070
cmp byte [0x140184695], 0
jne 0x14001ca38
xor ecx, ecx
lea r8, [0x1400fc250]
lea r9, [0x14018467a]
mov rax, rcx
mul r12
shr rdx, 1
and rdx, 0xfffffffffffffff8
lea rdx, [rdx + rdx*2]
mov rax, r8
sub rax, rdx
movzx edx, byte [rax + rcx + 0x10bc]
xor dl, byte [rcx + r8 + 0x10d4]
mov byte [rcx + r9], dl
cmp rcx, 0x1a
je 0x14001ca31
add rax, 0x10bc
movzx eax, byte [rax + rcx + 1]
xor al, byte [rcx + r8 + 0x10d5]
mov byte [rcx + r9 + 1], al
add rcx, 2
jmp 0x14001c986
call fcn.14005b010
lea rcx, [0x140184770]
call sub.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_
cmp byte [0x1401847a3], 0
jne 0x14001ca25
movaps xmm0, xmmword [0x1401012e0]
movups xmmword [0x140184788], xmm0
movabs rax, 0x6e617220666f2074
mov qword [0x140184798], rax
mov word [0x1401847a0], 0x6567
mov byte [0x1401847a2], 0
mov byte [0x1401847a3], 1
lea rcx, [0x140184788]
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_
mov byte [0x140184695], 1
lea r8, [0x14018467a]
lea rcx, [rbp + 0x60]
lea rdx, [rbp + 0x80]
call fcn.14001cfd0
lea rcx, [rbp + 0x80]
call fcn.140001c70
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x60]
call fcn.14001d190
lea rdx, [0x14015b530]
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll__CxxThrowException
int3