Function at 0x180020660
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rbp + 0xb8], rax
mov rdi, rdx
mov r13, rcx
mov qword [rsp + 0x30], rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x90], rax
lea rcx, [rbp + 0x70]
call fcn.1800b5dc0
nop
mov rcx, qword [0x18038ba70]
test rcx, rcx
je 0x180020de1
call fcn.1800b7030
test al, al
je 0x180020de1
movdqa xmm0, xmmword [0x180317570]
movdqu xmmword [rbp + 0x98], xmm0
mov dword [rbp + 0xa8], 0x3c23300a
mov dword [rbp + 0xac], 0x777777
xor ebx, ebx
mov ecx, ebx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + 0x98]
xor byte [rbp + rcx + 0x99], al
inc rcx
cmp rcx, 0x16
jb 0x180020710
mov byte [rbp + 0xaf], bl
mov qword [rbp], rbx
mov qword [rbp + 8], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x10], bl
lea rax, [rbp + 0x99]
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop dword [rax]
inc r8
cmp byte [rax + r8], bl
jne 0x180020750
lea rdx, [rbp + 0x99]
lea rcx, [rbp - 0x10]
call fcn.1800052d0
lea rcx, [rbp - 0x10]
call fcn.180037aa0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x28], bl
mov r8, rsi
inc r8
cmp byte [rdi + r8], bl
jne 0x180020784
mov rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1800052d0
nop
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x10], xmm1
mov qword [rbp], rbx
lea rdx, [rbp + 0x28]
cmp qword [rbp + 0x40], 0x10
cmovae rdx, qword [rbp + 0x28]
mov r9, qword [rbp + 0x38]
add r9, rdx
lea r8, [rbp + 0x28]
cmp qword [rbp + 0x40], 0x10
cmovae r8, qword [rbp + 0x28]
mov rdx, rbx
lea rcx, [rbp - 0x10]
call fcn.180026b80
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rax
lea rdx, [0x18037c5c0]
lea rcx, [rsp + 0x50]
call fcn.180004860
mov r9d, 7
mov r8, rax
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x60]
call fcn.18001d380
nop
lea rdx, [rbp + 0x10]
mov rcx, rax
call fcn.18001d7e0
nop
mov rcx, qword [rbp - 0x2c]
test rcx, rcx
je 0x18002085d
mov rdx, qword [rbp - 0x1c]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002084c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180020e55
call fcn.18007b164
mov qword [rbp - 0x2c], rbx
mov qword [rbp - 0x24], rbx
mov qword [rbp - 0x1c], rbx
mov r8, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x10]
sub r8, rdx
mov rcx, qword [0x18038ba70]
call fcn.1800b6ec0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x48], xmm0
movups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x48]
call fcn.1800b5dc0
nop
lea r8, [rbp + 0x48]
mov edx, reloc.WS2_32.dll_gethostbyname
mov rcx, qword [0x18038ba70]
call fcn.1800b6ce0
lea rcx, [rbp + 0x48]
call fcn.1800b5fb0
mov rdi, rax
mov rcx, rax
call fcn.1800383a0
movzx r14d, al
mov byte [rsp + 0x30], 0x64
mov cl, 0x20
mov dl, reloc.WS2_32.dll_inet_addr
mov r8b, 0xa
mov r9b, 1
mov r10b, 0x45
xor eax, eax
xor cl, 0x64
mov byte [rsp + 0x31], cl
xor dl, 0x64
mov byte [rsp + 0x32], dl
xor r8b, 0x64
mov byte [rsp + 0x33], r8b
xor r9b, 0x64
mov byte [rsp + 0x34], r9b
xor r10b, 0x64
mov byte [rsp + 0x35], r10b
mov byte [rsp + 0x36], al
mov qword [rbp + 0xa8], rbx
mov qword [rbp + 0xb0], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x98], al
lea rax, [rsp + 0x31]
mov r8, rsi
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180020920
lea rdx, [rsp + 0x31]
lea rcx, [rbp + 0x98]
call fcn.1800052d0
lea rcx, [rbp + 0x98]
call fcn.180037aa0
test r14b, r14b
je 0x180020d15
mov edx, dword [rdi + 0x24]
mov rcx, qword [0x18038ba70]
call fcn.1800b6dd0
mov r14, rax
mov dword [0x18037c330], 1
mov dword [0x18038b6f8], ebx
movdqa xmm0, xmmword [0x180317150]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x48], 0x6d2e
xor eax, eax
mov byte [rsp + 0x4a], al
mov rcx, rbx
movzx eax, byte [rsp + 0x38]
xor byte [rsp + rcx + 0x39], al
inc rcx
cmp rcx, 0x11
jb 0x180020990
mov byte [rsp + 0x4a], 0
mov qword [rbp + 0xa8], rbx
mov qword [rbp + 0xb0], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x98], 0
lea rax, [rsp + 0x39]
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1800209d0
lea rdx, [rsp + 0x39]
lea rcx, [rbp + 0x98]
call fcn.1800052d0
lea rcx, [rbp + 0x98]
call fcn.180037aa0
mov rcx, r14
call fcn.1800b65d0
mov r15d, ebx
mov rcx, r14
call fcn.1800b66d0
mov edi, dword [rsp + 0x30]
test al, al
jne 0x180020b50
nop word [rax + rax]
mov edx, 0x258
mov rcx, r14
call fcn.1800b6610
mov rcx, r14
call fcn.1800b66e0
cmp eax, r15d
je 0x180020b40
mov rcx, r14
call fcn.1800b66e0
mov r15d, eax
mov dword [0x18038b6f8], eax
mov rcx, r14
call fcn.1800b66e0
mov r8d, eax
movdqa xmm0, xmmword [0x180316e60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x48], 1
mov rcx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsp + 0x38]
xor byte [rsp + rcx + 0x39], al
inc rcx
cmp rcx, 0x10
jb 0x180020a80
mov byte [rsp + 0x49], 0
mov eax, 0x51eb851f
mul edi
shr edx, 5
imul edx, r8d
mov eax, 0x431bde83
mul edx
shr edx, 0x12
mov eax, edx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
call fcn.1802451e8
cvttsd2si eax, xmm0
imul edx, eax, 0x3e8
lea rcx, [rsp + 0x50]
call fcn.180017330
nop
lea rcx, [rsp + 0x39]
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rcx + r8], 0
jne 0x180020ae0
lea rdx, [rsp + 0x39]
mov rcx, rax
call fcn.180005430
mov qword [rbp + 0xa8], rbx
mov qword [rbp + 0xb0], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x98], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xa8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
lea rcx, [rbp + 0x98]
call fcn.180037aa0
nop
lea rcx, [rsp + 0x50]
call fcn.180005250
mov rcx, r14
call fcn.1800b66d0
test al, al
je 0x180020a20
mov dword [0x18037c330], 2
movdqa xmm0, xmmword [0x1803170f0]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x48], 0x2a
mov rcx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsp + 0x38]
xor byte [rsp + rcx + 0x39], al
inc rcx
cmp rcx, 0x10
jb 0x180020b80
mov byte [rsp + 0x49], 0
call fcn.180222ec8
mov r8d, eax
mov eax, 0x491a20d7
imul r8d
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x701
sub r8d, ecx
add r8d, 0x100
lea r9, [rbp + 0xad]
shr edi, 0xa
add edi, r8d
nop
dec r9
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub dil, cl
add dil, 0x30
mov byte [r9], dil
mov edi, edx
test edx, edx
jne 0x180020bd0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x50], dl
lea rax, [rbp + 0xad]
cmp r9, rax
je 0x180020c2e
lea r8, [rbp + 0xad]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x50]
call fcn.1800052d0
nop
lea rax, [rsp + 0x39]
mov r8, rsi
inc r8
cmp byte [rax + r8], 0
jne 0x180020c36
lea rdx, [rsp + 0x39]
lea rcx, [rsp + 0x50]
call fcn.180005430
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
lea rcx, [rbp - 0x80]
call fcn.180037aa0
nop
lea rcx, [rsp + 0x50]
call fcn.180005250
lea rdx, [rbp + 0x48]
mov rcx, r14
call fcn.1800b6580
movdqa xmm0, xmmword [0x1803172b0]
movdqu xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x48], 0xb0b0b56
xor eax, eax
mov byte [rsp + 0x4c], al
mov rcx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rsp + 0x38]
xor byte [rsp + rcx + 0x39], al
inc rcx
cmp rcx, 0x13
jb 0x180020cc0
mov byte [rsp + 0x4c], 0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x50], 0
lea rax, [rsp + 0x39]
nop
inc rsi
cmp byte [rax + rsi], 0
jne 0x180020cf0
mov r8, rsi
lea rdx, [rsp + 0x39]
lea rcx, [rsp + 0x50]
call fcn.1800052d0
lea rcx, [rsp + 0x50]
call fcn.180037aa0
lea rdx, [rbp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.1800b5d20
mov dword [rsp + 0x78], 1
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.1800b5d20
cmp dword [rsp + 0x78], 0
setne al
mov byte [r13 + 0x28], al
lea rcx, [rsp + 0x50]
call fcn.1800b5e30
nop
lea rcx, [rbp + 0x48]
call fcn.1800b5e30
nop
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x180020d9f
mov rdx, qword [rbp + 0x20]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180020d8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180020e5b
call fcn.18007b164
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rbx
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x180020dd6
mov rdx, qword [rbp]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180020dd0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180020e4f
call fcn.18007b164
nop
lea rcx, [rbp + 0x28]
call fcn.180005250
jmp 0x180020e18
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.1800b5d20
xor ebx, ebx
mov dword [rsp + 0x78], ebx
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.1800b5d20
cmp dword [rsp + 0x78], ebx
setne al
mov byte [r13 + 0x28], al
lea rcx, [rsp + 0x50]
call fcn.1800b5e30
nop
lea rcx, [rbp + 0x70]
call fcn.1800b5e30
mov rax, r13
mov rcx, qword [rbp + 0xb8]
xor rcx, rsp
call fcn.18007b140
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
call fcn.18021e9c0
nop
call fcn.18021e9c0
nop
call fcn.18021e9c0
int3