Function at 0x1400d8940
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rdi
push r12
push r13
push r15
sub rsp, 0x80
mov r15, qword [rsp + 0xd0]
xor ebp, ebp
mov rdi, r9
mov rax, r15
mov r13, rdx
mov r12, rbp
shl rax, 4
add rax, 6
cmp rax, 0x1555555
ja 0x1400d932b
mov qword [rsp + 0xb8], rbx
lea rbx, [r15 + r15*2]
shl rbx, 9
lea rcx, [rbx + 0x220]
call fcn.1401e3610
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400d9311
mov rcx, r15
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], r14
imul rcx, rcx, 0x21
call fcn.1401e3610
mov rsi, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400d92e3
lea rcx, [r15*8]
call fcn.1401e3610
mov rcx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1400d92e0
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rbp
mov rax, rdx
mov r12, rdx
and eax, 0x3f
sub r12, rax
add r12, 0x40
mov qword [rsp + 0x58], r12
lea r14, [rbx + r12]
test r15, r15
je 0x1400d8f79
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x40], rbp
sub rax, rcx
sub rdi, rcx
mov r15, rcx
mov qword [rsp + 0xc8], rdi
lea r12, [rsi + 1]
mov qword [rsp + 0xc0], rax
nop dword [rax]
mov rbx, qword [rax + r15]
test byte [rbx + 0x14], 4
mov eax, dword [rbx + 8]
lea r11d, [rax - 1]
je 0x1400d8a6b
mov rcx, rbx
call fcn.1400d68a0
jmp 0x1400d8a85
test eax, eax
je 0x1400d8a8c
mov rcx, qword [rbx]
movsxd rax, r11d
mov rcx, qword [rcx + rax*8]
call fcn.1400d67c0
shl r11d, 6
add eax, r11d
cmp eax, 0x100
jg 0x1400d8a9a
cmp dword [rbx + 0x10], 0
jne 0x1400d8a9a
mov qword [r15], rbx
jmp 0x1400d8b4d
mov rcx, qword [rsp + 0xd8]
call fcn.1400d7d70
mov rbx, rax
test rax, rax
je 0x1400d92d9
mov rax, qword [rsp + 0xb0]
mov rdi, qword [rax + 8]
movsxd rax, dword [rdi + 8]
test eax, eax
je 0x1400d92bd
mov rcx, rax
mov rax, qword [rdi]
cmp qword [rax + rcx*8 - 8], 0
je 0x1400d92cb
mov rax, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xc0]
mov r9, rdi
mov r8, qword [r8 + r15]
mov rdx, rbx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.1400ddd00
test eax, eax
je 0x1400d92c4
mov rcx, rbx
call fcn.1400d7360
cmp dword [rbx + 0x10], 0
je 0x1400d8b42
cmp dword [rdi + 0x10], 0
lea rcx, [fcn.1400d8120]
lea rax, [fcn.1400d8020]
cmovne rax, rcx
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
call rax
test eax, eax
je 0x1400d92d2
mov rdi, qword [rsp + 0xc8]
mov qword [r15], rbx
mov r11, qword [r15]
mov r8d, ebp
mov r9, rbp
mov eax, dword [r11 + 8]
shl eax, 3
test eax, eax
jle 0x1400d8bf6
mov rax, qword [r15]
mov r11, qword [r11]
mov r10d, dword [rax + 8]
shl r10d, 3
nop word [rax + rax]
mov eax, r8d
add r8d, 8
add r9, 8
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rcx, eax
mov rdx, qword [r11 + rcx*8]
mov rax, rdx
mov byte [r12 + r9 - 9], dl
shr rax, 8
mov byte [r12 + r9 - 8], al
mov rax, rdx
shr rdx, 0x18
shr rax, 0x10
mov byte [r12 + r9 - 6], dl
shr rdx, 8
mov byte [r12 + r9 - 7], al
mov rax, rdx
mov byte [r12 + r9 - 5], dl
shr rax, 8
mov byte [r12 + r9 - 4], al
mov rax, rdx
shr rdx, 0x18
shr rax, 0x10
cmp r8d, r10d
mov byte [r12 + r9 - 2], dl
mov byte [r12 + r9 - 3], al
jl 0x1400d8b80
cmp r9, 0x21
jge 0x1400d8c11
mov rcx, qword [rsp + 0x40]
mov r8d, 0x21
xor edx, edx
add rcx, r9
sub r8, r9
add rcx, rsi
call fcn.1401e42d0
mov rax, qword [rdi + r15]
mov rcx, qword [rax]
cmp dword [rcx + 8], 4
jg 0x1400d92b6
xor eax, eax
mov qword [r14], rax
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], rax
mov rdx, qword [rcx]
test rdx, rdx
je 0x1400d8c4b
movsxd r8, dword [rcx + 8]
mov rcx, r14
shl r8, 3
call fcn.1401e3ed0
mov rax, qword [rdi + r15]
lea rcx, [r14 + 0x20]
mov r8, qword [rax + 8]
cmp dword [r8 + 8], 4
jg 0x1400d92af
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov rdx, qword [r8]
test rdx, rdx
je 0x1400d8c88
movsxd r8, dword [r8 + 8]
shl r8, 3
call fcn.1401e3ed0
mov rax, qword [rdi + r15]
lea rcx, [r14 + 0x40]
mov r8, qword [rax + 0x10]
cmp dword [r8 + 8], 4
jg 0x1400d92a8
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov rdx, qword [r8]
test rdx, rdx
je 0x1400d8cc5
movsxd r8, dword [r8 + 8]
shl r8, 3
call fcn.1401e3ed0
mov rbx, qword [rsp + 0x30]
mov r8d, 1
mov rdx, r14
mov rcx, rbx
call fcn.140228e00
lea rcx, [r14 + 0x60]
mov rdx, r14
call fcn.1402295a0
lea rdx, [r14 + 0x60]
mov r8d, 2
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x60]
lea rcx, [r14 + 0xc0]
mov r8, r14
call fcn.1402298e0
lea rdx, [r14 + 0xc0]
mov r8d, 3
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x60]
lea rcx, [r14 + 0x60]
call fcn.1402295a0
lea rdx, [r14 + 0x60]
mov r8d, 4
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0xc0]
lea rcx, [r14 + 0xc0]
call fcn.1402295a0
lea rdx, [r14 + 0xc0]
mov r8d, 6
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x60]
lea rcx, [r14 + 0x120]
mov r8, r14
call fcn.1402298e0
lea rdx, [r14 + 0x120]
mov r8d, 5
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0xc0]
lea rcx, [r14 + 0x180]
mov r8, r14
call fcn.1402298e0
lea rdx, [r14 + 0x180]
mov r8d, 7
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x60]
lea rcx, [r14 + 0x60]
call fcn.1402295a0
lea rdx, [r14 + 0x60]
mov r8d, 8
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0xc0]
lea rcx, [r14 + 0xc0]
call fcn.1402295a0
lea rdx, [r14 + 0xc0]
mov r8d, reloc.WS2_32.dll_inet_ntoa
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x120]
lea rcx, [r14 + 0x120]
call fcn.1402295a0
lea rdx, [r14 + 0x120]
mov r8d, 0xa
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x180]
lea rcx, [r14 + 0x180]
call fcn.1402295a0
lea rdx, [r14 + 0x180]
mov r8d, reloc.WS2_32.dll_ntohl
mov rcx, rbx
call fcn.140228e00
mov r8, r14
lea rdx, [r14 + 0xc0]
lea rcx, [r14 + 0xc0]
call fcn.1402298e0
lea rdx, [r14 + 0xc0]
mov r8d, reloc.WS2_32.dll_listen
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x120]
lea rcx, [r14 + 0x120]
mov r8, r14
call fcn.1402298e0
lea rdx, [r14 + 0x120]
mov r8d, reloc.WS2_32.dll_inet_addr
mov rcx, rbx
mov rdi, rbx
call fcn.140228e00
lea rdx, [r14 + 0x180]
lea rcx, [r14 + 0x180]
mov r8, r14
call fcn.1402298e0
lea rdx, [r14 + 0x180]
mov r8d, reloc.WS2_32.dll_ntohs
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x60]
lea rcx, [r14 + 0xc0]
mov r8, r14
call fcn.1402298e0
lea rdx, [r14 + 0xc0]
mov r8d, 9
mov rcx, rbx
call fcn.140228e00
lea rdx, [r14 + 0x60]
lea rcx, [r14 + 0x60]
call fcn.1402295a0
lea rdx, [r14 + 0x60]
mov r8d, reloc.WS2_32.dll_recv
mov rcx, rbx
call fcn.140228e00
mov rdx, qword [rsp + 0x50]
add qword [rsp + 0x40], 0x21
mov rsi, qword [rsp + 0x48]
mov rax, qword [rsp + 0xc0]
add rdi, 0x600
inc rdx
add r12, 0x21
add r15, 8
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0xc8]
mov ebp, 0
mov qword [rsp + 0x50], rdx
cmp rdx, qword [rsp + 0xd0]
jb 0x1400d8a50
mov r15, qword [rsp + 0xd0]
mov r12, qword [rsp + 0x58]
movzx edx, byte [rsi + 0x1f]
mov eax, 0x3f
mov ebx, 0xff
shr edx, 6
mov dword [rsp + 0x40], ebx
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, r12
or eax, ecx
mov rcx, r14
mov r8d, eax
and eax, 1
shr r8d, 1
add r8d, eax
btr r8d, 0x1f
call fcn.140228e60
mov rcx, r13
mov rdx, r14
mov r8d, 0x60
call fcn.1401e3ed0
cmp ebx, 0xff
mov rdx, rbp
sete dl
cmp rdx, r15
jae 0x1400d913d
lea r8d, [rbx - 1]
lea r12, [rdx + rdx*2]
mov rbp, rdx
mov ecx, r8d
shl r12, 9
and r8d, 7
imul rbp, rbp, 0x21
add r12, qword [rsp + 0x58]
shr ecx, 3
mov dword [rsp + 0x30], r8d
lea eax, [rcx + 1]
mov r9d, ecx
sub r15, rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x68], r9
mov rcx, qword [rsp + 0x48]
add rax, rbp
movzx edx, byte [rax + rcx]
lea rax, [r9 + rbp]
movzx ecx, byte [rax + rcx]
shl edx, 8
or edx, ecx
mov ecx, r8d
shr edx, cl
mov ecx, 0x3f
and edx, 0x3f
sub ecx, edx
mov r8d, edx
shr r8d, 5
dec r8d
not r8d
and ecx, r8d
mov eax, r8d
and r8d, 1
not eax
and eax, edx
mov rdx, r12
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
mov rcx, r14
lea ebx, [r8 + rax*2]
mov r8d, ebx
shr r8d, 1
call fcn.140228e60
lea rdx, [r14 + 0x20]
lea rcx, [r14 + 0x80]
call fcn.1402274c0
mov r11d, ebx
mov r8, r14
and r11d, 1
neg r11
mov rdx, r11
mov rax, r11
and rax, qword [r14 + 0x80]
not rdx
mov rcx, rdx
and rcx, qword [r14 + 0x20]
xor rcx, rax
mov qword [r14 + 0x20], rcx
mov rax, qword [r14 + 0x88]
mov rcx, qword [r14 + 0x28]
and rcx, rdx
and rax, r11
xor rcx, rax
mov rax, r11
mov qword [r14 + 0x28], rcx
and rax, qword [r14 + 0x90]
mov rcx, rdx
and rcx, qword [r14 + 0x30]
and rdx, qword [r14 + 0x38]
xor rcx, rax
mov qword [r14 + 0x30], rcx
and r11, qword [r14 + 0x98]
mov rcx, r13
xor rdx, r11
mov qword [r14 + 0x38], rdx
mov rdx, r13
call fcn.1402298e0
mov r8d, dword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x68]
add rbp, 0x21
add r12, 0x600
sub r15, 1
jne 0x1400d9020
mov ebx, dword [rsp + 0x40]
mov r15, qword [rsp + 0xd0]
xor ebp, ebp
add ebx, 0xfffffffb
mov rdx, r13
mov rcx, r13
mov dword [rsp + 0x40], ebx
call fcn.1402295a0
mov rdx, r13
mov rcx, r13
call fcn.1402295a0
mov rdx, r13
mov rcx, r13
call fcn.1402295a0
mov rdx, r13
mov rcx, r13
call fcn.1402295a0
mov rdx, r13
mov rcx, r13
call fcn.1402295a0
cmp ebx, 5
jae 0x1400d8fd1
test r15, r15
je 0x1400d9297
mov rsi, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
nop word [rax + rax]
movzx edx, byte [rsi]
mov ecx, 0x3f
and edx, 0x1f
add edx, edx
sub ecx, edx
mov r8d, edx
shr r8d, 5
dec r8d
not r8d
and ecx, r8d
mov eax, r8d
and r8d, 1
not eax
and eax, edx
mov rdx, r12
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
mov rcx, r14
lea ebx, [r8 + rax*2]
mov r8d, ebx
shr r8d, 1
call fcn.140228e60
lea rdx, [r14 + 0x20]
lea rcx, [r14 + 0x80]
call fcn.1402274c0
mov rax, qword [r14 + 0x80]
mov rcx, qword [r14 + 0x20]
mov r11d, ebx
mov r8, r14
and r11d, 1
neg r11
and rax, r11
mov rdx, r11
not rdx
and rcx, rdx
xor rcx, rax
mov qword [r14 + 0x20], rcx
mov rax, qword [r14 + 0x88]
mov rcx, qword [r14 + 0x28]
and rcx, rdx
and rax, r11
xor rcx, rax
mov rax, r11
mov qword [r14 + 0x28], rcx
and rax, qword [r14 + 0x90]
mov rcx, rdx
and rcx, qword [r14 + 0x30]
and rdx, qword [r14 + 0x38]
xor rcx, rax
mov qword [r14 + 0x30], rcx
and r11, qword [r14 + 0x98]
mov rcx, r13
xor rdx, r11
mov qword [r14 + 0x38], rdx
mov rdx, r13
call fcn.1402298e0
add rsi, 0x21
add r12, 0x600
sub r15, 1
jne 0x1400d91a0
mov rsi, qword [rsp + 0x48]
mov r12, qword [rsp + 0x38]
lea ebp, [r15 + 1]
jmp 0x1400d92e3
mov rsi, qword [rsp + 0x48]
mov r12, qword [rsp + 0x38]
mov ebp, 1
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, qword [rsp + 0x38]
jmp 0x1400d92e3
mov r12, rax
mov rcx, qword [rsp + 0x60]
call fcn.1401e36c8
mov r14, qword [rsp + 0x70]
test rsi, rsi
je 0x1400d92ff
mov rcx, rsi
call fcn.1401e36c8
mov rsi, qword [rsp + 0x78]
test r12, r12
je 0x1400d9311
mov rcx, r12
call fcn.1401e36c8
mov eax, ebp
mov rbx, qword [rsp + 0xb8]
add rsp, 0x80
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret
mov eax, ebp
add rsp, 0x80
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret