Function at 0x1800e3ae0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1c0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
mov rax, qword [0x1802407e8]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov r13, rcx
xor esi, esi
mov r14d, esi
mov dword [rbp - 0x68], esi
mov r15, qword [rdx]
mov rdi, qword [rdx + 8]
mov qword [rbp - 0x70], rdi
cmp r15, rdi
je 0x1800e4582
movsd xmm9, qword [0x180216f70]
movsd xmm8, qword [0x180216ee8]
mov ebx, reloc.WS2_32.dll_ntohs
lea r12, [0x1802449f0]
mov rcx, r15
call fcn.180110530
test eax, eax
jne 0x1800e3b90
cmp r15, r12
je 0x1800e3b90
mov rdx, r12
cmp qword [reloc.WS2_32.dll_ntohs], 0x10
cmovae rdx, qword [0x1802449f0]
mov r8, qword [0x180244a00]
mov rcx, r15
call fcn.1800dc810
mov rdx, r15
lea rcx, [rbp + 0x30]
call fcn.1800d9f00
mov rdx, rax
mov r10d, esi
mov r9, rsi
cmp qword [rax + 0x10], 0
jbe 0x1800e3bdc
nop dword [rax]
mov rcx, qword [0x1802449e8]
movzx r8d, word [rcx + 0x60]
mov rax, rdx
cmp qword [rdx + 0x18], 0x10
jb 0x1800e3bc9
mov rax, qword [rdx]
xor byte [r9 + rax], r8b
inc r10d
inc r9
movsxd rax, r10d
cmp rax, qword [rdx + 0x10]
jb 0x1800e3bb0
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], rsi
movups xmm0, xmmword [rdx]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbp - 0x50], xmm1
mov qword [rdx + 0x10], rsi
mov qword [rdx + 0x18], rbx
mov byte [rdx], 0
mov rcx, rdx
call fcn.1800db3e0
nop
lea rcx, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae rcx, qword [rbp - 0x60]
xor r9d, r9d
lea r8d, [r9 + 0x41]
lea rdx, [rbp - 0x78]
call fcn.1800cd980
nop
lea rcx, [rbp - 0x60]
call fcn.1800db3e0
call fcn.1800e45d0
mov rbx, rax
mov rcx, rax
call fcn.1800e72c0
mov qword [rsp + 0x30], rsi
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea r8d, [r9 - 1]
mov rdx, rbx
mov r12, qword [rbp - 0x78]
mov rcx, r12
call fcn.18008b600
test eax, eax
jne 0x1800e4566
mov rcx, qword [rbp - 0x68]
call fcn.180039cd0
cmp eax, 0x64
jne 0x1800e455d
nop dword [rax]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rsi
mov eax, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x28], rax
mov byte [rbp - 0x40], 0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], rax
mov byte [rbp - 0x20], 0
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], rax
mov byte [rbp], 0
mov qword [rbp + 0x20], 0
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1800e3d25
mov rax, rbx
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x1800e3cee
call qword [0x180241820]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x1800e3d11
mov eax, 3
cmp ax, word [rbx + 0xc0]
jae 0x1800e3d11
add rcx, 0xa8
jmp 0x1800e3d2c
mov rcx, qword [rbx]
mov dword [rcx + 0x50], 0x19
mov edx, 0x19
call fcn.18000a870
lea rcx, [0x18020ff88]
movzx eax, word [rcx + 0x14]
test al, 2
je 0x1800e3d3f
cmp byte [rcx + 0x16], 1
jne 0x1800e3d3f
mov edi, dword [rcx + 0x10]
jmp 0x1800e3d62
test al, 0x10
je 0x1800e3d51
mov edi, dword [rcx + 0x10]
bt ax, 0xa
jae 0x1800e3d62
add edi, dword [rcx]
jmp 0x1800e3d62
test al, 1
je 0x1800e3d59
mov edi, esi
jmp 0x1800e3d62
mov dl, 1
call fcn.180033730
mov edi, eax
test rbx, rbx
je 0x1800e3d95
mov edx, dword [rbx + 0x34]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x1800e3d7b
test edx, edx
jne 0x1800e3d7b
mov eax, esi
jmp 0x1800e3d80
call fcn.180007540
mov dword [rbx + 0x34], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800e3d95
call qword [0x180241830]
movsxd rsi, edi
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1800e3df1
mov rax, rbx
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x1800e3db6
call qword [0x180241820]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x1800e3ddd
mov eax, 3
cmp ax, word [rbx + 0xc0]
jae 0x1800e3ddd
add rcx, 0xa8
jne 0x1800e3df8
xor edi, edi
jmp 0x1800e3e33
mov rcx, qword [rbx]
mov dword [rcx + 0x50], 0x19
mov edx, 0x19
call fcn.18000a870
lea rcx, [0x18020ff88]
movzx edx, word [rcx + 0x14]
movzx eax, dx
mov r8d, 0x202
and ax, r8w
cmp ax, r8w
jne 0x1800e3e1b
cmp byte [rcx + 0x16], 1
jne 0x1800e3e1b
mov rdi, qword [rcx + 8]
jmp 0x1800e3e2e
test dl, 1
je 0x1800e3e24
xor edi, edi
jmp 0x1800e3e2e
mov dl, 1
call fcn.180033020
mov rdi, rax
test rbx, rbx
je 0x1800e3e61
mov edx, dword [rbx + 0x34]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x1800e3e47
test edx, edx
jne 0x1800e3e47
xor eax, eax
jmp 0x1800e3e4c
call fcn.180007540
mov dword [rbx + 0x34], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800e3e61
call qword [0x180241830]
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov r8, rsi
mov rdx, rdi
lea rcx, [rbp - 0x60]
call fcn.1800dd050
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
xor esi, esi
mov qword [rbp + 0x40], rsi
mov qword [rbp + 0x48], rsi
mov rax, qword [rbp - 0x50]
cmp rax, 3
jb 0x1800e45c5
add rax, 0xfffffffffffffffd
mov r8d, recv
cmp rax, r8
cmovb r8, rax
lea rdx, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae rdx, qword [rbp - 0x60]
add rdx, 3
lea rcx, [rbp + 0x30]
call fcn.1800dd050
or r14d, 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], rsi
mov rax, qword [rbp - 0x50]
cmp rax, 0xf
jb 0x1800e45bf
add rax, 0xfffffffffffffff1
mov r8, 0xffffffffffffffff
cmp rax, r8
cmovb r8, rax
lea rdx, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae rdx, qword [rbp - 0x60]
add rdx, 0xf
lea rcx, [rbp + 0x50]
call fcn.1800dd050
or r14d, 2
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1800e3f63
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800e3f3a
call qword [0x180241820]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x1800e3f4f
cmp si, word [rbx + 0xc0]
jb 0x1800e3f6a
mov rcx, qword [rbx]
mov dword [rcx + 0x50], 0x19
mov edx, 0x19
call fcn.18000a870
lea rcx, [0x18020ff88]
movzx edx, word [rcx + 0x14]
movzx eax, dx
mov r8d, 0x202
and ax, r8w
cmp ax, r8w
jne 0x1800e3f8d
cmp byte [rcx + 0x16], 1
jne 0x1800e3f8d
mov rax, qword [rcx + 8]
jmp 0x1800e3f9e
test dl, 1
je 0x1800e3f97
mov rax, rsi
jmp 0x1800e3f9e
mov dl, 1
call fcn.180033020
mov rdi, rax
test rbx, rbx
je 0x1800e3fda
mov edx, dword [rbx + 0x34]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x1800e3fba
test edx, edx
jne 0x1800e3fba
mov eax, esi
jmp 0x1800e3fbf
call fcn.180007540
mov dword [rbx + 0x34], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
mov rax, rdi
test rcx, rcx
je 0x1800e3fda
call qword [0x180241830]
mov rax, rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rsi
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1800e3ff3
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1800dd050
mov r9d, esi
mov r8, rsi
cmp qword [rsp + 0x50], rsi
jbe 0x1800e4051
nop word [rax + rax]
mov rax, qword [0x1802449e8]
movzx ecx, word [rax + 0x60]
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rdx, qword [rsp + 0x40]
xor byte [rdx + r8], cl
inc r9d
lea r8, [r8 + 1]
movsxd rax, r9d
cmp rax, qword [rsp + 0x50]
jb 0x1800e4020
movups xmm6, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x68], xmm6
movups xmm7, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x78], xmm7
mov qword [rsp + 0x50], rsi
mov ebx, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x58], rbx
mov byte [rsp + 0x40], 0
lea rcx, [rsp + 0x40]
call fcn.1800db3e0
movaps xmmword [rbp - 0x40], xmm6
movaps xmmword [rbp - 0x30], xmm7
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rbx
mov byte [rsp + 0x68], 0
lea rcx, [rsp + 0x68]
call fcn.1800db3e0
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1800e40f5
mov rax, rbx
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x1800e40c1
call qword [0x180241820]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x1800e40e1
mov eax, 1
cmp ax, word [rbx + 0xc0]
jae 0x1800e40e1
add rcx, 0x38
jmp 0x1800e40fc
mov rcx, qword [rbx]
mov dword [rcx + 0x50], 0x19
mov edx, 0x19
call fcn.18000a870
lea rcx, [0x18020ff88]
movzx eax, word [rcx + 0x14]
test al, 0x24
je 0x1800e4109
mov rdi, qword [rcx]
jmp 0x1800e4156
test al, 8
je 0x1800e413e
movsd xmm0, qword [rcx]
comisd xmm9, xmm0
jbe 0x1800e4124
movabs rdi, 0x8000000000000000
jmp 0x1800e4156
comisd xmm0, xmm8
jbe 0x1800e4137
movabs rdi, 0x7fffffffffffffff
jmp 0x1800e4156
cvttsd2si rdi, xmm0
jmp 0x1800e4156
test al, 0x12
je 0x1800e4153
cmp qword [rcx + 8], 0
je 0x1800e4153
call fcn.180032160
mov rdi, rax
jmp 0x1800e4156
mov rdi, rsi
test rbx, rbx
je 0x1800e4189
mov edx, dword [rbx + 0x34]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x1800e416f
test edx, edx
jne 0x1800e416f
mov eax, esi
jmp 0x1800e4174
call fcn.180007540
mov dword [rbx + 0x34], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800e4189
call qword [0x180241830]
mov dword [rbp + 0x20], edi
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1800e41de
mov rax, rbx
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x1800e41aa
call qword [0x180241820]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x1800e41ca
mov eax, 2
cmp ax, word [rbx + 0xc0]
jae 0x1800e41ca
add rcx, 0x70
jmp 0x1800e41e5
mov rcx, qword [rbx]
mov dword [rcx + 0x50], 0x19
mov edx, 0x19
call fcn.18000a870
lea rcx, [0x18020ff88]
movzx eax, word [rcx + 0x14]
test al, 0x24
je 0x1800e41f2
mov rdi, qword [rcx]
jmp 0x1800e423f
test al, 8
je 0x1800e4227
movsd xmm0, qword [rcx]
comisd xmm9, xmm0
jbe 0x1800e420d
movabs rdi, 0x8000000000000000
jmp 0x1800e423f
comisd xmm0, xmm8
jbe 0x1800e4220
movabs rdi, 0x7fffffffffffffff
jmp 0x1800e423f
cvttsd2si rdi, xmm0
jmp 0x1800e423f
test al, 0x12
je 0x1800e423c
cmp qword [rcx + 8], 0
je 0x1800e423c
call fcn.180032160
mov rdi, rax
jmp 0x1800e423f
mov rdi, rsi
test rbx, rbx
je 0x1800e4272
mov edx, dword [rbx + 0x34]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x1800e4258
test edx, edx
jne 0x1800e4258
mov eax, esi
jmp 0x1800e425d
call fcn.180007540
mov dword [rbx + 0x34], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800e4272
call qword [0x180241830]
mov dword [rbp + 0x24], edi
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1800e42cf
mov rax, rbx
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x1800e4293
call qword [0x180241820]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x1800e42bb
mov eax, 6
cmp ax, word [rbx + 0xc0]
jae 0x1800e42bb
add rcx, 0x150
jne 0x1800e42d6
mov rdi, rsi
jmp 0x1800e4312
mov rcx, qword [rbx]
mov dword [rcx + 0x50], 0x19
mov edx, 0x19
call fcn.18000a870
lea rcx, [0x18020ff88]
movzx edx, word [rcx + 0x14]
movzx eax, dx
mov r8d, 0x202
and ax, r8w
cmp ax, r8w
jne 0x1800e42f9
cmp byte [rcx + 0x16], 1
jne 0x1800e42f9
mov rdi, qword [rcx + 8]
jmp 0x1800e430d
test dl, 1
je 0x1800e4303
mov rdi, rsi
jmp 0x1800e430d
mov dl, 1
call fcn.180033020
mov rdi, rax
test rbx, rbx
je 0x1800e4340
mov edx, dword [rbx + 0x34]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x1800e4326
test edx, edx
jne 0x1800e4326
mov eax, esi
jmp 0x1800e432b
call fcn.180007540
mov dword [rbx + 0x34], eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800e4340
call qword [0x180241830]
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rsi
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x1800e4360
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.1800dd050
mov r8d, esi
mov rdx, rsi
cmp qword [rsp + 0x50], rsi
jbe 0x1800e43c0
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [0x1802449e8]
movzx ecx, word [rax + 0x60]
lea rax, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rax, qword [rsp + 0x40]
xor byte [rdx + rax], cl
inc r8d
lea rdx, [rdx + 1]
movsxd rax, r8d
cmp rax, qword [rsp + 0x50]
jb 0x1800e4390
movups xmm7, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x68], xmm7
movups xmm6, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x78], xmm6
mov qword [rsp + 0x50], rsi
mov ebx, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x58], rbx
mov byte [rsp + 0x40], 0
lea rcx, [rsp + 0x40]
call fcn.1800db3e0
movaps xmmword [rbp], xmm7
movaps xmmword [rbp + 0x10], xmm6
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rbx
mov byte [rsp + 0x68], 0
lea rcx, [rsp + 0x68]
call fcn.1800db3e0
lea rax, [rbp + 0x30]
mov qword [rsp + 0x20], rax
mov r9, r13
lea r8, [rbp + 0x50]
lea rdx, [rsp + 0x40]
call fcn.1800e20e0
mov rdx, rax
mov r10d, esi
mov r9, rsi
cmp qword [rax + 0x10], rsi
jbe 0x1800e446c
nop dword [rax + rax]
mov rcx, qword [0x1802449e8]
movzx r8d, word [rcx + 0x60]
mov rax, rdx
cmp qword [rdx + 0x18], 0x10
jb 0x1800e4459
mov rax, qword [rdx]
xor byte [rax + r9], r8b
inc r10d
inc r9
movsxd rax, r10d
cmp rax, qword [rdx + 0x10]
jb 0x1800e4440
movups xmm6, xmmword [rdx]
movups xmmword [rsp + 0x68], xmm6
movups xmm7, xmmword [rdx + 0x10]
movups xmmword [rsp + 0x78], xmm7
mov qword [rdx + 0x10], rsi
mov qword [rdx + 0x18], rbx
mov byte [rdx], 0
mov rcx, rdx
call fcn.1800db3e0
movaps xmmword [rbp - 0x20], xmm6
movaps xmmword [rbp - 0x10], xmm7
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rbx
mov byte [rsp + 0x68], 0
lea rcx, [rsp + 0x68]
call fcn.1800db3e0
mov rbx, qword [r13 + 0x78]
cmp rbx, qword [r13 + 0x80]
je 0x1800e44fd
mov qword [rsp + 0x60], rbx
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.1800d9f00
nop
lea rcx, [rbx + 0x20]
lea rdx, [rbp - 0x20]
call fcn.1800d9f00
nop
lea rcx, [rbx + 0x40]
lea rdx, [rbp]
call fcn.1800d9f00
mov eax, dword [rbp + 0x20]
mov dword [rbx + 0x60], eax
mov eax, dword [rbp + 0x24]
mov dword [rbx + 0x64], eax
add qword [r13 + 0x78], 0x68
jmp 0x1800e450e
lea r8, [rbp - 0x40]
mov rdx, rbx
lea rcx, [r13 + 0x70]
call fcn.1800ef990
nop
lea rcx, [rbp + 0x50]
call fcn.1800db3e0
nop
lea rcx, [rbp + 0x30]
call fcn.1800db3e0
nop
lea rcx, [rbp - 0x60]
call fcn.1800db3e0
nop
lea rcx, [rbp]
call fcn.1800db3e0
lea rcx, [rbp - 0x20]
call fcn.1800db3e0
lea rcx, [rbp - 0x40]
call fcn.1800db3e0
mov rcx, qword [rbp - 0x68]
call fcn.180039cd0
cmp eax, 0x64
je 0x1800e3c90
mov rdi, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x68]
call fcn.180038d00
call fcn.180110970
xor edx, edx
mov rcx, r12
call fcn.1800cadf0
add r15, 0x20
cmp r15, rdi
jne 0x1800e3b51
xor eax, eax
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.18015c7e0
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800dccb0
nop
call fcn.1800dccb0
int3