Function at 0x180016cc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x18001e140]
xor rax, rsp
mov qword [rbp + 0x10], rax
cmp edx, 1
jne 0x180017733
call qword [sym.imp.KERNEL32.dll_AllocConsole]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rax
lea rdx, [0x18001b79c]
lea rcx, str.conin_
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rax
lea rdx, [0x18001b7a8]
lea rcx, str.conout_
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rax
lea rdx, [0x18001b7a8]
lea rcx, str.conout_
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen]
lea rdi, str.20:35:50
mov rbx, rdi
inc rbx
cmp byte [rbx], 0
jne 0x180016d62
sub ebx, edi
mov eax, 2
movsxd rcx, ebx
inc rcx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.180017cc8
xor r14d, r14d
mov rdx, rax
mov r8d, r14d
test ebx, ebx
jle 0x180016e93
cmp ebx, 4
jb 0x180016e93
lea eax, [rbx - 1]
movsxd rcx, eax
lea rax, [rcx + rdi]
lea r9, [rdx + rcx*2]
cmp rdx, rax
ja 0x180016dc3
cmp r9, rdi
jae 0x180016e93
cmp ebx, 0x20
jb 0x180016e58
mov ecx, ebx
and ecx, 0x8000001f
jge 0x180016ddd
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, ebx
sub eax, ecx
movsxd r9, eax
mov rcx, r14
lea rax, [rdx + 0x20]
nop dword [rax + rax]
movq xmm0, qword [rcx + rdi]
lea rax, [rax + 0x40]
movq xmm1, qword [rcx + rdi + 8]
add r8d, 0x20
punpcklbw xmm0, xmm0
punpcklbw xmm1, xmm1
psraw xmm0, 8
movdqu xmmword [rax - 0x60], xmm0
movq xmm0, qword [rcx + rdi + 0x10]
psraw xmm1, 8
movdqu xmmword [rax - 0x50], xmm1
movq xmm1, qword [rcx + rdi + 0x18]
add rcx, 0x20
punpcklbw xmm0, xmm0
punpcklbw xmm1, xmm1
psraw xmm0, 8
psraw xmm1, 8
movdqu xmmword [rax - 0x40], xmm0
movdqu xmmword [rax - 0x30], xmm1
cmp rcx, r9
jl 0x180016df0
mov eax, ebx
and al, 0x1f
cmp al, 4
jb 0x180016e93
mov ecx, ebx
and ecx, 0x80000003
jge 0x180016e69
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, ebx
sub eax, ecx
movsxd rcx, r8d
movsxd r9, eax
movd xmm0, dword [rcx + rdi]
add r8d, 4
punpcklbw xmm0, xmm0
psraw xmm0, 8
movq qword [rdx + rcx*2], xmm0
add rcx, 4
cmp rcx, r9
jl 0x180016e73
movsxd rcx, r8d
movsxd r8, ebx
cmp rcx, r8
jge 0x180016eb0
nop
movsx eax, byte [rcx + rdi]
mov word [rdx + rcx*2], ax
inc rcx
cmp rcx, r8
jl 0x180016ea0
movups xmm1, xmmword [0x18001b840]
mov ecx, r14d
movups xmm0, xmmword [str.SIHUUOYxPRYUH]
mov eax, dword [0x18001b870]
mov word [rdx + r8*2], r14w
cmp dword [0x18001e190], 2
movups xmmword [rbp - 0x30], xmm1
movups xmm1, xmmword [0x18001b860]
movups xmmword [rbp - 0x40], xmm0
movups xmm0, xmmword [0x18001b850]
movups xmmword [rbp - 0x10], xmm1
movups xmmword [rbp - 0x20], xmm0
mov dword [rbp], eax
mov qword [0x18001ea20], rdx
jl 0x180016fe8
movdqa xmm4, xmmword [0x18001bba0]
lea rdx, [rbp - 0x38]
movdqa xmm5, xmmword [0x18001bb90]
movaps xmmword [rsp + 0x120], xmm6
movdqa xmm6, xmmword [str.________]
nop word [rax + rax]
xorps xmm0, xmm0
movd xmm1, ecx
pshufd xmm1, xmm1, 0
lea eax, [rcx + 4]
paddd xmm1, xmm4
lea rdx, [rdx + 0x10]
pcmpgtd xmm0, xmm1
movq xmm2, xmm6
andps xmm0, xmm5
add ecx, 8
paddd xmm0, xmm1
psrad xmm0, 1
paddd xmm0, xmm0
psubd xmm1, xmm0
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rdx - 0x18]
pshufd xmm3, xmm1, 0xd8
movd xmm1, eax
paddw xmm3, xmm2
pshufd xmm1, xmm1, 0
xorps xmm3, xmm0
movq qword [rdx - 0x18], xmm3
xorps xmm0, xmm0
paddd xmm1, xmm4
movq xmm2, xmm6
pcmpgtd xmm0, xmm1
andps xmm0, xmm5
paddd xmm0, xmm1
psrad xmm0, 1
paddd xmm0, xmm0
psubd xmm1, xmm0
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rdx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
xorps xmm3, xmm0
movq qword [rdx - 0x10], xmm3
cmp ecx, 0x20
jl 0x180016f30
movaps xmm6, xmmword [rsp + 0x120]
cmp ecx, 0x22
jge 0x180017015
movsxd rax, ecx
lea rdx, [rbp - 0x40]
lea rdx, [rdx + rax*2]
mov eax, ecx
and eax, 0x80000001
jge 0x180017003
dec eax
or eax, 0xfffffffe
inc eax
add ax, 0x3b
inc ecx
xor word [rdx], ax
add rdx, 2
cmp ecx, 0x22
jl 0x180016ff3
lea rdx, [rbp - 0x40]
lea rcx, str.ModuleName:__ls_n
call fcn.180001090
call fcn.180017a30
mov rbx, rax
test rax, rax
je 0x18001714c
mov rdx, rax
lea rcx, str.Process_Enviroment_Structure:__p_n
call fcn.180001090
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x18001714c
mov rsi, qword [rax + 0x20]
lea r15, [rax + 0x20]
cmp rsi, r15
je 0x18001714c
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rsi + 0x40]
lea rcx, str.DllName:__ls_n
call fcn.180001090
mov r11, qword [rsi + 0x40]
mov eax, r14d
mov rcx, r11
test r11, r11
je 0x1800170ac
cmp word [r11], 0
je 0x1800170ac
nop word [rax + rax]
inc eax
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x1800170a0
cmp word [rbp - 0x40], 0
lea rcx, [rbp - 0x40]
mov edx, r14d
je 0x1800170cc
nop word [rax + rax]
inc edx
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x1800170c0
cmp eax, edx
jl 0x180017140
sub eax, edx
movsxd r10, edx
mov rdi, r14
movsxd r14, eax
lea rax, [rbp - 0x40]
sub r11, rax
xor r9d, r9d
test r10, r10
je 0x180017128
lea rbx, [rbp - 0x40]
add rbx, r11
movzx ecx, word [rbp + r9*2 - 0x40]
movzx r8d, word [rbx + r9*2]
lea eax, [rcx - 0x41]
cmp ax, 0x19
lea edx, [rcx + 0x20]
lea eax, [r8 - 0x41]
cmova dx, cx
cmp ax, 0x19
lea ecx, [r8 + 0x20]
cmova cx, r8w
cmp cx, dx
jne 0x180017131
inc r9
cmp r9, r10
jb 0x1800170f1
mov rdx, qword [rsi + 0x20]
xor r14d, r14d
jmp 0x18001714f
inc rdi
add r11, 2
cmp rdi, r14
jbe 0x1800170e2
xor r14d, r14d
mov rsi, qword [rsi]
cmp rsi, r15
jne 0x180017070
mov rdx, r14
movzx ecx, r14w
mov eax, ecx
mov qword [0x18001ea50], rdx
shl ecx, 0x10
or ecx, eax
mov dword [rbp], ecx
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
test rdx, rdx
jne 0x180017189
xor eax, eax
jmp 0x180017738
mov qword [rsp + 0x160], r12
lea rcx, str.Base_Address:__p_n
mov qword [rsp + 0x168], r13
call fcn.180001090
mov r12, qword [0x18001ea50]
mov rbx, r14
mov qword [rsp + 0x58], r12
mov r13, r14
mov qword [rbp - 0x58], rbx
mov edi, r14d
mov qword [rbp - 0x50], r14
movsxd rsi, dword [r12 + 0x3c]
add rsi, r12
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x40], rsi
movzx r15d, word [rsi + 0x14]
mov eax, dword [rsi + 0x50]
add r15, 0x24
mov dword [rsp + 0x48], eax
cmp r14w, word [rsi + 6]
jae 0x18001736e
add r15, rsi
test dword [r15 + 0x18], 0x2000000
jne 0x180017350
mov edx, dword [r15]
add rdx, r12
nop word [rax + rax]
xor r8d, r8d
mov qword [rsp + 0x28], r14
lea r9, [rsp + 0x60]
mov qword [rbp - 0x78], 0
mov qword [rbp - 0x80], 0
mov qword [rsp + 0x78], 0
lea rcx, [r8 - 1]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x20], 0x30
call fcn.180017b30
test eax, eax
jne 0x180017347
mov ecx, dword [rbp - 0x7c]
mov rsi, qword [rsp + 0x60]
lea eax, [rcx - 0x20]
test eax, 0xffffff9f
jne 0x180017329
cmp ecx, 0x60
je 0x180017329
mov rdx, qword [rsp + 0x78]
lea rax, [rdx - 0x10]
test rax, rax
je 0x18001732e
mov rcx, r14
mov edi, 2
cmp byte [rcx + rsi], 0x48
lea r14, [rcx + rsi]
jne 0x180017316
lea eax, [rdi - 1]
cmp byte [rax + rsi], 0x83
jne 0x180017316
mov eax, edi
cmp byte [rax + rsi], 0xc4
jne 0x180017316
lea eax, [rdi + 2]
cmp byte [rax + rsi], 0xc3
jne 0x180017316
lea eax, [rdi + 1]
movzx eax, byte [rax + rsi]
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x58]
mov byte [rsp + 0x30], al
call fcn.180017760
mov rbx, rax
mov rdx, qword [rax + 0x10]
test rdx, rdx
jne 0x1800172f4
mov edx, 8
jmp 0x1800172fb
cmp qword [rax], rdx
jne 0x180017303
add edx, edx
mov rcx, rbx
call fcn.1800179a0
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], r14
inc qword [rbx]
mov rdx, qword [rsp + 0x78]
inc edi
lea rax, [rdx - 0x10]
lea ecx, [rdi - 2]
cmp rcx, rax
jb 0x1800172a4
xor r14d, r14d
jmp 0x18001732e
mov rdx, qword [rsp + 0x78]
mov eax, dword [r15 - 4]
add rdx, rsi
mov ecx, dword [r15]
add rax, r12
add rcx, rax
cmp rdx, rcx
jb 0x180017210
mov edi, dword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
movzx eax, word [rsi + 6]
inc edi
add r15, 0x28
mov dword [rsp + 0x38], edi
cmp edi, eax
jl 0x1800171f2
mov r13, qword [rbp - 0x50]
mov rbx, qword [rbp - 0x58]
xor esi, esi
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
mov r12, r14
movsxd rdi, r13d
mov r15d, esi
test r13d, r13d
je 0x18001739b
mov rcx, rdi
call fcn.180017cc8
mov r14, rax
mov qword [rsp + 0x38], rax
mov r15, rdi
mov ecx, 0xe0
mov qword [rbp - 0x70], rsi
mov rdi, rsi
call fcn.180017cc8
shl r13, 5
mov esi, 0x1c
add r13, rbx
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rsi
mov qword [rsp + 0x50], r13
cmp rbx, r13
je 0x180017510
lea r9, [section..data]
nop word [rax + rax]
mov ecx, dword [0x18001e2b0]
mov eax, 0x86186187
movsx r8, byte [rbx]
add ecx, 0x3ad
mul ecx
mov eax, ecx
shr r8, 3
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x15
sub ecx, eax
mov dword [0x18001e2b0], ecx
cmp ecx, 0xa
jae 0x180017424
add ecx, 0x15
cmp ecx, 0xa
jb 0x180017416
mov dword [0x18001e2b0], ecx
mov eax, ecx
xor edx, edx
div qword [rbx + 8]
mov rax, qword [rbx + 0x10]
movsxd rcx, edx
mov rax, qword [rax + rcx*8]
mov qword [r9 + r8*8], rax
cmp r8, 0xa
jae 0x1800174f1
test r8b, 1
je 0x1800174f1
test r15, r15
jne 0x180017497
lea ecx, [r15 + 8]
call fcn.180017cc8
mov r8, rax
mov edx, edi
test r12, r12
je 0x180017485
mov rcx, rax
sub r14, rax
nop dword [rax]
movzx eax, byte [r14 + rcx]
inc edx
mov byte [rcx], al
lea rcx, [rcx + 1]
movsxd rax, edx
cmp rax, r12
jb 0x180017470
mov r14, r8
lea r9, [section..data]
mov r15d, 8
jmp 0x1800174e7
cmp r12, r15
jne 0x1800174e7
lea eax, [r15 + r15]
movsxd r13, eax
cmp r13, r15
jbe 0x1800174e2
mov rcx, r13
call fcn.180017cc8
mov r8, rax
mov edx, edi
test r12, r12
je 0x1800174d5
mov rcx, rax
sub r14, rax
movzx eax, byte [r14 + rcx]
inc edx
mov byte [rcx], al
lea rcx, [rcx + 1]
movsxd rax, edx
cmp rax, r12
jb 0x1800174c0
mov r14, r8
lea r9, [section..data]
mov r15, r13
mov r13, qword [rsp + 0x50]
movzx eax, byte [rbx]
mov byte [r14 + r12], al
inc r12
add rbx, 0x20
cmp rbx, r13
jne 0x1800173e0
mov rdi, qword [rbp - 0x70]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r14
nop dword [rax]
mov ecx, dword [0x18001e2b0]
mov eax, 0x86186187
add ecx, 0x3ad
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x15
sub ecx, eax
mov dword [0x18001e2b0], ecx
cmp ecx, 0xa
jae 0x18001754e
nop
add ecx, 0x15
cmp ecx, 0xa
jb 0x180017540
mov dword [0x18001e2b0], ecx
mov eax, ecx
xor edx, edx
div r12
mov ebx, ecx
movsxd rax, edx
lea rdx, [rsp + 0x30]
movsx rcx, byte [rax + r14]
mov r13, rcx
mov byte [rsp + 0x30], cl
lea rcx, [rbp - 0x58]
shr r13, 3
call fcn.180017760
mov r8, rax
xor edx, edx
mov eax, ebx
div qword [r8]
mov rax, qword [r8 + 8]
movsxd rcx, edx
mov rbx, qword [rax + rcx*8]
test rsi, rsi
jne 0x180017597
lea edx, [rsi + 8]
jmp 0x18001759f
cmp rdi, rsi
jne 0x1800175b0
lea edx, [rsi + rsi]
lea rcx, [rbp - 0x70]
call fcn.1800179a0
mov rdi, qword [rbp - 0x70]
mov rsi, qword [rbp - 0x60]
mov rax, qword [rbp - 0x68]
mov qword [rax + rdi*8], rbx
inc rdi
xor eax, eax
mov qword [rbp - 0x70], rdi
mov r15d, eax
test r13, r13
je 0x180017675
mov r12, qword [rsp + 0x58]
mov r14d, dword [rsp + 0x48]
nop word [rax + rax]
mov ecx, dword [0x18001e2b0]
mov eax, 0x86186187
add ecx, 0x3ad
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x15
sub ecx, eax
mov dword [0x18001e2b0], ecx
cmp ecx, 0xa
jae 0x18001761e
nop
add ecx, 0x15
cmp ecx, 0xa
jb 0x180017610
mov dword [0x18001e2b0], ecx
xor edx, edx
mov eax, ecx
div r14d
mov ebx, edx
add rbx, r12
test rsi, rsi
jne 0x180017634
lea edx, [rsi + 8]
jmp 0x18001763c
cmp rdi, rsi
jne 0x18001764d
lea edx, [rsi + rsi]
lea rcx, [rbp - 0x70]
call fcn.1800179a0
mov rdi, qword [rbp - 0x70]
mov rsi, qword [rbp - 0x60]
mov rax, qword [rbp - 0x68]
inc r15d
mov qword [rax + rdi*8], rbx
inc rdi
mov eax, r15d
mov qword [rbp - 0x70], rdi
cmp rax, r13
jb 0x1800175e0
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
cmp rdi, 0xe
jb 0x180017510
mov r13, qword [rsp + 0x168]
mov rcx, 0xffffffffffffffff
mov r12, qword [rsp + 0x160]
mov eax, 8
mul rdi
mov qword [0x18001e108], rdi
cmovo rax, rcx
mov rcx, rax
call fcn.180017cc8
mov rdx, rax
mov qword [0x18001e100], rax
mov rax, qword [0x18001e108]
lea r8, [rax*8]
mov rax, qword [rbp - 0x68]
cmp rdx, rax
jbe 0x180017705
add rax, r8
cmp rdx, rax
jae 0x180017705
lea rcx, [r8 - 1]
add rcx, rdx
lea rdx, [rax - 1]
test r8, r8
je 0x180017722
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
mov byte [rcx], al
lea rcx, [rcx - 1]
sub r8, 1
jne 0x1800176f0
jmp 0x180017722
test r8, r8
je 0x180017722
mov r9, qword [rbp - 0x68]
sub r9, rdx
movzx ecx, byte [r9 + rdx]
mov byte [rdx], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x180017711
lea rdx, [0x180015bb0]
mov ecx, 0x13041052
call fcn.180017a40
mov eax, 1
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.180017b50
mov rbx, qword [rsp + 0x170]
add rsp, 0x130
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret