Function at 0x18013ecbc
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1c0
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r15, rdx
mov r14d, ecx
mov byte [rbp + 0x110], 0x3f
xor esi, esi
mov byte [rbp + 0x118], sil
mov byte [rsp + 0x30], sil
lea rcx, [fcn.18013e3b8]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
cmp byte [0x180196532], sil
jne 0x18013ed40
lea rbx, [0x180199240]
mov rdx, rbx
lea rcx, [rbp - 0x10]
call fcn.18000be28
mov rcx, rax
call fcn.18000bd8c
add rbx, 0x20
lea rax, [0x1801992a0]
cmp rbx, rax
jne 0x18013ed1c
call fcn.18013e8a0
mov qword [0x180190180], rsi
mov dword [0x180190188], esi
mov word [0x18019018c], si
mov byte [0x18019018e], sil
mov qword [0x180190198], rsi
mov r12d, 1
mov qword [0x1801901a0], r12
mov qword [0x1801901a8], rsi
mov qword [0x1801901b0], rsi
xor edx, edx
mov r8d, 0x1000
lea rcx, [0x1801901c8]
call qword [sym.imp.VCRUNTIME140.dll_memset]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x78], xmm0
movups xmmword [rbp + 0x88], xmm0
mov dword [rbp + 0x98], eax
movups xmmword [0x1801911c8], xmm0
movups xmmword [0x1801911d8], xmm0
mov dword [0x1801911e8], eax
lea r13, [0x180164ad4]
mov rdx, r13
lea rcx, [0x1801911f0]
call fcn.18000bd10
mov rdx, r13
lea rcx, [0x180191210]
call fcn.18000bd10
mov dword [0x180191230], esi
mov rbx, qword [0x180191238]
mov rdi, qword [0x180191240]
cmp rbx, rdi
je 0x18013ee27
lea rcx, [rbx + 0x20]
call fcn.18000d144
mov rcx, rbx
call fcn.18000bd8c
add rbx, 0x38
cmp rbx, rdi
jne 0x18013edff
mov rax, qword [0x180191238]
mov qword [0x180191240], rax
mov dword [0x180191250], 0x40
mov dword [0x180191258], esi
mov rdx, r13
lea rcx, [0x180191260]
call fcn.18000bd10
mov qword [0x180191280], rsi
mov rdx, r13
lea rcx, [0x180191288]
call fcn.18000bd10
mov qword [0x1801912a8], rsi
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [0x1801912b0]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov rax, qword [0x1801912b8]
cmp rax, qword [0x1801912c0]
je 0x18013ee8d
mov qword [0x1801912c0], rax
mov qword [0x1801912d0], rsi
mov qword [0x1801912e0], rsi
mov qword [0x1801912d8], rsi
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rbp - 0x40], esi
lea rdx, [rbp - 0x40]
mov rcx, rax
call fcn.1800dc8c0
cmp dword [rbp - 0x40], esi
setne byte [0x18019018c]
test al, al
jne 0x18013eecc
mov byte [0x18019018c], sil
lea rax, [rbp + 0x110]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
lea r8, [rbp + 0x118]
mov rdx, r15
mov ecx, r14d
call fcn.1800b3210
test al, al
je 0x18013f2b6
mov dil, sil
lea rax, [0x180190180]
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x40], sil
mov bl, sil
movsx eax, byte [rbp + 0x110]
cmp al, 0x3f
je 0x18013ef5e
mov ecx, eax
sub ecx, 0x61
je 0x18013ef45
cmp ecx, r12d
jne 0x18013ef5e
mov dl, r12b
lea rcx, [rsp + 0x38]
call fcn.1800adb60
mov bl, al
movzx ecx, byte [rsp + 0x40]
test al, al
cmovne ecx, r12d
mov byte [rsp + 0x40], cl
jmp 0x18013ef5e
mov dl, r12b
lea rcx, [rsp + 0x38]
call fcn.1800ad77c
test al, al
je 0x18013ef5e
mov byte [rsp + 0x40], r12b
mov bl, r12b
mov eax, 0x78
cmp byte [rbp + 0x110], al
je 0x18013efd4
test bl, bl
jne 0x18013efa6
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.1800adb60
test al, al
je 0x18013ef88
cmp dword [0x180191258], 2
je 0x18013efa1
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.1800ad77c
test al, al
je 0x18013efd4
cmp dword [0x180191258], r12d
jne 0x18013efd4
mov byte [rsp + 0x40], r12b
mov dil, r12b
lea r8, [0x180191260]
mov rdx, r15
lea rcx, [rsp + 0x38]
call fcn.1800b3d78
test al, al
je 0x18013f2b6
cmp dword [0x1801901a0], esi
jne 0x18013efd4
mov dword [0x1801901a0], r12d
mov eax, 0xf
lea ebx, [rax - 7]
lea r13d, [rax + 0x10]
cmp r14d, r12d
jle 0x18013f02a
cmp byte [0x180190180], sil
jne 0x18013f006
mov r8, r15
mov edx, r14d
lea rcx, [rsp + 0x38]
call fcn.1800b38c8
test al, al
je 0x18013f2b6
mov edi, 0xf
mov al, byte [rbp + 0x118]
test al, al
je 0x18013f37f
mov byte [0x18019018b], al
mov byte [0x180196530], al
jmp 0x18013f393
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov ecx, 4
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x70], rax
mov r8d, ecx
lea rdx, str._s_1
lea rcx, [rsp + 0x78]
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov byte [rsp + 0x7c], sil
lea rcx, [rsp + 0x78]
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
cmovae rcx, qword [rsp + 0x78]
mov r8, qword [rbp - 0x78]
add r8, rcx
lea rax, [rsp + 0x78]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0x78]
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
mov r14d, 7
cmp rax, r8
jne 0x18013f0b6
mov rcx, rsi
mov qword [rsp + 0x68], rcx
mov eax, r14d
mov qword [rsp + 0x70], rax
mov word [rsp + 0x58], si
jmp 0x18013f0d7
mov r9, r8
sub r9, rax
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.18001e568
mov rdx, qword [rbp - 0x70]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
test dil, dil
jne 0x18013f2dd
test rcx, rcx
je 0x18013f114
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x38]
call fcn.18000be28
mov rcx, rax
call fcn.18000bd8c
lea r8, [rsp + 0x58]
mov rdx, r15
lea rcx, [rsp + 0x38]
call fcn.1800b3d78
test al, al
jmp 0x18013f226
mov dword [rsp + 0x48], 0x55
mov eax, 0x78
mov word [rsp + 0x4c], ax
mov eax, 0x26
mov word [rsp + 0x4e], ax
mov eax, 0x75
mov word [rsp + 0x50], ax
mov eax, 0x64
mov word [rsp + 0x52], ax
xor eax, eax
mov word [rsp + 0x54], ax
movzx eax, word [rsp + 0x4c]
mov rdx, rsi
movzx eax, word [rsp + rdx*2 + 0x4c]
mov ecx, dword [rsp + 0x48]
xor cx, ax
mov word [rsp + rdx*2 + 0x4c], cx
add rdx, r12
cmp rdx, 4
jb 0x18013f153
mov word [rsp + 0x54], si
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
lea rax, [rsp + 0x4c]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], si
jne 0x18013f18a
lea rdx, [rsp + 0x4c]
lea rcx, [rbp - 0x30]
call fcn.18000c67c
nop
lea r8, [rbp - 0x30]
mov rdx, r15
lea rcx, [rsp + 0x38]
call fcn.1800b3d78
mov bl, al
mov rdx, qword [rbp - 0x18]
mov r11d, 8
cmp rdx, r11
jb 0x18013f1fd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013f1f8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, r13
jbe 0x18013f1f8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
movdqa xmm0, xmmword [0x180165920]
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x30], si
xor edx, edx
lea r8d, [rdx + 0xa]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.VCRUNTIME140.dll_memset]
test bl, bl
mov ebx, 8
jne 0x18013f2d4
mov rdx, qword [rsp + 0x70]
cmp rdx, rbx
jb 0x18013f26c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013f267
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, r13
ja 0x18013f30f
call fcn.180157a14
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], r14
mov word [rsp + 0x58], si
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x18013f2b6
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013f2b1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, r13
ja 0x18013f35c
call fcn.180157a14
mov eax, r12d
mov rbx, qword [rsp + 0x200]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, qword [rbp - 0x70]
mov rax, qword [rsp + 0x70]
cmp rax, rbx
jb 0x18013f31f
lea rdx, [rax*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013f316
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, r13
jbe 0x18013f316
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
mov rdx, qword [rbp - 0x70]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], r14
mov word [rsp + 0x58], si
cmp rdx, 0x10
jb 0x18013f368
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013f363
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, r13
jbe 0x18013f363
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
mov qword [rbp - 0x78], rsi
mov edi, 0xf
mov qword [rbp - 0x70], rdi
mov byte [rsp + 0x78], sil
jmp 0x18013f00b
mov al, byte [rsp + 0x30]
test al, al
je 0x18013f393
mov byte [0x180190182], al
mov byte [0x180196532], al
xor ecx, ecx
call fcn.1800aa040
lea rcx, [0x180190180]
call fcn.18000a2ac
cmp dword [0x180191258], esi
je 0x18013f2b6
mov rcx, qword [0x1801901a8]
test rcx, rcx
je 0x18013f3c5
xor edx, edx
call fcn.180035dd0
call fcn.18013e504
test al, al
je 0x18013f2b6
mov edx, dword [0x180191250]
lea rcx, [rbp + 0x58]
call fcn.1800d4eac
nop
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0xa0]
call fcn.18000be28
mov rcx, rax
call fcn.18000bd8c
nop
lea rcx, [rbp + 0x58]
call fcn.18000bd8c
cmp qword [0x1801901a8], rsi
je 0x18013f441
lea r9, [0x180190058]
cmp dword [0x180191258], esi
lea rax, [0x1801912b0]
cmovne r9, rax
mov r8d, dword [r9]
mov eax, 0x10624dd3
mul dword [0x1801901a8]
shr edx, 6
and edx, r13d
mov cl, dl
ror r8d, cl
mov dword [r9], r8d
mov byte [0x180196538], r12b
mov dword [rbp - 0x68], 0x6d
mov eax, 0x3e
mov word [rbp - 0x64], ax
mov word [rbp - 0x62], bx
mov eax, 0x29
mov word [rbp - 0x60], ax
mov word [rbp - 0x5e], bx
mov word [rbp - 0x5c], di
mov eax, 0x18
mov word [rbp - 0x5a], ax
lea r14d, [rax - 0xe]
mov word [rbp - 0x58], r14w
lea eax, [r14 + 0x33]
mov word [rbp - 0x56], ax
mov word [rbp - 0x54], r13w
lea ecx, [rax - 0x39]
mov word [rbp - 0x52], cx
lea eax, [rcx + 0x17]
mov word [rbp - 0x50], ax
mov word [rbp - 0x4e], cx
mov word [rbp - 0x4c], r12w
mov word [rbp - 0x4a], bx
mov word [rbp - 0x48], r14w
mov word [rbp - 0x46], bx
xor eax, eax
mov word [rbp - 0x44], ax
movzx eax, word [rbp - 0x64]
mov rdx, rsi
movzx eax, word [rbp + rdx*2 - 0x64]
mov ecx, dword [rbp - 0x68]
xor cx, ax
mov word [rbp + rdx*2 - 0x64], cx
add rdx, r12
cmp rdx, 0x10
jb 0x18013f4bd
mov word [rbp - 0x44], si
xor r8d, r8d
mov edx, r12d
lea rcx, [rbp - 0x64]
call fcn.1800d99c0
nop
xor edx, edx
lea r8d, [rdx + 0x22]
lea rcx, [rbp - 0x64]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rdx, [0x1801911f0]
lea rcx, [rbp + 0x10]
call fcn.1800d6468
nop
lea rdi, [rbp + 0x10]
cmp qword [rbp + 0x28], rbx
cmovae rdi, qword [rbp + 0x10]
lea rdx, [0x1801911f0]
lea rcx, [rbp + 0x38]
call fcn.1800d6468
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call fcn.18013a990
nop
lea rcx, [rbp + 0x38]
call fcn.18000bd8c
mov ecx, dword [0x180191230]
mov r8, qword [0x180191200]
mov edx, dword [0x1801901a0]
cmp edx, r14d
jbe 0x18013f577
test ecx, ecx
jne 0x18013f577
test r8, r8
jne 0x18013f577
cmp byte [0x18019018a], sil
je 0x18013f615
lea rax, [0x180164d98]
mov r11d, 8
cmp rdx, qword [rax]
jne 0x18013f592
test r8, r8
je 0x18013f615
add rax, r11
lea r10, [0x180164da8]
cmp rax, r10
jne 0x18013f584
cmp byte [0x180196531], sil
je 0x18013f5b6
cmp edx, r12d
ja 0x18013f5b6
mov byte [0x180190186], sil
cmp byte [0x180190188], sil
je 0x18013f5e9
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x10], xmm0
mov qword [rbp], rsi
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x31]
call fcn.1800a92d4
nop
lea rcx, [rbp - 0x10]
call fcn.180015704
mov ecx, dword [0x180191230]
cmp byte [0x180190186], sil
je 0x18013f606
test ecx, ecx
jne 0x18013f606
cmp byte [0x18019018e], sil
jne 0x18013f606
call fcn.18013da78
jmp 0x18013f60f
xor edx, edx
xor ecx, ecx
call fcn.18013d818
movzx esi, al
xor esi, r12d
lea rcx, [rbp + 0x10]
call fcn.18000bd8c
mov eax, esi
jmp 0x18013f2b9