Function at 0x180014b80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
cmp edx, 1
jne 0x1800155b2
lea rdi, str.09:49:41
mov rbx, rdi
nop word [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x180014bb0
sub ebx, edi
mov eax, 2
movsxd rcx, ebx
inc rcx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.180015f20
xor r14d, r14d
mov r9, rax
mov r8d, r14d
test ebx, ebx
jle 0x180014ce4
cmp ebx, 4
jb 0x180014ce4
lea ecx, [rbx - 1]
movsxd rdx, ecx
lea rcx, [rax + rdx*2]
lea rax, [rdx + rdi]
cmp r9, rax
ja 0x180014c11
cmp rcx, rdi
jae 0x180014ce4
cmp ebx, 0x20
jb 0x180014ca8
mov ecx, ebx
and ecx, 0x8000001f
jge 0x180014c2b
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, ebx
sub eax, ecx
movsxd rdx, eax
mov rcx, r14
lea rax, [r9 + 0x20]
nop dword [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, rdx
jl 0x180014c40
mov eax, ebx
and al, 0x1f
cmp al, 4
jb 0x180014ce4
mov ecx, ebx
and ecx, 0x80000003
jge 0x180014cb9
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, ebx
sub eax, ecx
movsxd rcx, r8d
movsxd rdx, eax
movd xmm0, dword [rcx + rdi]
add r8d, 4
punpcklbw xmm0, xmm0
psraw xmm0, 8
movq qword [r9 + rcx*2], xmm0
add rcx, 4
cmp rcx, rdx
jl 0x180014cc3
movsxd rcx, r8d
movsxd rdx, ebx
cmp rcx, rdx
jge 0x180014d01
nop
movsx eax, byte [rcx + rdi]
mov word [r9 + rcx*2], ax
inc rcx
cmp rcx, rdx
jl 0x180014cf0
movups xmm1, xmmword [0x180037b20]
mov ecx, r14d
movups xmm0, xmmword [0x180037b10]
mov eax, dword [0x180037b50]
mov word [r9 + rdx*2], r14w
cmp dword [0x18003b188], 2
movups xmmword [rbp - 0x40], xmm1
movups xmm1, xmmword [0x180037b40]
movups xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [0x180037b30]
movups xmmword [rbp - 0x20], xmm1
movups xmmword [rbp - 0x30], xmm0
mov dword [rbp - 0x10], eax
jl 0x180014e72
movdqa xmm5, xmmword [0x180037df0]
lea rdx, [rbp - 0x50]
movdqa xmm4, xmmword [0x180037ef0]
movaps xmmword [rsp + 0x110], xmm6
movdqa xmm6, xmmword [0x180037e00]
movaps xmmword [rsp + 0x100], xmm7
movdqa xmm7, xmmword [0x180037e30]
nop
movd xmm2, ecx
lea eax, [rcx + 4]
pshufd xmm2, xmm2, 0
lea rdx, [rdx + 0x10]
paddd xmm2, xmm5
add ecx, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rdx - 0x10]
pshufd xmm3, xmm1, 0xd8
psubw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
xorps xmm3, xmm0
movq qword [rdx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rdx - 8]
pshufd xmm3, xmm1, 0xd8
psubw xmm3, xmm2
xorps xmm3, xmm0
movq qword [rdx - 8], xmm3
cmp ecx, 0x20
jl 0x180014d80
movaps xmm7, xmmword [rsp + 0x100]
movaps xmm6, xmmword [rsp + 0x110]
cmp ecx, 0x22
jge 0x180014eb1
movsxd rax, ecx
lea r8, [rbp - 0x50]
lea r8, [r8 + rax*2]
nop dword [rax]
mov eax, 0x55555556
lea r8, [r8 + 2]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
add ax, ax
add dx, ax
movzx eax, cx
sub ax, dx
inc ecx
sub ax, 0x19
xor word [r8 - 2], ax
cmp ecx, 0x22
jl 0x180014e80
lea rdx, [rbp - 0x50]
lea rcx, str.ModuleName:__ls_n
call fcn.1800010a0
call fcn.1800158a0
mov rbx, rax
test rax, rax
je 0x180014fe1
mov rdx, rax
lea rcx, str.Process_Enviroment_Structure:__p_n
call fcn.1800010a0
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x180014fe1
mov rsi, qword [rax + 0x20]
lea r15, [rax + 0x20]
cmp rsi, r15
je 0x180014fe1
nop
mov rdx, qword [rsi + 0x40]
lea rcx, str.DllName:__ls_n
call fcn.1800010a0
mov rbx, qword [rsi + 0x40]
mov eax, r14d
mov rcx, rbx
test rbx, rbx
je 0x180014f3c
cmp word [rbx], 0
je 0x180014f3c
nop word [rax + rax]
inc eax
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x180014f30
cmp word [rbp - 0x50], 0
lea rcx, [rbp - 0x50]
mov edx, r14d
je 0x180014f5c
nop word [rax + rax]
inc edx
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x180014f50
cmp eax, edx
jl 0x180014fd5
sub eax, edx
movsxd r10, edx
mov rdi, r14
movsxd r14, eax
lea rax, [rbp - 0x50]
sub rbx, rax
xor r9d, r9d
test r10, r10
je 0x180014fb8
lea r11, [rbp - 0x50]
add r11, rbx
movzx ecx, word [rbp + r9*2 - 0x50]
movzx r8d, word [r11 + 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 0x180014fc6
inc r9
cmp r9, r10
jb 0x180014f81
mov r12, qword [rsi + 0x20]
xor r14d, r14d
mov qword [rsp + 0x58], r12
jmp 0x180014fe9
inc rdi
add rbx, 2
cmp rdi, r14
jbe 0x180014f72
xor r14d, r14d
mov rsi, qword [rsi]
cmp rsi, r15
jne 0x180014f00
mov qword [rsp + 0x58], r14
mov r12, r14
movzx ecx, r14w
mov eax, ecx
mov qword [0x18003d090], r12
shl ecx, 0x10
or ecx, eax
mov dword [rbp - 0x10], ecx
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
test r12, r12
jne 0x180015023
xor eax, eax
jmp 0x1800155b7
movsxd rsi, dword [r12 + 0x3c]
mov rbx, r14
add rsi, r12
mov qword [rsp + 0x160], r13
mov qword [rsp + 0x68], rbx
mov r13, r14
mov qword [rsp + 0x70], r14
mov edi, r14d
mov qword [rsp + 0x48], rsi
movzx r15d, word [rsi + 0x14]
mov eax, dword [rsi + 0x50]
add r15, 0x24
mov dword [rsp + 0x50], eax
mov dword [rbp + 0x78], r14d
cmp r14w, word [rsi + 6]
jae 0x1800151e7
add r15, rsi
nop dword [rax]
test dword [r15 + 0x18], 0x2000000
jne 0x1800151c8
mov edx, dword [r15]
add rdx, r12
nop dword [rax]
nop dword [rax + rax]
xor r8d, r8d
mov qword [rsp + 0x28], r14
lea r9, [rsp + 0x78]
mov qword [rbp - 0x60], 0
mov qword [rbp - 0x68], 0
mov qword [rbp - 0x70], 0
lea rcx, [r8 - 1]
mov qword [rbp - 0x78], 0
mov qword [rbp - 0x80], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x20], 0x30
call fcn.1800159a0
test eax, eax
jne 0x1800151c0
mov ecx, dword [rbp - 0x64]
mov rsi, qword [rsp + 0x78]
lea eax, [rcx - 0x20]
test eax, 0xffffff9f
jne 0x1800151a3
cmp ecx, 0x60
je 0x1800151a3
mov rdx, qword [rbp - 0x70]
lea rax, [rdx - 0x10]
test rax, rax
je 0x1800151a7
mov rcx, r14
mov edi, 2
cmp byte [rcx + rsi], 0x48
lea r14, [rcx + rsi]
jne 0x180015190
lea eax, [rdi - 1]
cmp byte [rax + rsi], 0x83
jne 0x180015190
mov eax, edi
cmp byte [rax + rsi], 0xc4
jne 0x180015190
lea eax, [rdi + 2]
cmp byte [rax + rsi], 0xc3
jne 0x180015190
lea eax, [rdi + 1]
movzx eax, byte [rax + rsi]
lea rdx, [rbp + 0x68]
lea rcx, [rsp + 0x68]
mov byte [rbp + 0x68], al
call fcn.1800155d0
mov rbx, rax
mov rdx, qword [rax + 0x10]
test rdx, rdx
jne 0x18001516f
mov edx, 8
jmp 0x180015176
cmp qword [rax], rdx
jne 0x18001517e
add edx, edx
mov rcx, rbx
call fcn.180015810
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], r14
inc qword [rbx]
mov rdx, qword [rbp - 0x70]
inc edi
lea rax, [rdx - 0x10]
lea ecx, [rdi - 2]
cmp rcx, rax
jb 0x180015120
xor r14d, r14d
jmp 0x1800151a7
mov rdx, qword [rbp - 0x70]
mov eax, dword [r15 - 4]
add rdx, rsi
mov ecx, dword [r15]
add rax, r12
add rcx, rax
cmp rdx, rcx
jb 0x180015090
mov edi, dword [rbp + 0x78]
mov rsi, qword [rsp + 0x48]
movzx eax, word [rsi + 6]
inc edi
add r15, 0x28
mov dword [rbp + 0x78], edi
cmp edi, eax
jl 0x180015070
mov r13, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
xor esi, esi
mov qword [rsp + 0x48], r14
mov qword [rbp + 0x78], r14
mov r15, r14
movsxd rdi, r13d
mov r12d, esi
test r13d, r13d
je 0x180015212
mov rcx, rdi
call fcn.180015f20
mov r14, rax
mov qword [rbp + 0x78], rax
mov r12, rdi
mov ecx, 0xe0
mov qword [rsp + 0x30], rsi
mov rdi, rsi
call fcn.180015f20
shl r13, 5
mov esi, 0x1c
add r13, rbx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x60], r13
cmp rbx, r13
je 0x180015380
lea r9, [section..data]
nop
mov ecx, dword [0x18003bca0]
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 [0x18003bca0], ecx
cmp ecx, 0xa
jae 0x180015294
add ecx, 0x15
cmp ecx, 0xa
jb 0x180015286
mov dword [0x18003bca0], 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 0x180015364
test r8b, 1
je 0x180015364
test r12, r12
jne 0x180015308
lea ecx, [r12 + 8]
call fcn.180015f20
mov r9, rax
mov r8d, edi
test r15, r15
je 0x1800152f6
mov rdx, rax
sub r14, rax
nop
movzx ecx, byte [r14 + rdx]
inc r8d
movsxd rax, r8d
mov byte [rdx], cl
lea rdx, [rdx + 1]
cmp rax, r15
jb 0x1800152e0
mov r14, r9
mov r12d, 8
lea r9, [section..data]
jmp 0x18001535a
cmp r15, r12
jne 0x18001535a
lea eax, [r12 + r12]
movsxd r13, eax
cmp r13, r12
jbe 0x180015355
mov rcx, r13
call fcn.180015f20
mov r9, rax
mov r8d, edi
test r15, r15
je 0x180015348
mov rdx, rax
sub r14, rax
movzx ecx, byte [r14 + rdx]
inc r8d
movsxd rax, r8d
mov byte [rdx], cl
lea rdx, [rdx + 1]
cmp rax, r15
jb 0x180015332
mov r14, r9
mov r12, r13
lea r9, [section..data]
mov r13, qword [rsp + 0x60]
movzx eax, byte [rbx]
mov byte [r14 + r15], al
inc r15
add rbx, 0x20
cmp rbx, r13
jne 0x180015250
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x48], r15
mov qword [rbp + 0x78], r14
nop
mov ecx, dword [0x18003bca0]
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 [0x18003bca0], ecx
cmp ecx, 0xa
jae 0x1800153be
nop
add ecx, 0x15
cmp ecx, 0xa
jb 0x1800153b0
mov dword [0x18003bca0], ecx
xor edx, edx
mov eax, ecx
div r15
mov ebx, ecx
movsxd rcx, edx
movsx rdx, byte [rcx + r14]
lea rcx, [rsp + 0x68]
mov r13, rdx
mov byte [rbp + 0x68], dl
lea rdx, [rbp + 0x68]
shr r13, 3
call fcn.1800155d0
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 0x180015406
lea edx, [rsi + 8]
jmp 0x18001540e
cmp rdi, rsi
jne 0x180015422
lea edx, [rsi + rsi]
lea rcx, [rsp + 0x30]
call fcn.180015810
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
mov qword [rax + rdi*8], rbx
inc rdi
xor eax, eax
mov qword [rsp + 0x30], rdi
mov r12d, eax
test r13, r13
je 0x1800154e9
mov r15, qword [rsp + 0x58]
mov r14d, dword [rsp + 0x50]
nop dword [rax + rax]
mov ecx, dword [0x18003bca0]
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 [0x18003bca0], ecx
cmp ecx, 0xa
jae 0x18001548e
nop
add ecx, 0x15
cmp ecx, 0xa
jb 0x180015480
mov dword [0x18003bca0], ecx
xor edx, edx
mov eax, ecx
div r14d
mov ebx, edx
add rbx, r15
test rsi, rsi
jne 0x1800154a4
lea edx, [rsi + 8]
jmp 0x1800154ac
cmp rdi, rsi
jne 0x1800154c0
lea edx, [rsi + rsi]
lea rcx, [rsp + 0x30]
call fcn.180015810
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
inc r12d
mov ecx, r12d
mov qword [rax + rdi*8], rbx
inc rdi
mov qword [rsp + 0x30], rdi
cmp rcx, r13
jb 0x180015450
mov r14, qword [rbp + 0x78]
mov r15, qword [rsp + 0x48]
cmp rdi, 0xe
jb 0x180015380
mov r13, qword [rsp + 0x160]
mov rcx, 0xffffffffffffffff
mov eax, 8
mov qword [0x18003b108], rdi
mul rdi
cmovo rax, rcx
mov rcx, rax
call fcn.180015f20
mov rcx, qword [0x18003b108]
mov rdx, rax
mov qword [0x18003b100], rax
mov rax, qword [rsp + 0x38]
lea rcx, [rcx*8]
cmp rdx, rax
jbe 0x180015576
add rax, rcx
cmp rdx, rax
jae 0x180015576
lea r8, [rcx - 1]
add r8, rdx
lea rdx, [rax - 1]
test rcx, rcx
je 0x1800155a1
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
mov byte [r8], al
lea r8, [r8 - 1]
sub rcx, 1
jne 0x180015560
jmp 0x1800155a1
test rcx, rcx
je 0x1800155a1
mov r8, qword [rsp + 0x38]
sub r8, rdx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rdx], al
lea rdx, [rdx + 1]
sub rcx, 1
jne 0x180015590
lea rdx, [0x180013410]
mov ecx, 0x13041052
call fcn.1800158b0
mov eax, 1
add rsp, 0x120
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret