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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
mov rdi, r9
mov rsi, rcx
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x120], rax
test r9, r9
mov rax, qword [rcx]
cmove rdi, rax
xor rax, rdi
or rax, rdx
je 0x140049b06
mov r14, r8
mov ebx, dword [rdi + 0x28]
cmp r8, rbx
jbe 0x1400498bc
mov r15, rdx
mov rax, qword [rsi + 8]
cmp rax, rdi
je 0x14004987d
mov ecx, dword [rdi + 0x2c]
call fcn.1400985f0
test rax, rax
je 0x140049b3b
mov r12, rax
mov rcx, qword [rsi + 0x10]
call fcn.140098760
mov qword [rsi + 0x10], r12
mov qword [rsi + 8], rdi
mov rax, rdi
lea r12, [rsi + 8]
mov rcx, r12
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [rsi + 8]
mov rcx, r12
mov rdx, r15
mov r8, r14
call qword [rax + 0x18]
mov rax, qword [rsi + 8]
lea rdx, [rsp + 0x20]
mov rcx, r12
call qword [rax + 0x20]
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov r14d, dword [rax + 4]
mov edx, dword [rax + 0x2c]
call fcn.1400987a0
jmp 0x1400498ce
test r14, r14
je 0x1400498ce
lea rcx, [rsp + 0x20]
mov r8, r14
call fcn.1402a44e0
cmp ebx, r14d
je 0x1400498eb
mov eax, r14d
mov r8, rbx
sub r8, rax
lea rcx, [rsp + rax]
add rcx, 0x20
xor edx, edx
call fcn.1402a4b90
test rbx, rbx
je 0x1400499a7
cmp ebx, 8
jae 0x140049900
xor eax, eax
jmp 0x140049990
cmp ebx, 0x20
jae 0x140049909
xor eax, eax
jmp 0x140049952
mov eax, ebx
and eax, 0xffffffe0
xor ecx, ecx
movaps xmm0, xmmword [str.6666666666666666S]
nop word [rax + rax]
movaps xmm1, xmmword [rsp + rcx + 0x20]
xorps xmm1, xmm0
movaps xmm2, xmmword [rsp + rcx + 0x30]
xorps xmm2, xmm0
movaps xmmword [rsp + rcx + 0xa0], xmm1
movaps xmmword [rsp + rcx + 0xb0], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x140049920
cmp eax, ebx
je 0x1400499a7
test bl, 0x18
je 0x140049990
mov rcx, rax
mov eax, ebx
and eax, 0xfffffff8
movabs rdx, 0x3636363636363636
nop word cs:[rax + rax]
mov r8, qword [rsp + rcx + 0x20]
xor r8, rdx
mov qword [rsp + rcx + 0xa0], r8
add rcx, 8
cmp rax, rcx
jne 0x140049970
cmp eax, ebx
je 0x1400499a7
nop dword [rax]
movzx ecx, byte [rsp + rax + 0x20]
xor cl, 0x36
mov byte [rsp + rax + 0xa0], cl
inc rax
cmp rbx, rax
jne 0x140049990
mov rax, qword [rsi + 0x28]
cmp rax, rdi
je 0x1400499d8
mov ecx, dword [rdi + 0x2c]
call fcn.1400985f0
test rax, rax
je 0x140049b3b
mov r14, rax
mov rcx, qword [rsi + 0x30]
call fcn.140098760
mov qword [rsi + 0x30], r14
mov qword [rsi + 0x28], rdi
mov rax, rdi
lea r14, [rsi + 0x28]
mov rcx, r14
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [r14]
lea rdx, [rsp + 0xa0]
mov rcx, r14
mov r8, rbx
call qword [rax + 0x18]
test rbx, rbx
je 0x140049ab7
cmp ebx, 8
jae 0x140049a0b
xor eax, eax
jmp 0x140049aa0
cmp ebx, 0x20
jae 0x140049a14
xor eax, eax
jmp 0x140049a62
mov eax, ebx
and eax, 0xffffffe0
xor ecx, ecx
movaps xmm0, xmmword [0x1402da4f0]
nop word cs:[rax + rax]
movaps xmm1, xmmword [rsp + rcx + 0x20]
xorps xmm1, xmm0
movaps xmm2, xmmword [rsp + rcx + 0x30]
xorps xmm2, xmm0
movaps xmmword [rsp + rcx + 0xa0], xmm1
movaps xmmword [rsp + rcx + 0xb0], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x140049a30
cmp eax, ebx
je 0x140049ab7
test bl, 0x18
je 0x140049aa0
mov rcx, rax
mov eax, ebx
and eax, 0xfffffff8
movabs rdx, 0x5c5c5c5c5c5c5c5c
nop word cs:[rax + rax]
mov r8, qword [rsp + rcx + 0x20]
xor r8, rdx
mov qword [rsp + rcx + 0xa0], r8
add rcx, 8
cmp rax, rcx
jne 0x140049a80
cmp eax, ebx
je 0x140049ab7
nop dword [rax]
movzx ecx, byte [rsp + rax + 0x20]
xor cl, 0x5c
mov byte [rsp + rax + 0xa0], cl
inc rax
cmp rbx, rax
jne 0x140049aa0
mov rax, qword [rsi + 0x48]
cmp rax, rdi
je 0x140049ae4
mov ecx, dword [rdi + 0x2c]
call fcn.1400985f0
test rax, rax
je 0x140049b3b
mov r14, rax
mov rcx, qword [rsi + 0x50]
call fcn.140098760
mov qword [rsi + 0x50], r14
mov qword [rsi + 0x48], rdi
mov rax, rdi
lea r14, [rsi + 0x48]
mov rcx, r14
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [rsi + 0x48]
lea rdx, [rsp + 0xa0]
mov rcx, r14
mov r8, rbx
call qword [rax + 0x18]
mov qword [rsi], rdi
lea rdx, [rsi + 0x28]
add rsi, 8
mov rcx, rsi
call fcn.14003abb0
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x140049b51
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
xor eax, eax
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x140049b2a
call fcn.14029fd30
int3