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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x2b0]
mov eax, 0x3b0
call fcn.1402563f0
sub rsp, rax
mov rax, qword [0x1403bb2d8]
xor rax, rsp
mov qword [rbp + 0x290], rax
mov rax, qword [rbp + 0x310]
mov rsi, qword [rbp + 0x320]
mov r15d, 0x28
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x328]
xor ebx, ebx
mov qword [rsp + 0x68], r9
mov r13, r8
mov qword [rbp - 0x58], r8
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x68], rdx
mov r12, rcx
mov qword [rbp - 0x48], rcx
mov edi, 0x40
mov qword [rbp - 0x80], r15
mov qword [rsp + 0x50], 8
mov byte [rsp + 0x20], 1
cmp rsi, 0x100000
jb 0x140199835
xor eax, eax
jmp 0x14019a037
lea rdx, [0x1402c42f0]
mov qword [rsp + 0x3a8], r14
call fcn.1400c7990
test eax, eax
je 0x140199889
lea rcx, [rbp - 0x20]
call fcn.1401afff0
test eax, eax
jle 0x14019a02d
mov r14d, reloc.WS2_32.dll_recv
mov r15d, gethostbyname
lea rax, [0x140199550]
lea r13, [0x1401b0b80]
mov byte [rsp + 0x20], bl
lea r10d, [r14 - 8]
mov qword [rbp - 0x80], r15
jmp 0x1401999bd
lea rdx, str.SHA1
mov rcx, r12
call fcn.1400c7990
test eax, eax
je 0x1401998ca
lea rcx, [rbp - 0x20]
call fcn.140181ee0
test eax, eax
jle 0x14019a02d
mov r14d, socket
lea rax, [0x1401995d0]
lea r13, [0x1401833e0]
lea r10d, [r14 - 0xc]
jmp 0x1401999bd
lea rdx, str.SHA2_224
mov rcx, r12
call fcn.1400c7990
test eax, eax
je 0x14019990b
lea rcx, [rbp - 0x20]
call fcn.140183710
test eax, eax
jle 0x14019a02d
mov r14d, 0x1c
lea rax, [0x140199660]
lea r13, [0x140184a00]
lea r10d, [r14 - 0x14]
jmp 0x1401999bd
lea rdx, str.SHA2_256
mov rcx, r12
call fcn.1400c7990
test eax, eax
je 0x140199949
lea rcx, [rbp - 0x20]
call fcn.140183780
test eax, eax
jle 0x14019a02d
mov r14d, 0x20
lea rax, [0x140199660]
lea r13, [0x140184a00]
lea r10d, [r14 - 0x18]
jmp 0x1401999bd
lea rdx, str.SHA2_384
mov rcx, r12
call fcn.1400c7990
test eax, eax
je 0x140199975
lea rcx, [rbp - 0x20]
call fcn.140184ea0
test eax, eax
jle 0x14019a02d
mov r14d, gethostbyname
jmp 0x1401999a0
lea rdx, str.SHA2_512
mov rcx, r12
call fcn.1400c7990
test eax, eax
je 0x14019a024
lea rcx, [rbp - 0x20]
call fcn.140184f30
test eax, eax
jle 0x14019a02d
mov r14, rdi
mov r10d, reloc.WS2_32.dll_recv
lea r13, [0x140187540]
lea rax, [0x140199740]
lea edi, [r10 + 0x70]
mov qword [rsp + 0x50], r10
movzx r11d, byte [rbp + 0x338]
mov r12d, recv
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x30], r12
test r11b, r11b
je 0x1401999fd
mov rax, qword [rbp + 0x330]
lea r12, [r15 + rax + 0xb]
mov r15d, 2
mov qword [rsp + 0x30], r12
jmp 0x140199a0e
lea rax, [r14 + rdi + 0xff]
xor edx, edx
div rdi
lea r15, [rax + 1]
xor edx, edx
mov rcx, r12
mov qword [rsp + 0x58], rbx
sub rcx, r14
add rcx, r10
add rcx, rdi
lea rax, [rcx + rsi - 1]
xor ecx, ecx
div rdi
xor edx, edx
mov r8, rax
mov rax, qword [rbp + 0x318]
lea rsi, [r12 + rax]
mov rax, rsi
div rdi
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x78], rdx
xor edx, edx
lea rax, [rsi + r10]
div rdi
test r11b, r11b
setne cl
mov qword [rbp - 0x60], rax
add rcx, r15
cmp r8, rcx
jbe 0x140199a77
mov r9, r8
sub r9, r15
mov rbx, r9
mov qword [rsp + 0x58], r9
imul rbx, rdi
shl rsi, 3
test r11b, r11b
jne 0x140199af4
lea rcx, [rbp + 0x110]
mov r8, rdi
xor edx, edx
lea rsi, [rsi + rdi*8]
call fcn.140254810
mov rax, qword [rbp + 0x330]
cmp rax, 0x80
ja 0x14019a02d
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp + 0x110]
mov r8, rax
call fcn.140255100
xor r11d, r11d
test rdi, rdi
je 0x140199ae1
nop word [rax + rax]
xor byte [rbp + r11 + 0x110], 0x36
inc r11
cmp r11, rdi
jb 0x140199ad0
lea rdx, [rbp + 0x110]
lea rcx, [rbp - 0x20]
call r13
mov r10, qword [rsp + 0x50]
xor edx, edx
lea rcx, [rbp + 0xc0]
cmp byte [rsp + 0x20], dl
je 0x140199b45
lea r8, [r10 - 4]
call fcn.140254810
mov rcx, qword [rsp + 0x50]
mov rax, rsi
shr rax, 0x18
mov byte [rbp + rcx + 0xbf], sil
mov byte [rbp + rcx + 0xbc], al
mov rax, rsi
shr rax, 0x10
mov byte [rbp + rcx + 0xbd], al
mov rax, rsi
shr rax, 8
mov byte [rbp + rcx + 0xbe], al
jmp 0x140199b84
mov r8, r10
call fcn.140254810
mov rcx, qword [rsp + 0x50]
mov rax, rsi
shr rax, 0x18
mov byte [rbp + rcx + 0xb8], sil
mov byte [rbp + rcx + 0xbb], al
mov rax, rsi
shr rax, 0x10
mov byte [rbp + rcx + 0xba], al
mov rax, rsi
shr rax, 8
mov byte [rbp + rcx + 0xb9], al
test rbx, rbx
je 0x140199cb7
cmp byte [rbp + 0x338], 0
je 0x140199c34
cmp r12, rdi
jbe 0x14019a02d
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x28]
lea rcx, [rbp - 0x20]
mov r13, r12
sub r13, rdi
call rsi
mov rdx, qword [rsp + 0x68]
lea rcx, [rbp + 0x190]
mov r8, r13
add rdx, rdi
call fcn.140255100
mov rdx, qword [rsp + 0x60]
mov r8, rdi
lea rcx, [rbp + r13 + 0x190]
sub r8, r13
call fcn.140255100
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 0x20]
call rsi
xor edx, edx
mov rax, rbx
div rdi
dec rax
cmp rax, 1
jbe 0x140199cb7
mov rsi, qword [rsp + 0x60]
mov r12, qword [rsp + 0x28]
sub rsi, r13
lea r13, [rax - 1]
add rsi, rdi
nop
lea rcx, [rbp - 0x20]
mov rdx, rsi
call r12
add rsi, rdi
dec r13
jne 0x140199c20
jmp 0x140199cb2
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
lea r8, [rdi - 0xd]
mov rax, qword [rcx]
mov rdx, rsi
mov qword [rbp + 0x190], rax
mov eax, dword [rcx + 8]
mov dword [rbp + 0x198], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x19d]
mov byte [rbp + 0x19c], al
call fcn.140255100
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 0x20]
call r13
xor edx, edx
mov rax, rbx
div rdi
cmp rax, 1
jbe 0x140199cb7
mov r12, qword [rsp + 0x28]
lea rsi, [rsi + rdi - 0xd]
lea r13, [rax - 1]
nop dword [rax + rax]
lea rcx, [rbp - 0x20]
mov rdx, rsi
call r12
add rsi, rdi
dec r13
jne 0x140199ca0
mov r12, qword [rsp + 0x30]
xor eax, eax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rax
mov rax, qword [rsp + 0x58]
add rax, r15
mov r15, qword [rsp + 0x58]
mov qword [rbp - 0x38], rax
cmp r15, rax
ja 0x140199f01
nop dword [rax + rax]
mov rax, r15
xor r10d, r10d
xor rax, qword [rbp - 0x70]
lea r13, [rax - 1]
not rax
shr rax, 0x3f
shr r13, 0x3f
and r13b, al
mov rax, r15
xor rax, qword [rbp - 0x60]
neg r13b
lea rsi, [rax - 1]
not rax
shr rsi, 0x3f
shr rax, 0x3f
and sil, al
neg sil
test rdi, rdi
je 0x140199ea8
mov rdx, qword [rsp + 0x78]
movzx ecx, r13b
mov dword [rsp + 0x74], ecx
mov rcx, qword [rsp + 0x50]
lea rax, [rdx + 1]
shr rax, 0x3f
mov r9, rdx
mov qword [rbp - 0x40], rax
movzx eax, sil
shr r9, 0x3f
not al
mov qword [rbp - 0x30], r9
or al, r13b
mov byte [rsp + 0x20], al
mov rax, rdi
movzx r15d, byte [rsp + 0x20]
sub rax, rcx
mov qword [rbp - 0x50], rax
mov rax, rdx
sub rax, rdi
add rax, rcx
mov rcx, rdx
lea rax, [rbp + rax + 0xc0]
neg rcx
mov r14, rax
mov qword [rbp - 0x28], rcx
xor r8b, r8b
cmp rbx, r12
jae 0x140199dc7
mov rax, qword [rsp + 0x68]
jmp 0x140199dde
mov rax, qword [rbp + 0x320]
add rax, r12
cmp rbx, rax
jae 0x140199de3
mov rax, qword [rsp + 0x60]
sub rax, r12
movzx r8d, byte [rax + rbx]
lea r11, [rcx + r10]
mov rdx, r10
inc rbx
shr rdx, 0x3f
mov rcx, r11
shr rcx, 0x3f
movzx eax, dl
xor cl, r9b
xor al, r9b
or cl, al
xor cl, dl
dec cl
movzx eax, cl
mov rcx, r10
and eax, dword [rsp + 0x74]
mov dword [rsp + 0x30], eax
not eax
mov dword [rsp + 0x38], eax
mov r9d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
and al, 0x80
and r9b, r8b
mov r8, qword [rsp + 0x78]
or r9b, al
lea rax, [r8 + 1]
sub rcx, rax
mov rax, qword [rbp - 0x40]
shr rcx, 0x3f
xor cl, al
xor al, dl
or cl, al
xor cl, dl
dec cl
and cl, r13b
not cl
and cl, r15b
and r9b, cl
cmp r10, qword [rbp - 0x50]
jb 0x140199e7e
movzx eax, sil
mov dword [rsp + 0x30], eax
not eax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x30]
movzx ecx, byte [r11 + r14]
and cl, al
mov eax, dword [rsp + 0x38]
and r9b, al
or r9b, cl
mov rcx, qword [rbp - 0x28]
lea rax, [rbp + r8 + 0x210]
inc r10
mov byte [r11 + rax], r9b
mov r9, qword [rbp - 0x30]
cmp r10, rdi
jb 0x140199db8
mov r14, qword [rsp + 0x40]
mov r15, qword [rsp + 0x58]
lea rdx, [rbp + 0x210]
lea rcx, [rbp - 0x20]
call qword [rsp + 0x28]
lea rdx, [rbp + 0x210]
lea rcx, [rbp - 0x20]
call qword [rsp + 0x48]
xor r13d, r13d
mov r11d, r13d
test r14, r14
je 0x140199eed
movzx eax, byte [rbp + r11 + 0x210]
inc r11
and al, sil
or byte [rbp + r11 + 0xcf], al
cmp r11, r14
jb 0x140199ed1
inc r15
mov qword [rsp + 0x58], r15
cmp r15, qword [rbp - 0x38]
jbe 0x140199d10
jmp 0x140199f04
xor r13d, r13d
call fcn.1400b2570
mov rbx, rax
test rax, rax
je 0x14019a017
mov rdx, qword [rbp - 0x48]
xor r8d, r8d
mov rcx, rax
call fcn.1400b4410
test eax, eax
jle 0x14019a017
cmp byte [rbp + 0x338], 0
je 0x140199fa8
mov rdi, qword [rbp - 0x80]
lea rcx, [rbp + 0x110]
mov edx, 0x5c
mov r8, rdi
call fcn.140254810
mov r8, qword [rbp + 0x330]
mov rdx, qword [rbp - 0x78]
mov rcx, rbx
call fcn.1400b25a0
test eax, eax
jle 0x14019a017
lea rdx, [rbp + 0x110]
mov r8, rdi
mov rcx, rbx
call fcn.1400b25a0
test eax, eax
jle 0x14019a017
lea rdx, [rbp + 0xd0]
mov r8, r14
mov rcx, rbx
call fcn.1400b25a0
test eax, eax
jg 0x140199fec
mov rcx, rbx
call fcn.1400b30e0
mov eax, r13d
jmp 0x14019a02f
mov rax, r13
test rdi, rdi
je 0x140199fc0
xor byte [rbp + rax + 0x110], 0x6a
inc rax
cmp rax, rdi
jb 0x140199fb0
lea rdx, [rbp + 0x110]
mov r8, rdi
mov rcx, rbx
call fcn.1400b25a0
test eax, eax
jle 0x14019a017
lea rdx, [rbp + 0xd0]
mov r8, r14
mov rcx, rbx
call fcn.1400b25a0
test eax, eax
jle 0x14019a017
mov rdx, qword [rbp - 0x68]
lea r8, [rsp + 0x70]
mov rcx, rbx
call fcn.1400b3120
test eax, eax
je 0x14019a011
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14019a011
mov eax, dword [rsp + 0x70]
mov qword [rcx], rax
mov r13d, 1
mov rcx, rbx
call fcn.1400b30e0
mov eax, r13d
jmp 0x14019a02f
test r13, r13
je 0x14019a02d
mov qword [r13], rbx
xor eax, eax
mov r14, qword [rsp + 0x3a8]
mov rcx, qword [rbp + 0x290]
xor rcx, rsp
call fcn.140254fb0
add rsp, 0x3b0
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret