Function at 0x18009bbd0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov r11, rsp
sub rsp, 0x1b8
mov qword [r11 + 0x18], rbx
mov qword [r11 - 0x10], rdi
mov qword [r11 - 0x28], r14
lea rdi, [rcx + 0xd]
mov qword [r11 - 0x30], r15
mov rbx, rdx
xor r14d, r14d
mov r15, rcx
xor ax, ax
mov r10, rdi
lea rdx, [r11 - 0x138]
nop
nop
mov byte [rdx], al
inc ax
inc rdx
cmp ax, 0x100
jl 0x18009bc10
mov qword [rsp + 0x1b0], rsi
xor r11b, r11b
lea r8, [rsp + 0x80]
xor r9b, r9b
mov esi, 0x100
nop
nop
movzx eax, r11b
inc r8
movzx ecx, byte [rax + r15]
movzx eax, byte [r8 - 1]
sub ecx, eax
movzx eax, r9b
add eax, ecx
movzx ecx, byte [r8 - 1]
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx edx, al
mov r9d, eax
movzx eax, byte [rsp + rdx + 0x80]
mov byte [r8 - 1], al
movzx eax, r11b
mov byte [rsp + rdx + 0x80], cl
inc eax
cdq
and edx, 7
lea r11d, [rdx + rax]
and r11d, 7
sub r11d, edx
dec rsi
jne 0x18009bc40
lea rax, [r15 + 8]
mov esi, 4
mov qword [rsp + 0x1d8], rbp
mov qword [rsp + 0x1a0], r12
xor r11b, r11b
mov qword [rsp + 0x68], rax
mov r9, rax
xor bpl, bpl
mov qword [rsp + 0x78], rsi
mov r12, rsi
nop
nop
movzx eax, r11b
inc r9
inc eax
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx r8d, al
mov r11d, eax
movzx eax, bpl
movzx ecx, byte [rsp + r8 + 0x80]
add eax, ecx
movzx ecx, byte [rsp + r8 + 0x80]
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx edx, al
mov ebp, eax
movzx eax, byte [rsp + rdx + 0x80]
mov byte [rsp + r8 + 0x80], al
mov byte [rsp + rdx + 0x80], cl
movzx eax, byte [rsp + r8 + 0x80]
movzx ecx, cl
add eax, ecx
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx ecx, al
movzx eax, byte [rsp + rcx + 0x80]
xor byte [r9 - 1], al
dec r12
jne 0x18009bcd0
movzx r12d, word [r15 + 6]
mov qword [rsp + 0x198], r13
xor r8w, r8w
mov word [r15 + 6], r14w
lea r11, [r15 + 2]
mov ebp, 2
mov word [rsp + 0x1c0], r12w
lea r13, [0x18014bff0]
nop
nop
movzx r9d, byte [r11 - 2]
mov cl, r8b
shr r8w, 4
mov al, r9b
and ecx, 0xf
shr r9, 4
movzx edx, word [r13 + rcx*4]
and eax, 0xf
xor dx, word [r13 + rax*4]
xor dx, r8w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r8d, word [r13 + rax*4]
xor r8w, word [r13 + r9*4]
movzx r9d, byte [r11 - 1]
xor r8w, dx
mov al, r9b
shr r9, 4
and eax, 0xf
mov cl, r8b
shr r8w, 4
and ecx, 0xf
movzx edx, word [r13 + rcx*4]
xor dx, word [r13 + rax*4]
xor dx, r8w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r8d, word [r13 + rax*4]
xor r8w, word [r13 + r9*4]
movzx r9d, byte [r11]
xor r8w, dx
mov al, r9b
shr r9, 4
and eax, 0xf
mov cl, r8b
shr r8w, 4
and ecx, 0xf
movzx edx, word [r13 + rcx*4]
xor dx, word [r13 + rax*4]
xor dx, r8w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r8d, word [r13 + rax*4]
xor r8w, word [r13 + r9*4]
movzx r9d, byte [r11 + 1]
xor r8w, dx
mov al, r9b
shr r9, 4
mov cl, r8b
and eax, 0xf
shr r8w, 4
and ecx, 0xf
movzx edx, word [r13 + rcx*4]
xor dx, word [r13 + rax*4]
xor dx, r8w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r8d, word [r13 + rax*4]
xor r8w, word [r13 + r9*4]
movzx r9d, byte [r11 + 2]
xor r8w, dx
mov al, r9b
shr r9, 4
mov cl, r8b
and eax, 0xf
shr r8w, 4
and ecx, 0xf
movzx edx, word [r13 + rcx*4]
xor dx, word [r13 + rax*4]
xor dx, r8w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r8d, word [r13 + rax*4]
xor r8w, word [r13 + r9*4]
movzx r9d, byte [r11 + 3]
xor r8w, dx
mov cl, r8b
shr r8w, 4
mov al, r9b
and eax, 0xf
and ecx, 0xf
shr r9, 4
movzx edx, word [r13 + rcx*4]
add r11, 6
xor dx, word [r13 + rax*4]
xor dx, r8w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r8d, word [r13 + rax*4]
xor r8w, word [r13 + r9*4]
xor r8w, dx
dec rbp
jne 0x18009bd90
cmp r12w, r8w
jne 0x18009c081
movzx eax, word [r15 + 8]
lea r12, [r15 + 0xc]
xor r13b, r13b
lea ecx, [rax - 0xc]
xor r11w, r11w
mov qword [rsp + 0x70], r12
test ecx, ecx
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x30], ecx
jle 0x18009c00f
mov ebx, ecx
nop
nop
nop
nop
movzx eax, bpl
movsx r8, r11w
inc r11w
inc eax
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx r9d, al
mov ebp, eax
movzx eax, r13b
movzx ecx, byte [rsp + r9 + 0x80]
add eax, ecx
movzx ecx, byte [rsp + r9 + 0x80]
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx edx, al
mov r13d, eax
movzx eax, byte [rsp + rdx + 0x80]
mov byte [rsp + r9 + 0x80], al
mov byte [rsp + rdx + 0x80], cl
movzx eax, byte [rsp + r9 + 0x80]
movzx ecx, cl
add eax, ecx
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx ecx, al
movzx eax, byte [rsp + rcx + 0x80]
xor byte [r8 + r12], al
movsx eax, r11w
cmp eax, ebx
jl 0x18009bf70
mov rbx, qword [rsp + 0x1c8]
mov eax, dword [rsp + 0x60]
xor r9w, r9w
add eax, 0xfffffff4
mov r11, r12
je 0x18009c07a
mov ebp, eax
lea r13, [0x18014bff0]
nop
nop
nop
movzx r8d, byte [r11]
mov cl, r9b
shr r9w, 4
mov al, r8b
and ecx, 0xf
shr r8, 4
movzx edx, word [r13 + rcx*4]
and eax, 0xf
inc r11
xor dx, word [r13 + rax*4]
xor dx, r9w
mov al, dl
shr dx, 4
and eax, 0xf
movzx r9d, word [r13 + rax*4]
xor r9w, word [r13 + r8*4]
xor r9w, dx
dec rbp
jne 0x18009c030
cmp word [r15 + 0xa], r9w
je 0x18009c088
xor eax, eax
jmp 0x18009c5f5
xor eax, eax
xor r8w, r8w
cmp byte [r12], al
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
jbe 0x18009c12a
movzx r9d, byte [r12]
mov bp, ax
nop
nop
movzx ecx, byte [r10]
test ecx, ecx
je 0x18009c0fa
dec ecx
je 0x18009c0d2
dec ecx
jne 0x18009c123
add r8w, 0x29
mov word [rsp + 0x54], 0x29
add r10, 0x2a
jmp 0x18009c123
movzx eax, word [r10 + 1]
add r8w, 0x203
mov word [rsp + 0x52], 0x203
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 2
cdqe
add r10, rax
jmp 0x18009c123
movzx eax, word [r10 + 1]
add eax, 7
cdq
and edx, 7
lea ebp, [rdx + rax]
sar ebp, 3
add bp, 2
movzx eax, bp
add r8w, bp
mov word [rsp + 0x50], bp
inc eax
cdqe
add r10, rax
dec r9
jne 0x18009c0b0
jmp 0x18009c12f
mov bp, word [rsp + 0x50]
add r8w, 0x40
movzx r13d, r8w
mov ecx, r13d
call fcn.18008b050
test r13d, r13d
mov qword [rbx], rax
je 0x18009c160
xor ecx, ecx
mov rdx, r13
nop
mov rax, qword [rbx]
inc rcx
dec rdx
mov byte [rcx + rax - 1], r14b
jne 0x18009c150
xor r10d, r10d
xor r9d, r9d
lea r11, [rsp + 0x50]
xor r13d, r13d
nop
cmp word [r11], r14w
je 0x18009c1a9
test r10d, r10d
mov rcx, qword [rbx]
lea rax, [rcx + 0x40]
mov qword [r9 + rcx], rax
je 0x18009c1b0
lea rdx, [rsp + 0x50]
mov r8, r13
nop
mov rax, qword [rbx]
add rdx, 2
mov rcx, qword [r9 + rax]
movzx eax, word [rdx - 2]
add qword [rcx], rax
dec r8
jne 0x18009c190
jmp 0x18009c1b0
mov rax, qword [rbx]
mov qword [r9 + rax], r14
inc r10d
inc r13
add r11, 2
add r9, 8
cmp r10d, 8
jb 0x18009c170
xor r13d, r13d
cmp byte [r12], r13b
jbe 0x18009c408
movzx ecx, byte [rdi]
test ecx, ecx
je 0x18009c3ba
dec ecx
je 0x18009c327
dec ecx
jne 0x18009c3f7
call fcn.1800cb8c0
xor r11d, r11d
lea r8, [rdi + 4]
nop
nop
mov eax, esi
mov ecx, reloc.WSOCK32.dll_send
add r8, 5
sub ecx, r11d
shr ecx, 2
sub eax, ecx
movzx ecx, byte [r8 - 6]
mov edx, eax
mov eax, dword [rsp + rax*4 + 0x38]
shl eax, 8
or ecx, eax
mov eax, esi
mov dword [rsp + rdx*4 + 0x38], ecx
mov ecx, reloc.WSOCK32.dll_select
sub ecx, r11d
shr ecx, 2
sub eax, ecx
mov edx, eax
mov ecx, dword [rsp + rax*4 + 0x38]
movzx eax, byte [r8 - 5]
shl ecx, 8
or ecx, eax
mov eax, esi
mov dword [rsp + rdx*4 + 0x38], ecx
mov ecx, reloc.WSOCK32.dll_recvfrom
sub ecx, r11d
shr ecx, 2
sub eax, ecx
movzx ecx, byte [r8 - 4]
mov edx, eax
mov eax, dword [rsp + rax*4 + 0x38]
shl eax, 8
or ecx, eax
mov eax, esi
mov dword [rsp + rdx*4 + 0x38], ecx
mov ecx, select
sub ecx, r11d
shr ecx, 2
sub eax, ecx
movzx ecx, byte [r8 - 3]
mov edx, eax
mov eax, dword [rsp + rax*4 + 0x38]
shl eax, 8
or ecx, eax
mov eax, esi
mov dword [rsp + rdx*4 + 0x38], ecx
mov ecx, select
sub ecx, r11d
add r11d, 5
shr ecx, 2
sub eax, ecx
movzx ecx, byte [r8 - 2]
mov edx, eax
mov eax, dword [rsp + rax*4 + 0x38]
shl eax, 8
or ecx, eax
cmp r11d, 0x14
mov dword [rsp + rdx*4 + 0x38], ecx
jb 0x18009c200
mov eax, dword [rsp + 0x38]
bt eax, 0x1e
jae 0x18009c2fe
btr eax, 0x1e
lea rdx, [0x18014c030]
mov r9w, 1
mov dword [rsp + 0x38], eax
mov rax, qword [rbx]
movzx r8d, si
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x38]
call fcn.1800ca370
jmp 0x18009c3f7
mov rax, qword [rbx]
lea rdx, [0x18014c030]
xor r9d, r9d
mov rcx, qword [rax + 0x10]
movzx r8d, si
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x38]
call fcn.1800ca370
jmp 0x18009c3f7
mov rax, qword [rbx]
xor r8d, r8d
mov rcx, qword [rax + 8]
movzx eax, word [rdi + 1]
mov word [rcx], ax
movzx eax, word [rdi + 1]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
je 0x18009c381
lea r9, [rdi + 3]
nop
mov rax, qword [rbx]
lea edx, [r8 + 0xc0]
inc r8d
mov rcx, qword [rax + 8]
movzx eax, byte [r9]
inc r9
mov byte [rdx + rcx + 2], al
movzx eax, word [rdi + 1]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp r8d, eax
jb 0x18009c350
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov byte [rcx + 0x1ff], 1
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov byte [rcx + 0x201], 1
movzx eax, word [rdi + 1]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 2
cdqe
add rdi, rax
inc r14d
jmp 0x18009c3f7
movzx r10d, bp
test r10d, r10d
je 0x18009c3ea
xor edx, edx
lea r8, [rdi + 1]
mov r9, r10
nop
mov rax, qword [rbx]
inc rdx
inc r8
dec r9
mov rcx, qword [rax]
movzx eax, byte [r8 - 1]
mov byte [rdx + rcx - 1], al
jne 0x18009c3d0
lea eax, [r10 + 1]
movsxd rcx, eax
add rdi, rcx
inc r14d
movzx eax, byte [r12]
inc r13d
cmp r13d, eax
jb 0x18009c1d1
mov ax, word [rsp + 0x1c0]
lea rcx, [rsp + 0x80]
mov word [r15 + 6], ax
xor ax, ax
mov byte [rcx], al
inc ax
inc rcx
cmp ax, 0x100
jl 0x18009c420
xor r10b, r10b
lea r8, [rsp + 0x80]
mov esi, 0x100
xor r9b, r9b
movzx eax, r10b
inc r8
movzx ecx, byte [rax + r15]
movzx eax, byte [r8 - 1]
sub ecx, eax
movzx eax, r9b
add eax, ecx
movzx ecx, byte [r8 - 1]
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx edx, al
mov r9d, eax
movzx eax, byte [rsp + rdx + 0x80]
mov byte [r8 - 1], al
movzx eax, r10b
mov byte [rsp + rdx + 0x80], cl
inc eax
cdq
and edx, 7
lea r10d, [rdx + rax]
and r10d, 7
sub r10d, edx
dec rsi
jne 0x18009c441
mov rsi, qword [rsp + 0x78]
mov r12, qword [rsp + 0x68]
xor r9b, r9b
xor r10b, r10b
nop
movzx eax, r9b
inc r12
inc eax
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx r8d, al
mov r9d, eax
movzx eax, r10b
movzx ecx, byte [rsp + r8 + 0x80]
add eax, ecx
movzx ecx, byte [rsp + r8 + 0x80]
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx edx, al
mov r10d, eax
movzx eax, byte [rsp + rdx + 0x80]
mov byte [rsp + r8 + 0x80], al
mov byte [rsp + rdx + 0x80], cl
movzx eax, byte [rsp + r8 + 0x80]
movzx ecx, cl
add eax, ecx
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx ecx, al
movzx eax, byte [rsp + rcx + 0x80]
xor byte [r12 - 1], al
dec rsi
jne 0x18009c4b0
mov edi, dword [rsp + 0x30]
mov r12, qword [rsp + 0x70]
xor r11b, r11b
xor bl, bl
xor r10w, r10w
test edi, edi
jle 0x18009c5f2
nop
nop
nop
movzx ecx, bl
movzx eax, r11b
movsx r8, r10w
inc eax
inc r10w
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx r9d, al
mov r11d, eax
movzx eax, byte [rsp + r9 + 0x80]
add eax, ecx
movzx ecx, byte [rsp + r9 + 0x80]
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx edx, al
mov ebx, eax
movzx eax, byte [rsp + rdx + 0x80]
mov byte [rsp + r9 + 0x80], al
mov byte [rsp + rdx + 0x80], cl
movzx eax, byte [rsp + r9 + 0x80]
movzx ecx, cl
add eax, ecx
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movzx ecx, al
movzx edx, byte [rsp + rcx + 0x80]
movsx ecx, r10w
xor byte [r8 + r12], dl
cmp ecx, edi
jl 0x18009c560
mov eax, r14d
mov r15, qword [rsp + 0x188]
mov r14, qword [rsp + 0x190]
mov r13, qword [rsp + 0x198]
mov r12, qword [rsp + 0x1a0]
mov rdi, qword [rsp + 0x1a8]
mov rsi, qword [rsp + 0x1b0]
mov rbp, qword [rsp + 0x1d8]
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x1b8
ret