Function at 0x140199750
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.1402563a0
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 0x1401997e5
xor eax, eax
jmp 0x140199fe7
lea rdx, [0x1402c42f0]
mov qword [rsp + 0x3a8], r14
call fcn.1400c7940
test eax, eax
je 0x140199839
lea rcx, [rbp - 0x20]
call fcn.1401affa0
test eax, eax
jle 0x140199fdd
mov r14d, reloc.WS2_32.dll_recv
mov r15d, gethostbyname
lea rax, [0x140199500]
lea r13, [0x1401b0b30]
mov byte [rsp + 0x20], bl
lea r10d, [r14 - 8]
mov qword [rbp - 0x80], r15
jmp 0x14019996d
lea rdx, str.SHA1
mov rcx, r12
call fcn.1400c7940
test eax, eax
je 0x14019987a
lea rcx, [rbp - 0x20]
call fcn.140181e90
test eax, eax
jle 0x140199fdd
mov r14d, socket
lea rax, [0x140199580]
lea r13, [0x140183390]
lea r10d, [r14 - 0xc]
jmp 0x14019996d
lea rdx, str.SHA2_224
mov rcx, r12
call fcn.1400c7940
test eax, eax
je 0x1401998bb
lea rcx, [rbp - 0x20]
call fcn.1401836c0
test eax, eax
jle 0x140199fdd
mov r14d, 0x1c
lea rax, [0x140199610]
lea r13, [0x1401849b0]
lea r10d, [r14 - 0x14]
jmp 0x14019996d
lea rdx, str.SHA2_256
mov rcx, r12
call fcn.1400c7940
test eax, eax
je 0x1401998f9
lea rcx, [rbp - 0x20]
call fcn.140183730
test eax, eax
jle 0x140199fdd
mov r14d, 0x20
lea rax, [0x140199610]
lea r13, [0x1401849b0]
lea r10d, [r14 - 0x18]
jmp 0x14019996d
lea rdx, str.SHA2_384
mov rcx, r12
call fcn.1400c7940
test eax, eax
je 0x140199925
lea rcx, [rbp - 0x20]
call fcn.140184e50
test eax, eax
jle 0x140199fdd
mov r14d, gethostbyname
jmp 0x140199950
lea rdx, str.SHA2_512
mov rcx, r12
call fcn.1400c7940
test eax, eax
je 0x140199fd4
lea rcx, [rbp - 0x20]
call fcn.140184ee0
test eax, eax
jle 0x140199fdd
mov r14, rdi
mov r10d, reloc.WS2_32.dll_recv
lea r13, [0x1401874f0]
lea rax, [0x1401996f0]
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 0x1401999ad
mov rax, qword [rbp + 0x330]
lea r12, [r15 + rax + 0xb]
mov r15d, 2
mov qword [rsp + 0x30], r12
jmp 0x1401999be
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 0x140199a27
mov r9, r8
sub r9, r15
mov rbx, r9
mov qword [rsp + 0x58], r9
imul rbx, rdi
shl rsi, 3
test r11b, r11b
jne 0x140199aa4
lea rcx, [rbp + 0x110]
mov r8, rdi
xor edx, edx
lea rsi, [rsi + rdi*8]
call fcn.1402547c0
mov rax, qword [rbp + 0x330]
cmp rax, 0x80
ja 0x140199fdd
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp + 0x110]
mov r8, rax
call fcn.1402550b0
xor r11d, r11d
test rdi, rdi
je 0x140199a91
nop word [rax + rax]
xor byte [rbp + r11 + 0x110], 0x36
inc r11
cmp r11, rdi
jb 0x140199a80
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 0x140199af5
lea r8, [r10 - 4]
call fcn.1402547c0
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 0x140199b34
mov r8, r10
call fcn.1402547c0
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 0x140199c67
cmp byte [rbp + 0x338], 0
je 0x140199be4
cmp r12, rdi
jbe 0x140199fdd
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.1402550b0
mov rdx, qword [rsp + 0x60]
mov r8, rdi
lea rcx, [rbp + r13 + 0x190]
sub r8, r13
call fcn.1402550b0
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 0x20]
call rsi
xor edx, edx
mov rax, rbx
div rdi
dec rax
cmp rax, 1
jbe 0x140199c67
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 0x140199bd0
jmp 0x140199c62
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.1402550b0
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 0x20]
call r13
xor edx, edx
mov rax, rbx
div rdi
cmp rax, 1
jbe 0x140199c67
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 0x140199c50
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 0x140199eb1
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 0x140199e58
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 0x140199d77
mov rax, qword [rsp + 0x68]
jmp 0x140199d8e
mov rax, qword [rbp + 0x320]
add rax, r12
cmp rbx, rax
jae 0x140199d93
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 0x140199e2e
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 0x140199d68
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 0x140199e9d
movzx eax, byte [rbp + r11 + 0x210]
inc r11
and al, sil
or byte [rbp + r11 + 0xcf], al
cmp r11, r14
jb 0x140199e81
inc r15
mov qword [rsp + 0x58], r15
cmp r15, qword [rbp - 0x38]
jbe 0x140199cc0
jmp 0x140199eb4
xor r13d, r13d
call fcn.1400b2520
mov rbx, rax
test rax, rax
je 0x140199fc7
mov rdx, qword [rbp - 0x48]
xor r8d, r8d
mov rcx, rax
call fcn.1400b43c0
test eax, eax
jle 0x140199fc7
cmp byte [rbp + 0x338], 0
je 0x140199f58
mov rdi, qword [rbp - 0x80]
lea rcx, [rbp + 0x110]
mov edx, 0x5c
mov r8, rdi
call fcn.1402547c0
mov r8, qword [rbp + 0x330]
mov rdx, qword [rbp - 0x78]
mov rcx, rbx
call fcn.1400b2550
test eax, eax
jle 0x140199fc7
lea rdx, [rbp + 0x110]
mov r8, rdi
mov rcx, rbx
call fcn.1400b2550
test eax, eax
jle 0x140199fc7
lea rdx, [rbp + 0xd0]
mov r8, r14
mov rcx, rbx
call fcn.1400b2550
test eax, eax
jg 0x140199f9c
mov rcx, rbx
call fcn.1400b3090
mov eax, r13d
jmp 0x140199fdf
mov rax, r13
test rdi, rdi
je 0x140199f70
xor byte [rbp + rax + 0x110], 0x6a
inc rax
cmp rax, rdi
jb 0x140199f60
lea rdx, [rbp + 0x110]
mov r8, rdi
mov rcx, rbx
call fcn.1400b2550
test eax, eax
jle 0x140199fc7
lea rdx, [rbp + 0xd0]
mov r8, r14
mov rcx, rbx
call fcn.1400b2550
test eax, eax
jle 0x140199fc7
mov rdx, qword [rbp - 0x68]
lea r8, [rsp + 0x70]
mov rcx, rbx
call fcn.1400b30d0
test eax, eax
je 0x140199fc1
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x140199fc1
mov eax, dword [rsp + 0x70]
mov qword [rcx], rax
mov r13d, 1
mov rcx, rbx
call fcn.1400b3090
mov eax, r13d
jmp 0x140199fdf
test r13, r13
je 0x140199fdd
mov qword [r13], rbx
xor eax, eax
mov r14, qword [rsp + 0x3a8]
mov rcx, qword [rbp + 0x290]
xor rcx, rsp
call fcn.140254f60
add rsp, 0x3b0
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret