Function at 0x180052860
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov ebp, r9d
mov r14, r8
mov ebx, edx
mov rdi, rcx
test rcx, rcx
je 0x180052bdf
test r8, r8
jne 0x18005289e
test r9d, r9d
jne 0x180052bdf
lea eax, [rdx - 3]
cmp eax, 5
jbe 0x1800528b2
lea eax, [rdx - 0xa]
cmp eax, 3
ja 0x180052bdf
movzx eax, byte [rcx + 0x228]
test al, al
je 0x1800528f9
mov ecx, eax
sub ecx, 4
je 0x1800528f1
sub ecx, 2
je 0x1800528e7
sub ecx, 1
je 0x1800528dd
cmp ecx, 1
jne 0x1800528f9
mov rcx, rdi
call fcn.18003ee50
jmp 0x1800528f9
mov rcx, rdi
call fcn.18003ee50
jmp 0x1800528f9
mov rcx, rdi
call fcn.18003ee50
jmp 0x1800528f9
mov rcx, rdi
call fcn.18003ee50
mov byte [rdi + 0x228], bl
mov byte [rdi + 0x229], 0
sub ebx, 4
je 0x180052960
sub ebx, 2
je 0x180052950
sub ebx, 1
je 0x180052940
cmp ebx, 1
je 0x180052930
mov esi, 0xffffff53
xor r12d, r12d
mov qword [rdi + 0x220], r12
mov eax, esi
jmp 0x180052be4
xor edx, edx
mov rcx, rdi
lea r8d, [rdx - 2]
call fcn.180050f30
jmp 0x18005296e
xor edx, edx
mov rcx, rdi
lea r8d, [rdx - 2]
call fcn.180050b70
jmp 0x18005296e
xor edx, edx
mov rcx, rdi
lea r8d, [rdx - 2]
call fcn.18004de80
jmp 0x18005296e
xor edx, edx
mov rcx, rdi
lea r8d, [rdx - 2]
call fcn.18004c2b0
xor r12d, r12d
mov esi, eax
mov qword [rdi + 0x220], r12
test eax, eax
jne 0x180052bdb
movzx ecx, byte [rdi + 0x228]
lea rbx, [rdi + 0xe0]
lea r13, [rdi + 0x160]
sub ecx, 4
je 0x180052a78
sub ecx, 2
je 0x180052a3b
sub ecx, 1
je 0x1800529fb
cmp ecx, 1
jne 0x180052bdf
mov r15d, pe_nt_image_headers64
cmp ebp, r15d
jbe 0x180052a83
mov r8d, ebp
mov rdx, r14
mov rcx, rdi
call fcn.180051350
mov esi, eax
test eax, eax
jne 0x180052bdb
mov rdx, rbx
mov rcx, rdi
call fcn.180051370
mov esi, eax
test eax, eax
jne 0x180052bdb
lea ebp, [rax + 0x40]
jmp 0x180052acf
mov r15d, pe_nt_image_headers64
cmp ebp, r15d
jbe 0x180052a83
mov r8d, ebp
mov rdx, r14
mov rcx, rdi
call fcn.180051350
mov esi, eax
test eax, eax
jne 0x180052bdb
mov rdx, rbx
mov rcx, rdi
call fcn.180050fd0
mov esi, eax
test eax, eax
jne 0x180052bdb
lea ebp, [rax + 0x30]
jmp 0x180052acf
mov r15d, 0x40
cmp ebp, r15d
jbe 0x180052a83
mov r8d, ebp
mov rdx, r14
mov rcx, rdi
call fcn.18004e250
mov esi, eax
test eax, eax
jne 0x180052bdb
mov rdx, rbx
mov rcx, rdi
call fcn.18004ded0
mov esi, eax
test eax, eax
jne 0x180052bdb
lea ebp, [rax + 0x20]
jmp 0x180052acf
mov r15d, 0x40
cmp ebp, r15d
ja 0x180052a9d
test r14, r14
je 0x180052a96
mov r8, rbp
mov rdx, r14
mov rcx, rbx
call fcn.1800a2a90
cmp ebp, r15d
jae 0x180052ae1
jmp 0x180052acf
mov r8d, ebp
mov rdx, r14
mov rcx, rdi
call fcn.18004c9a0
mov esi, eax
test eax, eax
jne 0x180052bdb
mov rdx, rbx
mov rcx, rdi
call fcn.18004c2f0
mov esi, eax
test eax, eax
jne 0x180052bdb
mov ebp, reloc.WS2_32.dll_sendto
mov r8d, r15d
mov ecx, ebp
sub r8d, ebp
add rcx, rbx
xor edx, edx
call fcn.1800a3140
lea eax, [r15 - 1]
lea rdx, [rax + rbx]
add rax, r13
cmp rbx, rax
ja 0x180052b2d
cmp rdx, r13
jb 0x180052b2d
cmp r12d, r15d
jae 0x180052bdb
mov ecx, r15d
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
xor al, 0x5c
mov byte [rbx + 0x7f], al
xor byte [rbx - 1], 0x36
sub rcx, 1
jne 0x180052b10
mov eax, esi
jmp 0x180052be4
movdqa xmm2, xmmword [0x1800c5200]
mov edx, 0x20
movdqa xmm3, xmmword [str.6666666666666666_]
nop dword [rax]
nop word [rax + rax]
mov eax, r12d
add r12d, 0x40
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
pxor xmm1, xmm3
movdqu xmmword [rax + rbx], xmm1
pxor xmm0, xmm2
movdqu xmmword [rax + r13], xmm0
lea eax, [rdx - 0x10]
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
pxor xmm1, xmm3
movdqu xmmword [rax + rbx], xmm1
pxor xmm0, xmm2
movdqu xmmword [rax + r13], xmm0
mov eax, edx
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
pxor xmm1, xmm3
movdqu xmmword [rax + rbx], xmm1
pxor xmm0, xmm2
movdqu xmmword [rax + r13], xmm0
lea eax, [rdx + 0x10]
add edx, 0x40
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
pxor xmm1, xmm3
pxor xmm0, xmm2
movdqu xmmword [rax + r13], xmm0
movdqu xmmword [rax + rbx], xmm1
cmp r12d, r15d
jb 0x180052b50
mov eax, esi
jmp 0x180052be4
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret