Function at 0x18002f180
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp], 0xfffffffffffffffe
mov r14, r9
mov esi, r8d
mov r13, rdx
mov rbx, rcx
cmp byte [0x18005f0b4], 0
jne 0x18002f274
mov rdx, qword [0x18005cc20]
movabs rax, 0x9c0ca26703805657
add rax, rdx
movabs rcx, 0x9c0ca26703805670
add rcx, rdx
xor edx, edx
lea r8, [0x18005f0a6]
nop word cs:[rax + rax]
movzx r10d, byte [rcx + rdx]
mov r9d, r10d
not r9b
mov edi, r10d
xor dil, 4
and dil, r9b
mov r11d, r10d
and r11b, 0x11
and r10b, 0x60
and r9b, 0x8e
or r9b, r10b
mov r10d, r9d
xor r10b, 0x9f
mov r15d, r9d
xor r15b, 0x8a
and r15b, r10b
and dil, 0xee
or dil, r15b
lea r15d, [r11 - 0x16]
xor r15b, dil
xor r9b, 0x60
mov edi, r9d
and dil, 0x66
and r10b, 0x89
or r10b, dil
or r9b, r11b
xor r10b, r11b
xor r10b, 0x76
and r10b, r9b
or r10b, r15b
xor r10b, byte [rax + rdx]
xor r10b, 0xee
mov byte [rdx + r8], r10b
inc rdx
cmp rdx, 0xe
jne 0x18002f1f0
mov byte [0x18005f0b4], 1
xorps xmm0, xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13], xmm0
lea rcx, [0x18005f0a6]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
js 0x18002fc75
mov rdi, rax
cmp rax, 0xf
ja 0x18002f2c5
mov qword [r13 + 0x10], rdi
mov qword [r13 + 0x18], 0xf
lea rdx, [0x18005f0a6]
mov rcx, r13
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add rdi, r13
jmp 0x18002f387
mov eax, edi
and eax, 0xf
movabs rcx, 0x19de41ba56853670
or rcx, rax
mov rdx, rdi
and rdx, 0xfffffffffffffff0
movabs r8, 0x19de41ba5685367f
xor r8, rdx
xor r8, rcx
or r8, rax
cmp r8, 0x17
mov r12d, 0x16
cmovae r12, r8
cmp r12, 0xfff
jb 0x18002f359
lea rcx, [r12 + 0x28]
call fcn.180047c7c
lea rcx, [rax + 0x27]
mov rdx, 0xffffffffffffffd8
sub rdx, rax
movabs r15, 0x26c553cca5b37451
and rcx, r15
movabs r8, 0xd93aac335a4c8bae
and r8, rdx
or r8, rcx
xor r15, r8
movabs rcx, 0xd93aac335a4c8bb1
xor rcx, r8
and r15, rcx
xor r15, rcx
mov qword [r15 - 8], rax
jmp 0x18002f366
lea rcx, [r12 + 1]
call fcn.180047c7c
mov r15, rax
mov qword [r13], r15
mov qword [r13 + 0x10], rdi
mov qword [r13 + 0x18], r12
lea rdx, [0x18005f0a6]
mov rcx, r15
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add rdi, r15
mov byte [rdi], 0
mov r15, qword [r14 + 0x10]
movabs rdi, 0x9c0ca26703802105
test r15, r15
mov qword [rbp - 0x10], r13
je 0x18002f6b2
mov byte [rbp - 0x50], 0x20
cmp byte [0x18005f0c4], 0
jne 0x18002f5b3
mov rax, qword [0x18005cc20]
movabs rcx, 0x9c0ca2670380569a
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056af
xor cl, byte [rax + rdx]
mov byte [0x18005f0b5], cl
movabs rcx, 0x9c0ca2670380569b
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b0
xor cl, byte [rax + rdx]
mov byte [0x18005f0b6], cl
movabs rcx, 0x9c0ca2670380569c
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b1
xor cl, byte [rax + rdx]
mov byte [0x18005f0b7], cl
movabs rcx, 0x9c0ca2670380569d
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b2
xor cl, byte [rax + rdx]
mov byte [0x18005f0b8], cl
movabs rcx, 0x9c0ca2670380569e
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b3
xor cl, byte [rax + rdx]
mov byte [0x18005f0b9], cl
movabs rcx, 0x9c0ca2670380569f
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b4
xor cl, byte [rax + rdx]
mov byte [0x18005f0ba], cl
movabs rcx, 0x9c0ca267038056a0
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b5
xor cl, byte [rax + rdx]
mov byte [0x18005f0bb], cl
movabs rcx, 0x9c0ca267038056a1
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b6
xor cl, byte [rax + rdx]
mov byte [0x18005f0bc], cl
movabs rcx, 0x9c0ca267038056a2
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b7
xor cl, byte [rax + rdx]
mov byte [0x18005f0bd], cl
movabs rcx, 0x9c0ca267038056a3
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b8
xor cl, byte [rax + rdx]
mov byte [0x18005f0be], cl
movabs rcx, 0x9c0ca267038056a4
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056b9
xor cl, byte [rax + rdx]
mov byte [0x18005f0bf], cl
movabs rcx, 0x9c0ca267038056a5
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056ba
xor cl, byte [rax + rdx]
mov byte [0x18005f0c0], cl
movabs rcx, 0x9c0ca267038056a6
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056bb
xor cl, byte [rax + rdx]
mov byte [0x18005f0c1], cl
movabs rcx, 0x9c0ca267038056a7
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056bc
xor cl, byte [rax + rdx]
mov byte [0x18005f0c2], cl
movabs rcx, 0x9c0ca267038056a8
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056bd
xor cl, byte [rax + rdx]
mov byte [0x18005f0c3], cl
mov byte [0x18005f0c4], 1
mov r12, qword [0x18005cc30]
add r12, rdi
xorps xmm0, xmm0
movaps xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0xf
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea rdx, [r15 + rax]
inc rdx
cmp rdx, 0x10
jb 0x18002f5fa
lea rcx, [rbp - 0x30]
call fcn.18001b270
mov qword [rbp - 0x20], 0
lea r15, [rbp - 0x30]
lea r9, [rbp - 0x50]
mov rcx, r15
mov rdx, r12
mov r8, r14
call fcn.180037ae0
mov r8, qword [rbp - 0x20]
cmp qword [rbp - 0x18], 0x10
jb 0x18002f61f
mov r15, qword [rbp - 0x30]
mov r9, qword [rbp - 0x10]
mov rcx, qword [r9 + 0x10]
mov rax, qword [r9 + 0x18]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x18002f64b
mov qword [rsp + 0x20], r8
mov rcx, r9
mov rdx, r8
mov r9, r15
call fcn.18001ab10
jmp 0x18002f66f
lea r14, [rcx + r8]
mov qword [r9 + 0x10], r14
mov r12, r9
cmp rax, 0x10
jb 0x18002f65f
mov r12, qword [r9]
add rcx, r12
mov rdx, r15
call sub.VCRUNTIME140.dll_memmove
mov byte [r12 + r14], 0
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x18002f6ae
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18002f6a9
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18002fc7a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.180047cc0
mov r13, qword [rbp - 0x10]
cmp byte [0x18005f0c8], 0
jne 0x18002f72c
mov rax, qword [0x18005cc20]
movabs rcx, 0x9c0ca267038056d7
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056ef
xor cl, byte [rax + rdx]
mov byte [0x18005f0c5], cl
movabs rcx, 0x9c0ca267038056d8
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056f0
xor cl, byte [rax + rdx]
mov byte [0x18005f0c6], cl
movabs rcx, 0x9c0ca267038056d9
movzx ecx, byte [rax + rcx]
movabs rdx, 0x9c0ca267038056f1
xor cl, byte [rax + rdx]
mov byte [0x18005f0c7], cl
mov byte [0x18005f0c8], 1
mov r14, qword [0x18005cc38]
add r14, rdi
mov rcx, r14
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x18]
mov r8, rdx
sub r8, rcx
cmp r8, rax
jae 0x18002f766
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, rax
mov r9, r14
call fcn.18001ab10
jmp 0x18002f790
mov r15, rax
add r15, rcx
mov qword [r13 + 0x10], r15
mov r12, r13
cmp rdx, 0x10
jb 0x18002f77d
mov r12, qword [r13]
add rcx, r12
mov rdx, r14
mov r8, rax
call sub.VCRUNTIME140.dll_memmove
mov byte [r12 + r15], 0
mov ecx, dword [rbx + 0x40]
cmp ecx, 0xe
jne 0x18002f90e
mov byte [rbp - 1], 0x27
lea rcx, [rbx + 0x48]
lea rdx, [rbp - 0x50]
call fcn.18002fe50
mov rax, qword [rbx + 0xb8]
mov qword [rbp - 0x58], rax
cmp byte [0x18005f0d8], 0
jne 0x18002f8a5
mov rdx, qword [0x18005cc20]
movabs rax, 0x9c0ca2670380570a
add rax, rdx
movabs rcx, 0x9c0ca26703805723
add rcx, rdx
xor edx, edx
lea r8, [0x18005f0c9]
nop
movzx r11d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
mov r14d, r11d
or r14b, 0x16
mov r10d, r14d
not r10b
and r14b, 0x62
mov ebx, r10d
and bl, 0x89
or bl, r14b
and r11b, 0x16
mov r14d, ebx
xor r14b, 0x62
mov r15d, r14d
and r15b, 0x40
and r10b, 0xa9
or r10b, r15b
mov r15d, r14d
and r15b, 0x28
and bl, 0xc3
or bl, r15b
or r14b, r11b
xor bl, r11b
xor bl, 0xbd
and bl, r14b
or r10b, r11b
or r10b, bl
mov r11d, r9d
xor r11b, 0x16
mov ebx, r9d
xor bl, 0x63
and bl, r11b
mov r14d, r10d
xor r14b, 0x8a
and r11b, 0x55
and r9b, 0x20
or r9b, r11b
or r9b, 0xa
xor r9b, bl
mov r11d, r9d
xor r11b, 0x7f
xor r10b, 0x75
and r10b, r11b
add r9b, 0x80
and r9b, r14b
or r9b, r10b
mov byte [rdx + r8], r9b
inc rdx
cmp rdx, 0xf
jne 0x18002f7f0
mov byte [0x18005f0d8], 1
mov r8, qword [0x18005cc40]
add r8, rdi
lea rax, [rbp - 1]
mov qword [rsp + 0x20], rax
lea rbx, [rbp - 0x30]
lea rdx, [rbp - 0x58]
lea r9, [rbp - 0x50]
mov rcx, rbx
call fcn.180039d30
mov r8, qword [rbp - 0x20]
cmp qword [rbp - 0x18], 0x10
jb 0x18002f8db
mov rbx, qword [rbp - 0x30]
mov r9, qword [rbp - 0x10]
mov rcx, qword [r9 + 0x10]
mov rax, qword [r9 + 0x18]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x18002fa30
mov qword [rsp + 0x20], r8
mov rcx, r9
mov rdx, r8
mov r9, rbx
call fcn.18001ab10
jmp 0x18002fa54
call fcn.180039e70
mov qword [rbp - 0x50], rax
cmp byte [0x18005f0e5], 0
jne 0x18002f9a0
mov rdx, qword [0x18005cc20]
movabs rax, 0x9c0ca2670380574c
add rax, rdx
movabs rcx, 0x9c0ca2670380575e
add rcx, rdx
xor edx, edx
lea r8, [0x18005f0d9]
nop
movzx r9d, byte [rcx + rdx]
movzx r10d, byte [rax + rdx]
mov r11d, r10d
not r11b
or r11b, r9b
not r9b
or r9b, r10b
mov r10d, r9d
not r10b
mov ebx, r10d
and bl, 0x12
and r10b, 0xc5
and r9b, 0x28
or r9b, r10b
or bl, 0xc5
xor bl, r11b
xor bl, r9b
xor bl, 0x12
mov byte [rdx + r8], bl
inc rdx
cmp rdx, 0xc
jne 0x18002f950
mov byte [0x18005f0e5], 1
mov rdx, qword [0x18005cc48]
add rdx, rdi
lea rbx, [rbp - 0x30]
lea r8, [rbp - 0x50]
mov rcx, rbx
call fcn.180036370
mov r8, qword [rbp - 0x20]
cmp qword [rbp - 0x18], 0x10
jb 0x18002f9c9
mov rbx, qword [rbp - 0x30]
mov r9, qword [rbp - 0x10]
mov rcx, qword [r9 + 0x10]
mov rax, qword [r9 + 0x18]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x18002f9f5
mov qword [rsp + 0x20], r8
mov rcx, r9
mov rdx, r8
mov r9, rbx
call fcn.18001ab10
jmp 0x18002fa19
lea r14, [rcx + r8]
mov qword [r9 + 0x10], r14
mov r15, r9
cmp rax, 0x10
jb 0x18002fa09
mov r15, qword [r9]
add rcx, r15
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [r15 + r14], 0
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x18002fae6
mov rcx, qword [rbp - 0x30]
jmp 0x18002fab5
lea r14, [rcx + r8]
mov qword [r9 + 0x10], r14
mov r15, r9
cmp rax, 0x10
jb 0x18002fa44
mov r15, qword [r9]
add rcx, r15
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [r15 + r14], 0
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x18002fa93
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18002fa8e
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18002fc7a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.180047cc0
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
mov rax, qword [rbp - 0x38]
cmp rax, 0x10
jb 0x18002fae6
mov rcx, qword [rbp - 0x50]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18002fae1
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18002fc7a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.180047cc0
mov rax, qword [rbp - 0x10]
test esi, esi
je 0x18002fc61
mov ecx, esi
call fcn.180039e70
mov qword [rbp - 0x50], rax
cmp byte [0x18005f0f2], 0
jne 0x18002fbaa
mov rdx, qword [0x18005cc20]
movabs rax, 0x9c0ca26703805780
add rax, rdx
movabs rcx, 0x9c0ca26703805793
add rcx, rdx
xor edx, edx
lea r8, [0x18005f0e6]
nop word cs:[rax + rax]
movzx r11d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
mov ebx, r11d
xor bl, 0xb4
mov esi, r9d
xor sil, 0xb4
mov r14d, r11d
and r14b, 0xa
mov r10d, r11d
xor r10b, 0xbe
and r10b, bl
mov ebx, r9d
and bl, 0xa
xor r9b, 0xbe
and r9b, sil
xor r9b, bl
xor r14b, r10b
not r10b
xor r14b, 0xa
or r10b, r11b
not r10b
and r10b, 0xa
or r10b, r14b
xor r10b, r9b
xor r10b, 0xa
mov byte [rdx + r8], r10b
inc rdx
cmp rdx, 0xc
jne 0x18002fb40
mov byte [0x18005f0f2], 1
add rdi, qword [0x18005cc50]
lea rsi, [rbp - 0x30]
lea r8, [rbp - 0x50]
mov rcx, rsi
mov rdx, rdi
call fcn.180036370
mov r8, qword [rbp - 0x20]
cmp qword [rbp - 0x18], 0x10
jb 0x18002fbd3
mov rsi, qword [rbp - 0x30]
mov r9, qword [rbp - 0x10]
mov rcx, qword [r9 + 0x10]
mov rax, qword [r9 + 0x18]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x18002fbff
mov qword [rsp + 0x20], r8
mov rcx, r9
mov rdx, r8
mov r9, rsi
call fcn.18001ab10
jmp 0x18002fc22
lea rdi, [rcx + r8]
mov qword [r9 + 0x10], rdi
mov rbx, r9
cmp rax, 0x10
jb 0x18002fc13
mov rbx, qword [r9]
add rcx, rbx
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rdi], 0
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x18002fc5d
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18002fc58
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18002fc7a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.180047cc0
mov rax, qword [rbp - 0x10]
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.180016f90
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3