Function at 0x1800668d0
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using sha512

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x408
mov rax, qword [0x1800ff050]
xor rax, rsp
mov qword [rsp + 0x3f0], rax
mov rax, qword [rsp + 0x470]
mov ebx, 0x80
xor ebp, ebp
cmp edx, ebx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rax
mov r9d, edx
mov r15, rcx
mov esi, 0x40
lea r13d, [rbx + 0x50]
jle 0x1800669fb
mov rax, qword [0x1800ce8b0]
lea rcx, [rsp + 0x1f0]
mov qword [rsp + 0x1e8], rbp
mov qword [rsp + 0x1e0], rbp
mov qword [rcx], rax
mov rax, qword [0x1800ce8b8]
mov qword [rcx + 8], rax
mov rax, qword [0x1800ce8c0]
lea r8, [rsp + 0x1e0]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1800ce8c8]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1800ce8d0]
mov qword [rcx + 0x20], rax
mov rax, qword [0x1800ce8d8]
mov qword [rcx + 0x28], rax
mov rax, qword [0x1800ce8e0]
mov qword [rcx + 0x30], rax
mov rax, qword [0x1800ce8e8]
mov qword [rcx + 0x38], rax
mov rcx, r15
call fcn.180067d70
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x3b0]
mov r8d, esi
call fcn.180067e80
lea rdi, [rsp + 0x1e0]
xor eax, eax
mov rcx, r13
lea r15, [rsp + 0x3b0]
mov r9d, esi
lea rdx, [rsp + 0x1e0]
mov r8d, r13d
rep stosb byte [rdi], al
nop word [rax + rax]
mov byte [rdx], al
inc rdx
sub r8d, 1
jne 0x1800669f0
mov rax, qword [0x1800ce8b0]
mov qword [rsp + 0x118], rbp
lea rcx, [rsp + 0x120]
mov qword [rcx], rax
mov rax, qword [0x1800ce8b8]
mov rdx, rbp
mov qword [rcx + 8], rax
mov rax, qword [0x1800ce8c0]
movsxd rbp, r9d
mov qword [rcx + 0x10], rax
mov rax, qword [0x1800ce8c8]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1800ce8d0]
mov qword [rcx + 0x20], rax
mov rax, qword [0x1800ce8d8]
mov qword [rcx + 0x28], rax
mov rax, qword [0x1800ce8e0]
mov qword [rcx + 0x30], rax
mov rax, qword [0x1800ce8e8]
mov qword [rcx + 0x38], rax
test r9d, r9d
jle 0x180066a98
lea rax, [rsp + 0x2b0]
mov rdi, r15
sub rdi, rax
nop dword [rax + rax]
lea rcx, [rsp + rdx + 0x2b0]
inc rdx
movzx eax, byte [rcx + rdi]
xor al, 0x36
cmp rdx, rbp
mov byte [rcx], al
jl 0x180066a80
cmp rbp, rbx
jge 0x180066ab2
mov r8, rbx
lea rcx, [rsp + rbp + 0x2b0]
mov dl, 0x36
sub r8, rbp
call fcn.18006cf60
mov r12d, ebx
lea r14, [rsp + 0x2b0]
mov qword [rsp + 0x110], rbx
mov r13d, 0xff00ff00
nop dword [rax + rax]
lea rcx, [rsp + 0x160]
mov r8, rbx
mov rdx, r14
call fcn.18006c2d0
add r14, rbx
add r12d, 0xffffff80
mov r8d, reloc.WS2_32.dll_recv
mov ecx, dword [rsp + r8*8 + 0x158]
mov rdx, qword [rsp + r8*8 + 0x158]
dec r8
shr rdx, 0x20
mov eax, ecx
mov edi, ecx
ror edi, 8
and rdi, 0xffffffffff00ff00
rol eax, 8
and eax, 0xff00ff
or rdi, rax
mov eax, edx
shl rdi, 0x20
ror eax, 8
and rax, r13
or rdi, rax
mov eax, edx
rol eax, 8
and eax, 0xff00ff
or rdi, rax
mov qword [rsp + r8*8 + 0x160], rdi
test r8, r8
jne 0x180066af0
lea rcx, [rsp + 0x110]
call fcn.1800670a0
cmp r12d, ebx
jae 0x180066ad0
lea rcx, [rsp + 0x160]
mov r8d, r12d
mov rdx, r14
call fcn.18006c2d0
mov edx, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x110]
call fcn.180067d70
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x370]
mov r8d, esi
call fcn.180067e80
mov rax, qword [0x1800ce8b0]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x48], 0
mov qword [rcx], rax
mov rax, qword [0x1800ce8b8]
mov qword [rcx + 8], rax
mov rax, qword [0x1800ce8c0]
xor edx, edx
mov qword [rcx + 0x10], rax
mov rax, qword [0x1800ce8c8]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1800ce8d0]
mov qword [rcx + 0x20], rax
mov rax, qword [0x1800ce8d8]
mov qword [rcx + 0x28], rax
mov rax, qword [0x1800ce8e0]
mov qword [rcx + 0x30], rax
mov rax, qword [0x1800ce8e8]
mov qword [rcx + 0x38], rax
test rbp, rbp
jle 0x180066c39
lea rax, [rsp + 0x2b0]
sub r15, rax
nop word [rax + rax]
lea rcx, [rsp + rdx + 0x2b0]
inc rdx
movzx eax, byte [rcx + r15]
xor al, 0x5c
cmp rdx, rbp
mov byte [rcx], al
jl 0x180066c20
cmp rbp, rbx
jge 0x180066c53
mov r8, rbx
lea rcx, [rsp + rbp + 0x2b0]
mov dl, 0x5c
sub r8, rbp
call fcn.18006cf60
mov ebp, ebx
lea r12, [rsp + 0x2b0]
mov qword [rsp + 0x40], rbx
mov r13d, 0xff00ff00
nop dword [rax + rax]
lea rcx, [rsp + 0x90]
mov r8, rbx
mov rdx, r12
call fcn.18006c2d0
add r12, rbx
add ebp, 0xffffff80
mov r8d, reloc.WS2_32.dll_recv
nop
mov ecx, dword [rsp + r8*8 + 0x88]
mov rdx, qword [rsp + r8*8 + 0x88]
dec r8
shr rdx, 0x20
mov eax, ecx
mov edi, ecx
ror edi, 8
and rdi, 0xffffffffff00ff00
rol eax, 8
and eax, 0xff00ff
or rdi, rax
mov eax, edx
shl rdi, 0x20
ror eax, 8
and rax, r13
or rdi, rax
mov eax, edx
rol eax, 8
and eax, 0xff00ff
or rdi, rax
mov qword [rsp + r8*8 + 0x90], rdi
test r8, r8
jne 0x180066c90
lea rcx, [rsp + 0x40]
call fcn.1800670a0
cmp ebp, ebx
jae 0x180066c70
lea rcx, [rsp + 0x90]
mov r8d, ebp
mov rdx, r12
call fcn.18006c2d0
mov rax, qword [rsp + 0x40]
mov ebp, ebx
mov r15d, eax
add rax, rsi
mov r12d, esi
and r15d, 0x7f
lea r14, [rsp + 0x370]
mov r13d, 0xd0
sub ebp, r15d
mov qword [rsp + 0x40], rax
cmp rax, rsi
jae 0x180066d42
inc qword [rsp + 0x48]
cmp ebp, esi
ja 0x180066df2
mov r13d, 0xff00ff00
lea rcx, [rsp + r15 + 0x90]
mov r8d, ebp
mov rdx, r14
mov edi, ebp
call fcn.18006c2d0
sub r12d, ebp
add r14, rdi
mov ebp, ebx
mov r8d, reloc.WS2_32.dll_recv
xor r15d, r15d
nop word [rax + rax]
mov ecx, dword [rsp + r8*8 + 0x88]
mov rdx, qword [rsp + r8*8 + 0x88]
dec r8
shr rdx, 0x20
mov eax, ecx
mov edi, ecx
ror edi, 8
and rdi, 0xffffffffff00ff00
rol eax, 8
and eax, 0xff00ff
or rdi, rax
mov eax, edx
shl rdi, 0x20
ror eax, 8
and rax, r13
or rdi, rax
mov eax, edx
rol eax, 8
and eax, 0xff00ff
or rdi, rax
mov qword [rsp + r8*8 + 0x90], rdi
test r8, r8
jne 0x180066d80
lea rcx, [rsp + 0x40]
call fcn.1800670a0
cmp r12d, ebx
jae 0x180066d50
mov r13d, 0xd0
lea rcx, [rsp + r15 + 0x90]
mov r8d, r12d
mov rdx, r14
call fcn.18006c2d0
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x330]
mov r8d, esi
call fcn.180067e80
movsxd r8, esi
test esi, esi
jle 0x180066e33
mov rcx, qword [rsp + 0x28]
lea rdx, [rsp + 0x330]
call fcn.18006c2d0
lea rdi, [rsp + 0x110]
xor eax, eax
mov rcx, r13
lea rdx, [rsp + 0x110]
mov r8d, r13d
rep stosb byte [rdi], al
nop dword [rax]
mov byte [rdx], al
inc rdx
sub r8d, 1
jne 0x180066e50
lea rdi, [rsp + 0x40]
mov rcx, r13
lea rdx, [rsp + 0x40]
rep stosb byte [rdi], al
nop word [rax + rax]
mov byte [rdx], al
inc rdx
sub r13d, 1
jne 0x180066e70
lea rdi, [rsp + 0x370]
mov rcx, rsi
lea rdx, [rsp + 0x370]
rep stosb byte [rdi], al
mov r8d, esi
mov byte [rdx], al
inc rdx
sub r8d, 1
jne 0x180066e93
lea rdi, [rsp + 0x330]
mov rcx, rsi
lea rdx, [rsp + 0x330]
rep stosb byte [rdi], al
mov r8d, esi
nop word [rax + rax]
mov byte [rdx], al
inc rdx
sub r8d, 1
jne 0x180066ec0
lea rdi, [rsp + 0x2b0]
mov rcx, rbx
lea rdx, [rsp + 0x2b0]
rep stosb byte [rdi], al
mov byte [rdx], al
inc rdx
sub ebx, 1
jne 0x180066ee0
lea rdi, [rsp + 0x3b0]
mov rcx, rsi
lea rdx, [rsp + 0x3b0]
rep stosb byte [rdi], al
nop
mov byte [rdx], al
inc rdx
sub esi, 1
jne 0x180066f00
mov rcx, qword [rsp + 0x3f0]
xor rcx, rsp
call fcn.18006a4f0
add rsp, 0x408
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret