Function at 0x14009ae70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x168
call fcn.140150d80
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x1402274c0]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov rax, qword [rsp + 0x1d8]
movsxd rdi, dword [rsp + 0x1d0]
mov qword [rbp + 0x38], rcx
lea ecx, [rdi + rdi*2]
mov rbx, rdx
mov qword [rbp + 0x30], rdx
shl ecx, 9
mov qword [rbp + 0x28], r8
xor r14d, r14d
lea rdx, [0x140206818]
add ecx, 0x40
mov r8d, 0x250
mov qword [rbp + 0x18], r9
mov qword [rbp + 0x68], rax
mov r15d, r14d
mov r12d, r14d
call fcn.14004e700
mov qword [rbp + 0x60], rax
test rax, rax
je 0x14009b671
imul ecx, edi, 0x21
lea rdx, [0x140206838]
mov r8d, 0x252
call fcn.14004e700
mov rsi, rax
mov qword [rbp + 8], rax
test rax, rax
je 0x14009b66e
lea ecx, [rdi*8]
lea rdx, [0x140206858]
mov r8d, 0x253
call fcn.14004e700
mov r13, rax
mov qword [rbp + 0x10], rax
test rax, rax
je 0x14009b666
mov rcx, qword [rbp + 0x60]
mov qword [rbp + 0x48], r14
mov r12, rdi
mov rax, rcx
mov qword [rbp + 0x50], rdi
and eax, 0x3f
sub rcx, rax
mov eax, r14d
add rcx, 0x40
mov dword [rbp], eax
mov qword [rbp + 0x20], rcx
test edi, edi
jle 0x14009b36b
mov rdi, qword [rbp + 0x28]
mov r12, qword [rbp + 0x18]
mov rbx, r13
sub rdi, r13
sub r12, r13
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x28], rdi
nop dword [rax]
cdqe
lea r13, [rax + rax*2]
shl r13, 9
add r13, rcx
mov rcx, qword [rdi + rbx]
call fcn.1400767c0
cmp eax, 0x100
jg 0x14009afc7
mov rdi, qword [rdi + rbx]
cmp dword [rdi + 0x10], 0
je 0x14009b006
mov r12, qword [rbp + 0x68]
mov rcx, r12
call fcn.140084640
mov rdi, rax
test rax, rax
je 0x14009b2ef
mov rax, qword [rbp + 0x28]
mov r8, qword [rbp + 0x38]
mov r9, r12
mov rdx, qword [rax + rbx]
add r8, 0x10
mov rcx, rdi
call fcn.14008d6d0
test eax, eax
je 0x14009b348
mov r12, qword [rbp + 0x18]
mov qword [rbx], rdi
mov eax, dword [rdi + 8]
mov r9d, r14d
shl eax, 3
mov r8, r14
test eax, eax
jle 0x14009b0a6
lea rdi, [rsi + r15]
mov eax, r9d
add r9d, 8
add r8, 8
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rdx, eax
mov rax, qword [rbx]
mov rcx, qword [rax]
mov rcx, qword [rcx + rdx*8]
mov byte [rdi + r8 - 8], cl
mov rax, rcx
shr rax, 8
mov byte [rdi + r8 - 7], al
mov rax, rcx
shr rcx, 0x18
shr rax, 0x10
mov byte [rdi + r8 - 5], cl
shr rcx, 8
mov byte [rdi + r8 - 6], al
mov byte [rdi + r8 - 4], cl
mov rax, rcx
shr rax, 8
mov byte [rdi + r8 - 3], al
mov rax, rcx
shr rcx, 0x18
mov byte [rdi + r8 - 1], cl
shr rax, 0x10
mov byte [rdi + r8 - 2], al
mov rax, qword [rbx]
mov ecx, dword [rax + 8]
shl ecx, 3
cmp r9d, ecx
jl 0x14009b021
cmp r8, 0x21
jge 0x14009b0b9
lea rdi, [r15 + r8]
mov ecx, reloc.WLDAP32.dll_Ordinal_33
add rdi, rsi
sub rcx, r8
xor eax, eax
rep stosb byte [rdi], al
mov rdx, qword [r12 + rbx]
cmp dword [rdx + 0x10], 4
jg 0x14009b2cd
xor eax, eax
mov rcx, r13
mov qword [r13], rax
mov qword [r13 + 8], rax
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rax
movsxd r8, dword [rdx + 0x10]
mov rdx, qword [rdx + 8]
shl r8, 3
call fcn.140152980
mov rdx, qword [r12 + rbx]
lea rcx, [r13 + 0x20]
cmp dword [rdx + 0x28], 4
jg 0x14009b2cd
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
movsxd r8, dword [rdx + 0x28]
mov rdx, qword [rdx + 0x20]
shl r8, 3
call fcn.140152980
mov rdx, qword [r12 + rbx]
lea rcx, [r13 + 0x40]
cmp dword [rdx + 0x40], 4
jg 0x14009b2cd
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
movsxd r8, dword [rdx + 0x40]
mov rdx, qword [rdx + 0x38]
shl r8, 3
call fcn.140152980
lea rcx, [r13 + 0x60]
mov rdx, r13
call fcn.140047420
lea rdx, [r13 + 0x60]
lea rcx, [r13 + 0xc0]
mov r8, r13
call fcn.140047740
lea rdx, [r13 + 0x60]
lea rcx, [r13 + 0x120]
call fcn.140047420
lea rdx, [r13 + 0xc0]
lea rcx, [r13 + 0x1e0]
call fcn.140047420
lea rdx, [r13 + 0x120]
lea rcx, [r13 + 0x2a0]
call fcn.140047420
lea rdx, [r13 + 0x1e0]
lea rcx, [r13 + 0x420]
call fcn.140047420
lea rdx, [r13 + 0x120]
lea rcx, [r13 + 0x180]
mov r8, r13
call fcn.140047740
lea rdx, [r13 + 0x1e0]
lea rcx, [r13 + 0x240]
mov r8, r13
call fcn.140047740
lea rcx, [r13 + 0x300]
lea rdx, [r13 + 0x2a0]
mov r8, r13
call fcn.140047740
lea rcx, [r13 + 0x480]
lea rdx, [r13 + 0x420]
mov r8, r13
call fcn.140047740
lea rdx, [r13 + 0x240]
lea rcx, [r13 + 0x4e0]
call fcn.140047420
lea rdx, [r13 + 0x180]
lea rcx, [r13 + 0x360]
call fcn.140047420
lea rdx, [r13 + 0x4e0]
lea rcx, [r13 + 0x540]
mov r8, r13
call fcn.140047740
lea rcx, [r13 + 0x3c0]
lea rdx, [r13 + 0x360]
mov r8, r13
call fcn.140047740
lea rcx, [r13 + 0x5a0]
lea rdx, [r13 + 0x540]
mov r8, r13
call fcn.140047740
mov rcx, qword [rbp + 0x48]
mov eax, dword [rbp]
mov r15, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x58]
mov r12, qword [rbp + 0x50]
inc rcx
inc eax
add r15, 0x21
add rbx, 8
xor r14d, r14d
mov dword [rbp], eax
mov qword [rbp + 0x48], rcx
mov qword [rbp + 0x40], r15
mov qword [rbp + 0x58], rbx
cmp rcx, r12
jge 0x14009b367
mov rsi, qword [rbp + 8]
mov rcx, qword [rbp + 0x20]
mov r12, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x28]
jmp 0x14009afa0
mov edx, 0xf2
mov dword [rsp + 0x20], 0x285
lea r9, [0x1402068b8]
lea r8d, [rdx - 0x60]
mov ecx, reloc.WS2_32.dll_recv
call fcn.14004cd30
mov r15, qword [rbp + 8]
mov r12, qword [rbp + 0x10]
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x14009b308
mov rcx, rax
call fcn.14004e660
test r15, r15
je 0x14009b315
mov rcx, r15
call fcn.14004e660
test r12, r12
je 0x14009b322
mov rcx, r12
call fcn.14004e660
mov eax, r14d
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.140150a60
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, reloc.WS2_32.dll_recv
mov dword [rsp + 0x20], 0x264
lea r9, [0x140206898]
lea r8d, [rcx - 0xd]
mov edx, 0xf2
jmp 0x14009b2ea
mov rbx, qword [rbp + 0x30]
mov r15, qword [rbp + 8]
mov eax, 0x3f
mov esi, 0xff
movzx edx, byte [r15 + 0x1f]
mov dword [rbp], esi
shr edx, 6
and edx, 0x3f
sub eax, edx
mov ecx, edx
shr ecx, 5
dec ecx
not ecx
and eax, ecx
not ecx
and ecx, edx
mov rdx, qword [rbp + 0x20]
or eax, ecx
mov rcx, rbx
mov r8d, eax
and eax, 1
shr r8d, 1
add r8d, eax
btr r8d, 0x1f
call fcn.140046d40
nop word [rax + rax]
cmp esi, 0xff
mov r15d, r14d
sete r15b
movsxd rdx, r15d
cmp rdx, r12
jge 0x14009b514
mov r14, qword [rbp + 8]
lea ecx, [rsi - 1]
imul rsi, rdx, 0x21
mov r13d, ecx
shr ecx, 3
lea eax, [rcx + 1]
and r13d, 7
mov qword [rbp + 0x38], rcx
mov qword [rbp + 0x30], rax
sub r12, rdx
nop dword [rax]
add rax, rsi
movzx edx, byte [rax + r14]
lea rax, [rcx + rsi]
movzx ecx, byte [rax + r14]
shl edx, 8
or edx, ecx
mov ecx, r13d
shr edx, cl
mov ecx, 0x3f
and edx, 0x3f
sub ecx, edx
mov edi, edx
shr edi, 5
dec edi
not edi
and ecx, edi
mov eax, edi
and edi, 1
not eax
and eax, edx
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x80]
lea edi, [rdi + rax*2]
movsxd rax, r15d
lea rdx, [rax + rax*2]
mov r8d, edi
shl rdx, 9
shr r8d, 1
add rdx, qword [rbp + 0x20]
call fcn.140046d40
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.1400461c0
mov eax, edi
lea r8, [rbp + 0x80]
movdqu xmm0, xmmword [rbp + 0xa0]
movdqu xmm1, xmmword [rbp + 0xe0]
movdqu xmm2, xmmword [rbp + 0xf0]
and eax, 1
mov rdx, rbx
mov rcx, rbx
neg rax
movq xmm4, rax
not rax
punpcklqdq xmm4, xmm4
movq xmm3, rax
punpcklqdq xmm3, xmm3
pand xmm1, xmm4
pand xmm2, xmm4
pand xmm0, xmm3
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + 0xb0]
movdqu xmmword [rbp + 0xa0], xmm1
pand xmm0, xmm3
pxor xmm2, xmm0
movdqu xmmword [rbp + 0xb0], xmm2
call fcn.140047740
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x38]
inc r15d
add rsi, 0x21
dec r12
jne 0x14009b400
mov esi, dword [rbp]
mov r12, qword [rbp + 0x50]
xor r14d, r14d
add esi, 0xfffffffb
mov rdx, rbx
mov rcx, rbx
mov dword [rbp], esi
call fcn.140047420
mov rdx, rbx
mov rcx, rbx
call fcn.140047420
mov rdx, rbx
mov rcx, rbx
call fcn.140047420
mov rdx, rbx
mov rcx, rbx
call fcn.140047420
mov rdx, rbx
mov rcx, rbx
call fcn.140047420
cmp esi, 5
jae 0x14009b3c0
mov r15, qword [rbp + 8]
test r12, r12
jle 0x14009b65b
mov r13, qword [rbp + 0x20]
mov rsi, r15
nop
movzx edx, byte [rsi]
mov ecx, 0x3f
and edx, 0x1f
add edx, edx
sub ecx, edx
mov edi, edx
shr edi, 5
dec edi
not edi
and ecx, edi
mov eax, edi
and edi, 1
not eax
and eax, edx
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x80]
lea edi, [rdi + rax*2]
movsxd rax, r14d
lea rdx, [rax + rax*2]
mov r8d, edi
shl rdx, 9
shr r8d, 1
add rdx, r13
call fcn.140046d40
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.1400461c0
mov eax, edi
lea r8, [rbp + 0x80]
movdqu xmm0, xmmword [rbp + 0xa0]
movdqu xmm1, xmmword [rbp + 0xe0]
movdqu xmm2, xmmword [rbp + 0xf0]
and eax, 1
mov rdx, rbx
mov rcx, rbx
neg rax
movq xmm4, rax
not rax
punpcklqdq xmm4, xmm4
movq xmm3, rax
punpcklqdq xmm3, xmm3
pand xmm1, xmm4
pand xmm2, xmm4
pand xmm0, xmm3
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + 0xb0]
movdqu xmmword [rbp + 0xa0], xmm1
pand xmm0, xmm3
pxor xmm2, xmm0
movdqu xmmword [rbp + 0xb0], xmm2
call fcn.140047740
inc r14d
lea rsi, [rsi + 0x21]
dec r12
jne 0x14009b570
mov r14d, 1
jmp 0x14009b2f3
mov r15, rsi
mov r12, rax
jmp 0x14009b671
mov r15, rax
mov ecx, reloc.WS2_32.dll_recv
lea r9, [0x140206878]
mov edx, 0xf2
lea r8d, [rcx + 0x31]
mov dword [rsp + 0x20], 0x254
call fcn.14004cd30
jmp 0x14009b2f7