Function at 0x1800068e3
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
xor r15d, r15d
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x11c]
mov qword [rsp + 0xa0], rcx
mov r14, rcx
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x2c], 0
mov eax, dword [rax + 0x84]
mov dword [rsp + 0x4c], eax
lea eax, [rdx - 8]
mov dword [rsp + 0x28], eax
lea rax, [r14 + 8]
mov ecx, dword [rsp + 0x28]
sub rax, qword [rsp + 0xa0]
lea rsi, [r14 + 1]
sub ecx, eax
je 0x180006bf3
movzx edx, byte [rsp + 0x48]
movzx r9d, byte [rsp + 0x49]
movzx r11d, byte [rsp + 0x4a]
movzx ebx, byte [rsp + 0x4b]
cmp dl, 0x3f
movzx eax, byte [rsp + 0x4c]
sete r8b
movzx edi, byte [rsp + 0x4d]
cmp r9b, 0x3f
sete r10b
movzx r13d, byte [rsp + 0x4e]
cmp r11b, 0x3f
sete bpl
movzx r12d, byte [rsp + 0x4f]
cmp bl, 0x3f
sete byte [rsp + 0x27]
cmp al, 0x3f
sete byte [rsp + 0x30]
cmp dil, 0x3f
sete byte [rsp + 0x31]
cmp r13b, 0x3f
sete byte [rsp + 0x32]
cmp r12b, 0x3f
sete byte [rsp + 0x33]
sub ecx, 1
lea rcx, [r14 + rcx + 2]
jmp 0x1800069f5
add rsi, 1
cmp rsi, rcx
je 0x180006bf3
cmp byte [rsi], dl
mov r14, rsi
je 0x180006a01
test r8b, r8b
je 0x1800069e8
cmp byte [rsi + 1], r9b
je 0x180006a0c
test r10b, r10b
je 0x1800069e8
cmp byte [rsi + 2], r11b
je 0x180006a17
test bpl, bpl
je 0x1800069e8
cmp byte [rsi + 3], bl
je 0x180006a23
cmp byte [rsp + 0x27], 0
je 0x1800069e8
cmp byte [rsi + 4], al
je 0x180006a2f
cmp byte [rsp + 0x30], 0
je 0x1800069e8
cmp byte [rsi + 5], dil
je 0x180006a3c
cmp byte [rsp + 0x31], 0
je 0x1800069e8
cmp byte [rsi + 6], r13b
je 0x180006a49
cmp byte [rsp + 0x32], 0
je 0x1800069e8
cmp byte [rsi + 7], r12b
je 0x180006a56
cmp byte [rsp + 0x33], 0
je 0x1800069e8
mov eax, dword [rsi]
lea rdi, [rsi + 8]
mov ebx, eax
mov edx, eax
shl ebx, 0x18
shr edx, 0x18
add edx, ebx
movzx ebx, ah
shr eax, 8
shl ebx, 0x10
and eax, 0xff00
add ebx, edx
add ebx, eax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x114]
cmp dword [rsi + 8], eax
je 0x180006c57
test r15, r15
je 0x180006955
mov eax, dword [rsp + 0x2c]
lea r9d, [rax + rbx]
cmp r9d, dword [rsp + 0x34]
lea rdx, [r15 + rax]
ja 0x180006de1
lea r10d, [rbx - 1]
test ebx, ebx
je 0x180006be3
lea rax, [r15 + rax + 0x10]
cmp rdi, rax
lea rax, [rsi + 0x18]
setae cl
cmp rdx, rax
setae al
or cl, al
je 0x180006dbf
cmp r10d, 0xe
jbe 0x180006dbf
mov ecx, ebx
xor eax, eax
shr ecx, 4
shl rcx, 4
nop dword [rax]
movdqu xmm0, xmmword [rsi + rax + 8]
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, rcx
jne 0x180006af3
mov r8d, ebx
mov ecx, r10d
and r8d, 0xfffffff0
mov eax, r8d
sub ecx, r8d
add rdi, rax
add rax, rdx
cmp ebx, r8d
je 0x180006be3
movzx edx, byte [rdi]
test ecx, ecx
mov byte [rax], dl
je 0x180006be3
movzx edx, byte [rdi + 1]
cmp ecx, 1
mov byte [rax + 1], dl
je 0x180006be3
movzx edx, byte [rdi + 2]
cmp ecx, 2
mov byte [rax + 2], dl
je 0x180006be3
movzx edx, byte [rdi + 3]
cmp ecx, 3
mov byte [rax + 3], dl
je 0x180006be3
movzx edx, byte [rdi + 4]
cmp ecx, 4
mov byte [rax + 4], dl
je 0x180006be3
movzx edx, byte [rdi + 5]
cmp ecx, 5
mov byte [rax + 5], dl
je 0x180006be3
movzx edx, byte [rdi + 6]
cmp ecx, 6
mov byte [rax + 6], dl
je 0x180006be3
movzx edx, byte [rdi + 7]
cmp ecx, 7
mov byte [rax + 7], dl
je 0x180006be3
movzx edx, byte [rdi + 8]
cmp ecx, 8
mov byte [rax + 8], dl
je 0x180006be3
movzx edx, byte [rdi + 9]
cmp ecx, 9
mov byte [rax + 9], dl
je 0x180006be3
movzx edx, byte [rdi + 0xa]
cmp ecx, 0xa
mov byte [rax + 0xa], dl
je 0x180006be3
movzx edx, byte [rdi + 0xb]
cmp ecx, 0xb
mov byte [rax + 0xb], dl
je 0x180006be3
movzx edx, byte [rdi + 0xc]
cmp ecx, 0xc
mov byte [rax + 0xc], dl
je 0x180006be3
movzx edx, byte [rdi + 0xd]
cmp ecx, 0xd
mov byte [rax + 0xd], dl
je 0x180006be3
movzx edx, byte [rdi + 0xe]
mov byte [rax + 0xe], dl
nop
mov dword [rsp + 0x2c], r9d
jmp 0x180006955
xor eax, eax
test r15, r15
je 0x180006c46
mov rax, qword [rsp + 0x38]
mov edx, dword [rax + 8]
mov r8d, dword [rax + 4]
test dl, 3
je 0x180006c1b
nop dword [rax + rax]
sub edx, 1
test dl, 3
jne 0x180006c13
xor ecx, ecx
xor eax, eax
test edx, edx
je 0x180006c32
xor dword [r15 + rax + 0x10], r8d
add ecx, 4
cmp edx, ecx
movsxd rax, ecx
ja 0x180006c23
mov rax, qword [rsp + 0xb0]
mov qword [rax], r15
mov eax, dword [rsp + 0x2c]
test eax, eax
setne al
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r15, r15
jne 0x180006a9a
mov eax, dword [rsi + 0x10]
mov ecx, 0x40
lea edx, [rax + 0x10]
mov rax, qword [rsp + 0xb8]
mov dword [rsp + 0x34], edx
call qword [rax + gethostname]
lea edx, [rbx - 1]
test ebx, ebx
mov r15, rax
je 0x180006db1
lea rax, [rsi + 0x18]
cmp r15, rax
lea rax, [r15 + 0x10]
setae cl
cmp rdi, rax
setae al
or cl, al
je 0x180006f3f
cmp edx, 0xe
jbe 0x180006f3f
mov ecx, ebx
xor eax, eax
shr ecx, 4
shl rcx, 4
movdqu xmm1, xmmword [rsi + rax + 8]
movups xmmword [r15 + rax], xmm1
add rax, 0x10
cmp rax, rcx
jne 0x180006cb8
mov ecx, ebx
mov eax, edx
and ecx, 0xfffffff0
mov edx, ecx
sub eax, ecx
lea r8, [rdi + rdx]
add rdx, r15
cmp ebx, ecx
je 0x180006db1
movzx ecx, byte [r8]
test eax, eax
mov byte [rdx], cl
je 0x180006db1
movzx ecx, byte [r8 + 1]
cmp eax, 1
mov byte [rdx + 1], cl
je 0x180006db1
movzx ecx, byte [r8 + 2]
cmp eax, 2
mov byte [rdx + 2], cl
je 0x180006db1
movzx ecx, byte [r8 + 3]
cmp eax, 3
mov byte [rdx + 3], cl
je 0x180006db1
movzx ecx, byte [r8 + 4]
cmp eax, 4
mov byte [rdx + 4], cl
je 0x180006db1
movzx ecx, byte [r8 + 5]
cmp eax, 5
mov byte [rdx + 5], cl
je 0x180006db1
movzx ecx, byte [r8 + 6]
cmp eax, 6
mov byte [rdx + 6], cl
je 0x180006db1
movzx ecx, byte [r8 + 7]
cmp eax, 7
mov byte [rdx + 7], cl
je 0x180006db1
movzx ecx, byte [r8 + 8]
cmp eax, 8
mov byte [rdx + 8], cl
je 0x180006db1
movzx ecx, byte [r8 + 9]
cmp eax, 9
mov byte [rdx + 9], cl
je 0x180006db1
movzx ecx, byte [r8 + 0xa]
cmp eax, 0xa
mov byte [rdx + 0xa], cl
je 0x180006db1
movzx ecx, byte [r8 + 0xb]
cmp eax, 0xb
mov byte [rdx + 0xb], cl
je 0x180006db1
movzx ecx, byte [r8 + 0xc]
cmp eax, 0xc
mov byte [rdx + 0xc], cl
je 0x180006db1
movzx ecx, byte [r8 + 0xd]
cmp eax, 0xd
mov byte [rdx + 0xd], cl
je 0x180006db1
movzx eax, byte [r8 + 0xe]
mov byte [rdx + 0xe], al
add dword [rsp + 0x2c], ebx
mov qword [rsp + 0x38], rdi
jmp 0x180006955
mov ecx, r10d
xor eax, eax
jmp 0x180006dc9
mov rax, r8
movzx r8d, byte [rsi + rax + 8]
cmp rax, rcx
mov byte [rdx + rax], r8b
lea r8, [rax + 1]
jne 0x180006dc6
jmp 0x180006be3
mov r8d, dword [rsp + 0x34]
sub r8d, dword [rsp + 0x2c]
lea r9d, [r8 - 1]
je 0x180006bfa
lea rax, [rdx + 0x10]
cmp rdi, rax
setae cl
add rsi, 0x18
cmp rdx, rsi
setae al
or cl, al
je 0x180006f5f
cmp r9d, 0xe
jbe 0x180006f5f
mov ecx, r8d
xor eax, eax
shr ecx, 4
shl rcx, 4
movdqu xmm2, xmmword [rdi + rax]
movups xmmword [rdx + rax], xmm2
add rax, 0x10
cmp rax, rcx
jne 0x180006e27
mov ecx, r8d
mov eax, r9d
and ecx, 0xfffffff0
mov r9d, ecx
sub eax, ecx
add rdi, r9
add rdx, r9
cmp r8d, ecx
je 0x180006bfa
movzx ecx, byte [rdi]
test eax, eax
mov byte [rdx], cl
je 0x180006bfa
movzx ecx, byte [rdi + 1]
cmp eax, 1
mov byte [rdx + 1], cl
je 0x180006bfa
movzx ecx, byte [rdi + 2]
cmp eax, 2
mov byte [rdx + 2], cl
je 0x180006bfa
movzx ecx, byte [rdi + 3]
cmp eax, 3
mov byte [rdx + 3], cl
je 0x180006bfa
movzx ecx, byte [rdi + 4]
cmp eax, 4
mov byte [rdx + 4], cl
je 0x180006bfa
movzx ecx, byte [rdi + 5]
cmp eax, 5
mov byte [rdx + 5], cl
je 0x180006bfa
movzx ecx, byte [rdi + 6]
cmp eax, 6
mov byte [rdx + 6], cl
je 0x180006bfa
movzx ecx, byte [rdi + 7]
cmp eax, 7
mov byte [rdx + 7], cl
je 0x180006bfa
movzx ecx, byte [rdi + 8]
cmp eax, 8
mov byte [rdx + 8], cl
je 0x180006bfa
movzx ecx, byte [rdi + 9]
cmp eax, 9
mov byte [rdx + 9], cl
je 0x180006bfa
movzx ecx, byte [rdi + 0xa]
cmp eax, 0xa
mov byte [rdx + 0xa], cl
je 0x180006bfa
movzx ecx, byte [rdi + 0xb]
cmp eax, 0xb
mov byte [rdx + 0xb], cl
je 0x180006bfa
movzx ecx, byte [rdi + 0xc]
cmp eax, 0xc
mov byte [rdx + 0xc], cl
je 0x180006bfa
movzx ecx, byte [rdi + 0xd]
cmp eax, 0xd
mov byte [rdx + 0xd], cl
je 0x180006bfa
movzx eax, byte [rdi + 0xe]
mov byte [rdx + 0xe], al
jmp 0x180006bfa
mov eax, edx
xor edx, edx
jmp 0x180006f48
mov rdx, rcx
movzx ecx, byte [rsi + rdx + 8]
cmp rdx, rax
mov byte [r15 + rdx], cl
lea rcx, [rdx + 1]
jne 0x180006f45
jmp 0x180006db1
xor eax, eax
jmp 0x180006f66
mov rax, rcx
movzx ecx, byte [rdi + rax]
cmp rax, r9
mov byte [rdx + rax], cl
lea rcx, [rax + 1]
jne 0x180006f63
jmp 0x180006bfa