Function at 0x180008f70
Capabilities:
Encode data using xor

Disassembly:
cmp sil, al
je 0x180008f7d
cmp al, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 2]
mov r9b, byte [rsp + 0xc99]
cmp sil, r9b
je 0x180008f99
cmp r9b, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 3]
mov r9b, byte [rsp + 0xc9a]
cmp sil, r9b
je 0x180008fb5
cmp r9b, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 4]
mov r9b, byte [rsp + 0xc9b]
cmp sil, r9b
je 0x180008fd1
cmp r9b, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 5]
mov r9b, byte [rsp + 0xc9c]
cmp sil, r9b
je 0x180008fed
cmp r9b, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 6]
mov r9b, byte [rsp + 0xc9d]
cmp sil, r9b
je 0x180009009
cmp r9b, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 7]
mov r9b, byte [rsp + 0xc9e]
cmp sil, r9b
je 0x180009025
cmp r9b, 0x3f
jne 0x18000987a
mov sil, byte [r12 + rbp + 8]
mov r9b, byte [rsp + 0xc9f]
cmp sil, r9b
je 0x180009041
cmp r9b, 0x3f
jne 0x18000987a
lea r12, [r12 + rbp + 1]
test r12, r12
je 0x1800090d6
mov r10d, dword [r12]
mov r9d, r10d
shr r9d, 8
mov esi, r10d
movzx r9d, r9b
mov ebp, r10d
shr esi, 0x10
shl ebp, 0x18
shl r9d, 0x10
movzx esi, sil
add ebp, r9d
shl esi, 8
lea r9, [r12 + 8]
add ebp, esi
shr r10d, 0x18
mov r11d, dword [r9]
add ebp, r10d
cmp r11d, dword [rdi + 0xd0]
jne 0x18000909b
test r13, r13
je 0x180009760
test r13, r13
je 0x1800090c0
lea esi, [r14 + rbp]
cmp esi, ebx
ja 0x18000984c
mov rdx, r9
add r14, r13
mov r8d, ebp
mov rcx, r14
call fcn.1800076bb
mov r14d, esi
mov r8, r15
sub r8, r12
add r8, 0xfffffffffffffff8
mov ebp, r8d
add ebp, 0xfffffff8
jne 0x180008f5e
mov r15, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc80]
mov rsi, qword [rsp + 0xca0]
test r13, r13
je 0x18000972f
mov edx, dword [r15 + 8]
mov eax, dword [r15 + 4]
test dl, 3
je 0x180009108
dec edx
test dl, 3
jne 0x180009101
test edx, edx
jbe 0x1800091b5
lea ebx, [rdx + 3]
sar ebx, 1
shr ebx, 0x1e
lea edx, [rbx + rdx + 3]
sar edx, 2
movsxd r10, edx
cmp r10, 4
jl 0x180009845
lea rbx, [r13 + 0x10]
and rbx, 0xf
test ebx, ebx
je 0x180009149
test bl, 3
jne 0x180009845
neg ebx
add ebx, 0x10
shr ebx, 2
mov r9d, ebx
lea r11, [r9 + 4]
cmp r10, r11
jl 0x180009845
mov r11d, edx
sub r11d, ebx
and r11d, 3
sub edx, r11d
movsxd rdx, edx
test ebx, ebx
mov ebx, 0
jbe 0x18000917f
xor dword [r13 + rbx*4 + 0x10], eax
inc rbx
cmp rbx, r9
jb 0x180009172
movd xmm0, eax
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r13 + r9*4 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [r13 + r9*4 + 0x10], xmm1
add r9, 4
cmp r9, rdx
jb 0x180009188
cmp rdx, r10
jae 0x1800091b5
xor dword [r13 + rdx*4 + 0x10], eax
inc rdx
cmp rdx, r10
jb 0x1800091a8
test r14d, r14d
jbe 0x18000972f
mov ebx, dword [r13 + 0xc]
mov ecx, 0x40
mov rdx, rbx
mov r14d, dword [r13 + 8]
call qword [rbp + 0xe8]
mov r12, rax
mov rax, rsp
lea r9, [r13 + 0x10]
mov dword [rsp + 0xcb0], 0
mov ecx, 2
mov rdx, r12
mov r8d, ebx
mov dword [rax + 0x20], r14d
lea r14, [rsp + 0xcb0]
mov qword [rax + 0x28], r14
call qword [rbp + reloc.WLDAP32.dll_Ordinal_32]
test eax, eax
jne 0x18000972f
xor ebx, ebx
lea rcx, [r12 + 0x90]
call fcn.18000773b
test eax, eax
jne 0x18000922a
mov ebx, dword [r12 + 0x160]
mov eax, dword [r12 + 8]
add rax, r12
mov r15d, dword [rdi + 0x9c]
lea rbx, [rax + rbx + 0x3dd]
mov qword [rsp + 0xc88], rbx
cmp dword [rbx + 0xee4], 0
mov ebx, 0
jbe 0x18000945c
xor r14d, r14d
mov dword [rsp + 0xc80], ebx
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0xca0], rsi
mov rbx, qword [rsp + 0xc88]
inc r14d
movsxd r14, r14d
imul rax, r14, 0x8a
lea rsi, [rax + rbx + 0x10de]
lea r13, [rsi - 0x8a]
mov rcx, r13
call fcn.18000773b
mov ecx, 0x40
lea edx, [rax + rax + 2]
call qword [rbp + 0xe8]
mov r12, rax
mov rcx, r13
call fcn.18000773b
mov r9d, eax
test eax, eax
je 0x1800093bb
cmp eax, 6
jbe 0x180009359
mov ecx, eax
lea r11, [r12 + rcx*2]
lea rdx, [rcx + rsi - 0x8a]
sub r11, rdx
lea r10, [rcx + rcx]
cmp r11, r10
jg 0x1800092f3
neg r11
cmp r11, rcx
jle 0x180009359
xor edx, edx
mov r9d, eax
mov r11d, 1
xor r10d, r10d
shr r9d, 1
je 0x180009333
inc edx
lea r11d, [rax + r10]
movsx ecx, byte [r11 + r13]
mov word [r12 + r11*2], cx
lea r11d, [rax + r10 - 1]
movsx r8d, byte [r11 + r13]
add r10d, 0xfffffffe
mov word [r12 + r11*2], r8w
cmp edx, r9d
jb 0x180009306
lea r11d, [rdx + rdx + 1]
lea edx, [r11 - 1]
cmp edx, eax
jae 0x18000934e
neg r11d
add r11d, eax
inc r11d
movsx edx, byte [r11 + r13]
mov word [r12 + r11*2], dx
lea edx, [rax + 1]
sub eax, edx
lea r9d, [rax + 1]
jmp 0x1800093bb
xor r10d, r10d
mov r11d, eax
mov edx, 1
xor ecx, ecx
shr r11d, 1
je 0x1800093a0
inc r10d
lea edx, [rax + rcx]
movsx r9d, byte [rdx + r13]
mov word [r12 + rdx*2], r9w
lea edx, [rax + rcx - 1]
movsx r9d, byte [rdx + r13]
add ecx, 0xfffffffe
mov word [r12 + rdx*2], r9w
cmp r10d, r11d
jb 0x18000936b
lea r9d, [r10 + r10]
neg r9d
lea edx, [r10 + r10 + 1]
add r9d, eax
lea r10d, [rdx - 1]
cmp r10d, eax
jae 0x1800093bb
sub eax, edx
mov r9d, eax
lea edx, [rax + 1]
movsx r10d, byte [rdx + r13]
mov word [r12 + rdx*2], r10w
mov rcx, r12
movsx r13d, byte [r9 + r13]
mov word [r12 + r9*2], r13w
call fcn.18000777b
mov r9d, eax
xor r10d, r10d
test r9d, r9d
jbe 0x18000942d
mov r11d, r9d
mov r13d, 1
mov edx, dword [rdi + 0xe0]
xor eax, eax
shr r11d, 1
je 0x180009414
imul r10d, edx
movzx r13d, word [r12 + rax*4]
add r10d, r13d
imul r10d, edx
movzx r13d, word [r12 + rax*4 + 2]
inc rax
add r10d, r13d
cmp rax, r11
jb 0x1800093ee
lea r13d, [rax + rax + 1]
lea r11d, [r13 - 1]
cmp r11d, r9d
jae 0x18000942d
imul edx, r10d
movsxd r13, r13d
movzx r10d, word [r12 + r13*2 - 2]
add r10d, edx
cmp r10d, r15d
je 0x18000980d
cmp r14d, dword [rbx + 0xee4]
jb 0x18000927f
mov ebx, dword [rsp + 0xc80]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0xca0]
mov qword [rsp + 0xc80], 0
mov ecx, 0x40
mov edx, 0x20a
call rsi
mov r14, rax
lea r15, [r12 + 0xf4]
mov rcx, r15
call fcn.18000773b
mov r10d, eax
test eax, eax
je 0x180009588
cmp eax, 6
jbe 0x180009523
lea rdx, [r14 + r10*2]
lea r9, [r10 + r12 + 0xf4]
sub rdx, r9
lea r11, [r10 + r10]
cmp rdx, r11
jg 0x1800094bb
neg rdx
cmp rdx, r10
jle 0x180009523
xor r10d, r10d
mov r11d, eax
mov edx, 1
xor r9d, r9d
shr r11d, 1
je 0x1800094fc
inc r10d
lea edx, [rax + r9]
movsx ecx, byte [rdx + r15]
lea r8d, [rax + r9 - 1]
mov word [r14 + rdx*2], cx
add r9d, 0xfffffffe
movsx edx, byte [r8 + r15]
mov word [r14 + r8*2], dx
cmp r10d, r11d
jb 0x1800094ce
lea edx, [r10 + r10 + 1]
lea r9d, [rdx - 1]
cmp r9d, eax
jae 0x180009515
neg edx
add edx, eax
inc edx
movsx r9d, byte [rdx + r15]
mov word [r14 + rdx*2], r9w
lea r9d, [rax + 1]
sub eax, r9d
inc eax
mov r10d, eax
jmp 0x180009588
xor r11d, r11d
mov edx, eax
mov r9d, 1
xor ecx, ecx
shr edx, 1
je 0x18000956b
inc r11d
lea r9d, [rax + rcx]
movsx r10d, byte [r9 + r15]
mov word [r14 + r9*2], r10w
lea r9d, [rax + rcx - 1]
movsx r10d, byte [r9 + r15]
add ecx, 0xfffffffe
mov word [r14 + r9*2], r10w
cmp r11d, edx
jb 0x180009534
lea r10d, [r11 + r11]
neg r10d
lea r9d, [r11 + r11 + 1]
add r10d, eax
lea r11d, [r9 - 1]
cmp r11d, eax
jae 0x180009588
sub eax, r9d
mov r10d, eax
lea r9d, [rax + 1]
movsx eax, byte [r9 + r15]
mov word [r14 + r9*2], ax
movsx eax, byte [r10 + r15]
xor r9d, r9d
mov word [r14 + r10*2], ax
movzx eax, word [r14]
test eax, eax
je 0x1800097fa
xor r9d, r9d
inc r9d
lea eax, [r9 + r9 - 1]
movzx r10d, word [r14 + rax*2]
lea r11d, [r9 + r9]
test r10d, r10d
je 0x1800095c7
mov eax, r11d
movzx r10d, word [r14 + rax*2]
test r10d, r10d
jne 0x1800095a4
xor r10d, r10d
inc r10d
lea r15d, [r10 + r10]
neg r15d
add r15d, eax
lea r9d, [r15 + 1]
movzx r11d, word [r14 + r9*2]
cmp r11d, 0x5c
je 0x1800095f4
mov r9d, r15d
movzx r11d, word [r14 + r9*2]
cmp r11d, 0x5c
jne 0x1800095ca
mov qword [rsp + 0x40], r9
mov ecx, 0x40
mov edx, 0x20a
call qword [rbp + 0xe8]
mov r9, qword [rsp + 0x40]
mov r15, rax
lea r14, [r14 + r9*2]
lea rcx, [r14 + 2]
mov qword [rsp + 0x40], rcx
call fcn.18000777b
test eax, eax
jbe 0x180009675
cmp eax, 0x30
jbe 0x1800097a5
mov r11, qword [rsp + 0x40]
lea r9d, [rax + rax]
sub r11, r15
mov r10, r11
neg r10
xor edx, edx
cmp r10, r9
mov r10d, 0
setg dl
cmp r11, r9
setg r10b
or edx, r10d
je 0x1800097a5
mov eax, eax
mov rcx, r15
add rax, rax
mov r8, rax
mov rdx, qword [rsp + 0x40]
call fcn.1800076bb
mov rcx, r15
call qword [rbp + gethostname]
mov rbp, rax
mov ecx, 0x40
movsxd rax, dword [rbp + 0x3c]
mov r14d, dword [rax + rbp + 0x2c]
add r14, rbp
mov ebp, ebx
mov rdx, rbp
call rsi
mov rsi, rax
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
call fcn.1800076bb
mov rax, qword [rsp + 0xc88]
mov rcx, r14
mov rdx, rbp
lea r9, [rsp + 0xc90]
mov qword [rax + 0xcc0], rsi
mov dword [r9], 0
mov r8d, dword [rdi + 0xe4]
call qword [rsp + 0xca8]
mov rcx, r14
mov r8d, ebx
mov rdx, qword [rsp + 0xc80]
call fcn.1800076bb
mov r8d, dword [rsp + 0xc90]
mov rcx, r14
mov rdx, rbp
lea r9, [rsp + 0xc90]
call qword [rsp + 0xca8]
mov eax, dword [rdi + 0xe4]
mov rcx, r12
mov r8, r13
lea r9, [rsp + 0x40]
mov rdx, qword [r9 + 0xc48]
mov dword [r9], eax
mov qword [r9 + 4], r14
mov dword [r9 + 0xc], ebx
call r14
mov rsi, qword [rsp + 0xc80]
mov ecx, 0x40
mov ebx, dword [r9 + 8]
add ebx, 0x10
mov qword [rsp + 0x48], r9
mov rdx, rbx
mov qword [rsp + 0x40], r9
call qword [rsi + 0xe8]
mov r9, qword [rsp + 0x40]
mov r13, rax
mov rcx, r13
mov rdx, r9
mov r8d, ebp
call fcn.1800076bb
add r14d, ebp
jmp 0x1800090c0
mov r9d, eax
xor r10d, r10d
mov r11d, 1
shr r9d, 1
je 0x1800097da
movzx r11d, word [r14 + r10*4 + 2]
mov word [r15 + r10*4], r11w
movzx r11d, word [r14 + r10*4 + 4]
mov word [r15 + r10*4 + 2], r11w
inc r10
cmp r10, r9
jb 0x1800097b6
lea r11d, [r10 + r10 + 1]
lea r9d, [r11 - 1]
cmp r9d, eax
jae 0x180009675
movsxd r11, r11d
movzx r14d, word [r14 + r11*2]
mov word [r15 + r11*2 - 2], r14w
jmp 0x180009675
cmp eax, 0x5c
mov eax, 0
jne 0x1800095c7
jmp 0x1800095f4
mov rax, rsi
mov ebx, dword [rax - 4]
mov eax, dword [rax - 8]
mov r9, qword [rsp + 0xc88]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0xca0]
xor edx, edx
jmp 0x1800091a3
mov ecx, r14d
sub ebx, r14d
add rcx, r13
mov rdx, r9
mov r8d, ebx
mov r15, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc80]
mov rsi, qword [rsp + 0xca0]
call fcn.1800076bb
jmp 0x1800090f4
inc ebp
cmp ebp, r8d
jb 0x180008f6b
jmp 0x1800090d6