Function at 0x1801cf5f0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0xc0
mov rax, qword [0x1803c1370]
xor rax, rsp
mov qword [rbp + 7], rax
cmp dword [0x1803db818], 0
mov qword [r11 + 0x18], rbx
mov qword [r11 - 0x10], rsi
mov qword [r11 - 0x18], rdi
mov qword [r11 - 0x20], r12
mov qword [r11 - 0x30], r14
movaps xmmword [r11 - 0x48], xmm6
movapd xmm6, xmm2
mov r14d, edx
mov qword [rbp - 0x39], rcx
je 0x1801cf68b
mov edx, reloc.WS2_32.dll_send
lea r8, [0x18033dc40]
mov r9d, 0xdc
lea ecx, [rdx - 0xe]
call sym.VBoxRT.dll_CRYPTO_lock
call sym.VBoxRT.dll_CRYPTO_thread_id
xor edi, edi
cmp dword [0x1803db81c], eax
mov r12d, edi
lea r8, [0x18033dc40]
sete r12b
lea edx, [rdi + 0x13]
lea ecx, [rdi + 6]
mov r9d, 0xde
mov dword [rbp - 0x49], r12d
call sym.VBoxRT.dll_CRYPTO_lock
test r12d, r12d
jne 0x1801cf6ad
jmp 0x1801cf693
xor edi, edi
mov r12d, edi
mov dword [rbp - 0x49], edi
mov edx, reloc.WS2_32.dll_select
lea r8, [0x18033dc40]
mov r9d, 0xe3
lea ecx, [rdx - 9]
call sym.VBoxRT.dll_CRYPTO_lock
movsxd rcx, dword [0x1803db800]
mov eax, dword [0x1803db808]
mov r8d, dword [0x1803db80c]
mov dword [rbp - 0x41], eax
mov rax, qword [0x1803db7e8]
mov rsi, rcx
mov qword [rbp - 0x11], rax
mov rax, qword [0x1803db7f0]
add ecx, r14d
mov qword [rbp - 9], rax
mov eax, dword [0x1803db7f8]
mov dword [rbp - 0x3d], r8d
mov dword [0x1803db800], ecx
mov dword [rbp - 1], eax
cmp ecx, 0x3ff
jl 0x1801cf728
mov eax, 0x7fdff7fd
mov dword [0x1803db7fc], 0x3ff
imul ecx
sub edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x3ff
add ecx, edx
mov dword [0x1803db800], ecx
jmp 0x1801cf740
mov eax, dword [0x1803db7fc]
cmp eax, 0x3ff
jge 0x1801cf740
cmp ecx, eax
cmovg eax, ecx
mov dword [0x1803db7fc], eax
mov eax, 0x66666667
mov ecx, r14d
imul r14d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub ecx, eax
mov eax, edi
test ecx, ecx
setg al
add eax, edx
add r8d, eax
mov dword [0x1803db80c], r8d
test r12d, r12d
jne 0x1801cf78f
lea edx, [r12 + 0x12]
lea r8, [0x18033dc40]
mov r9d, 0x103
lea ecx, [rdx - 8]
call sym.VBoxRT.dll_CRYPTO_lock
lea rcx, [rbp - 0x31]
call sym.VBoxRT.dll_EVP_MD_CTX_init
mov rbx, rsi
test r14d, r14d
jle 0x1801cf8eb
mov qword [rsp + 0xa0], r13
lea ecx, [r14 - 1]
mov eax, 0xcccccccd
mov qword [rsp + 0x90], r15
mov r13d, reloc.WS2_32.dll_sendto
mul ecx
shr edx, 4
lea r15d, [rdx + 1]
nop dword [rax]
mov r12d, r14d
cmp r14d, 0x14
cmovg r12d, r13d
call sym.VBoxRT.dll_EVP_sha1
lea rcx, [rbp - 0x31]
mov rdx, rax
xor r8d, r8d
call sym.VBoxRT.dll_EVP_DigestInit_ex
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x31]
mov r8, r13
call sym.VBoxRT.dll_EVP_DigestUpdate
lea r13d, [r12 + rsi - 0x3ff]
movsxd rdx, esi
lea rcx, [rbp - 0x31]
test r13d, r13d
jle 0x1801cf83b
mov eax, r12d
sub eax, r13d
movsxd r8, eax
lea rax, [0x1803db3d0]
add rdx, rax
call sym.VBoxRT.dll_EVP_DigestUpdate
movsxd r8, r13d
lea rdx, [0x1803db3d0]
lea rcx, [rbp - 0x31]
jmp 0x1801cf848
lea rax, [0x1803db3d0]
movsxd r8, r12d
add rdx, rax
call sym.VBoxRT.dll_EVP_DigestUpdate
mov r13, qword [rbp - 0x39]
movsxd r12, r12d
lea rcx, [rbp - 0x31]
mov r8, r12
mov rdx, r13
call sym.VBoxRT.dll_EVP_DigestUpdate
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x31]
mov r8d, 8
call sym.VBoxRT.dll_EVP_DigestUpdate
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x31]
xor r8d, r8d
call sym.VBoxRT.dll_EVP_DigestFinal_ex
inc dword [rbp - 0x3d]
add r13, r12
mov qword [rbp - 0x39], r13
mov rcx, rdi
test r12, r12
jle 0x1801cf8c4
lea rdx, [0x1803db3d0]
nop
movzx eax, byte [rbp + rcx - 0x11]
inc rbx
inc esi
xor byte [rbx + rdx - 1], al
cmp rbx, 0x3ff
jl 0x1801cf8bc
mov esi, edi
mov rbx, rdi
inc rcx
cmp rcx, r12
jl 0x1801cf8a0
sub r14d, 0x14
dec r15
mov r13d, reloc.WS2_32.dll_sendto
jne 0x1801cf7d0
mov r12d, dword [rbp - 0x49]
mov r15, qword [rsp + 0x90]
mov r13, qword [rsp + 0xa0]
lea rcx, [rbp - 0x31]
call sym.VBoxRT.dll_EVP_MD_CTX_cleanup
mov r14, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xe0]
test r12d, r12d
jne 0x1801cf92b
lea edx, [r12 + 0x12]
lea r8, [0x18033dc40]
mov r9d, 0x12e
lea ecx, [rdx - 9]
call sym.VBoxRT.dll_CRYPTO_lock
lea rcx, [0x1803db7e8]
movzx eax, byte [rbp + rdi - 0x11]
add rdi, 5
xor byte [rdi + rcx - 5], al
movzx eax, byte [rbp + rdi - 0x15]
xor byte [rdi + rcx - 4], al
movzx eax, byte [rbp + rdi - 0x14]
xor byte [rdi + rcx - 3], al
movzx eax, byte [rbp + rdi - 0x13]
xor byte [rdi + rcx - 2], al
movzx eax, byte [rbp + rdi - 0x12]
xor byte [rdi + rcx - 1], al
cmp rdi, 0x14
jl 0x1801cf932
movsd xmm0, qword [0x18033dc38]
movsd xmm1, qword [0x1803db810]
mov rdi, qword [rsp + 0xb0]
comisd xmm0, xmm1
jbe 0x1801cf993
addsd xmm1, xmm6
movsd qword [0x1803db810], xmm1
movaps xmm6, xmmword [rsp + 0x80]
test r12d, r12d
mov r12, qword [rsp + 0xa8]
jne 0x1801cf9c2
mov edx, reloc.WS2_32.dll_select
lea r8, [0x18033dc40]
mov r9d, 0x139
lea ecx, [rdx - 8]
call sym.VBoxRT.dll_CRYPTO_lock
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.180227610
add rsp, 0xc0
pop rbp
ret