Function at 0x14026eb20
Capabilities:
Authenticate hmac

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
mov eax, 0x3f0
call fcn.14028b850
sub rsp, rax
mov rax, qword [0x1403710d8]
xor rax, rsp
mov qword [rsp + 0x3e8], rax
mov qword [rsp + 0x298], 0x40
mov qword [rsp + 0x2c8], gethostbyaddr
mov qword [rsp + 0x2e8], 0
mov qword [rsp + 0x208], 8
mov byte [rsp + 0x2a0], 1
mov dword [rsp + 0x2d0], 0
cmp qword [rsp + 0x430], 0x100000
jae 0x14026ebb2
mov dword [rsp + 0x3c4], 1
jmp 0x14026ebbd
mov dword [rsp + 0x3c4], 0
cmp dword [rsp + 0x3c4], 0
jne 0x14026ebce
xor eax, eax
jmp 0x14026fa0b
lea rdx, [0x1402a372c]
mov rcx, qword [rsp + 0x400]
call fcn.14006b4e0
test eax, eax
je 0x14026ec3e
lea rcx, [rsp + 0x40]
call fcn.1401b7230
test eax, eax
jg 0x14026ebfb
xor eax, eax
jmp 0x14026fa0b
lea rax, [0x14026fa90]
mov qword [rsp + 0x318], rax
lea rax, [0x1401b6d60]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x168], reloc.WS2_32.dll_recv
mov qword [rsp + 0x2c8], getservbyname
mov byte [rsp + 0x2a0], 0
jmp 0x14026ee58
lea rdx, str.SHA1
mov rcx, qword [rsp + 0x400]
call fcn.14006b4e0
test eax, eax
je 0x14026ec9a
lea rcx, [rsp + 0x40]
call fcn.1401b2d70
test eax, eax
jg 0x14026ec6b
xor eax, eax
jmp 0x14026fa0b
lea rax, [0x14026fca0]
mov qword [rsp + 0x318], rax
lea rax, [0x14014b4e0]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x168], shutdown
jmp 0x14026ee58
lea rdx, str.SHA2_224
mov rcx, qword [rsp + 0x400]
call fcn.14006b4e0
test eax, eax
je 0x14026ecf6
lea rcx, [rsp + 0x40]
call fcn.14014f060
test eax, eax
jg 0x14026ecc7
xor eax, eax
jmp 0x14026fa0b
lea rax, [0x14026ffa0]
mov qword [rsp + 0x318], rax
lea rax, [0x14014f450]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x168], 0x1c
jmp 0x14026ee58
lea rdx, str.SHA2_256
mov rcx, qword [rsp + 0x400]
call fcn.14006b4e0
test eax, eax
je 0x14026ed52
lea rcx, [rsp + 0x40]
call fcn.14014f100
test eax, eax
jg 0x14026ed23
xor eax, eax
jmp 0x14026fa0b
lea rax, [0x14026ffa0]
mov qword [rsp + 0x318], rax
lea rax, [0x14014f450]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x168], 0x20
jmp 0x14026ee58
lea rdx, str.SHA2_384
mov rcx, qword [rsp + 0x400]
call fcn.14006b4e0
test eax, eax
je 0x14026edc6
lea rcx, [rsp + 0x40]
call fcn.140153610
test eax, eax
jg 0x14026ed7f
xor eax, eax
jmp 0x14026fa0b
lea rax, [0x140270090]
mov qword [rsp + 0x318], rax
lea rax, [0x140154230]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x168], getservbyname
mov qword [rsp + 0x298], 0x80
mov qword [rsp + 0x208], reloc.WS2_32.dll_recv
jmp 0x14026ee58
lea rdx, str.SHA2_512
mov rcx, qword [rsp + 0x400]
call fcn.14006b4e0
test eax, eax
je 0x14026ee37
lea rcx, [rsp + 0x40]
call fcn.1401536f0
test eax, eax
jg 0x14026edf3
xor eax, eax
jmp 0x14026fa0b
lea rax, [0x140270090]
mov qword [rsp + 0x318], rax
lea rax, [0x140154230]
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x168], 0x40
mov qword [rsp + 0x298], 0x80
mov qword [rsp + 0x208], reloc.WS2_32.dll_recv
jmp 0x14026ee58
cmp qword [rsp + 0x410], 0
je 0x14026ee51
mov rax, qword [rsp + 0x410]
mov qword [rax], 0
xor eax, eax
jmp 0x14026fa0b
cmp qword [rsp + 0x208], 0x10
ja 0x14026ee70
mov dword [rsp + 0x3c8], 1
jmp 0x14026ee7b
mov dword [rsp + 0x3c8], 0
cmp dword [rsp + 0x3c8], 0
je 0x14026eee2
cmp qword [rsp + 0x298], 0x80
ja 0x14026eea0
mov dword [rsp + 0x3cc], 1
jmp 0x14026eeab
mov dword [rsp + 0x3cc], 0
cmp dword [rsp + 0x3cc], 0
je 0x14026eee2
cmp qword [rsp + 0x168], 0x40
ja 0x14026eecd
mov dword [rsp + 0x3d0], 1
jmp 0x14026eed8
mov dword [rsp + 0x3d0], 0
cmp dword [rsp + 0x3d0], 0
jne 0x14026eee9
xor eax, eax
jmp 0x14026fa0b
mov qword [rsp + 0x2c0], send
movsx eax, byte [rsp + 0x448]
test eax, eax
je 0x14026ef1e
mov rcx, qword [rsp + 0x440]
mov rax, qword [rsp + 0x2c8]
lea rax, [rcx + rax + 0xb]
mov qword [rsp + 0x2c0], rax
movsx eax, byte [rsp + 0x448]
test eax, eax
je 0x14026ef38
mov qword [rsp + 0x3d8], 2
jmp 0x14026ef66
mov rcx, qword [rsp + 0x168]
mov rax, qword [rsp + 0x298]
lea rax, [rcx + rax + 0xff]
xor edx, edx
div qword [rsp + 0x298]
add rax, 1
mov qword [rsp + 0x3d8], rax
mov rax, qword [rsp + 0x3d8]
mov qword [rsp + 0x200], rax
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rsp + 0x430]
add rax, rcx
mov qword [rsp + 0x2b8], rax
mov rcx, qword [rsp + 0x168]
mov rax, qword [rsp + 0x2b8]
sub rax, rcx
sub rax, 1
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x208]
lea rcx, [rcx + rax + 1]
mov rax, qword [rsp + 0x298]
lea rax, [rcx + rax - 1]
xor edx, edx
div qword [rsp + 0x298]
mov qword [rsp + 0x2b0], rax
mov qword [rsp + 0x2f0], 0
mov qword [rsp + 0x2e0], 0
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rsp + 0x428]
add rax, rcx
mov qword [rsp + 0x20], rax
xor edx, edx
mov rax, qword [rsp + 0x20]
div qword [rsp + 0x298]
mov qword [rsp + 0x310], rdx
xor edx, edx
mov rax, qword [rsp + 0x20]
div qword [rsp + 0x298]
mov qword [rsp + 0x160], rax
mov rcx, qword [rsp + 0x208]
mov rax, qword [rsp + 0x20]
add rax, rcx
xor edx, edx
div qword [rsp + 0x298]
mov qword [rsp + 0x308], rax
movsx eax, byte [rsp + 0x448]
test eax, eax
je 0x14026f077
mov dword [rsp + 0x3e0], 1
jmp 0x14026f082
mov dword [rsp + 0x3e0], 0
movsxd rcx, dword [rsp + 0x3e0]
mov rax, qword [rsp + 0x200]
add rax, rcx
cmp qword [rsp + 0x2b0], rax
jbe 0x14026f0d3
mov rcx, qword [rsp + 0x200]
mov rax, qword [rsp + 0x2b0]
sub rax, rcx
mov qword [rsp + 0x2f0], rax
mov rax, qword [rsp + 0x298]
imul rax, qword [rsp + 0x2f0]
mov qword [rsp + 0x2e0], rax
mov rax, qword [rsp + 0x20]
shl rax, 3
mov qword [rsp + 0x2a8], rax
movsx eax, byte [rsp + 0x448]
test eax, eax
jne 0x14026f1e7
mov rcx, qword [rsp + 0x2a8]
mov rax, qword [rsp + 0x298]
lea rax, [rcx + rax*8]
mov qword [rsp + 0x2a8], rax
mov r8, qword [rsp + 0x298]
xor edx, edx
lea rcx, [rsp + 0x210]
call sub.MSVCR90.dll_memset
cmp qword [rsp + 0x440], 0x80
ja 0x14026f142
mov dword [rsp + 0x3e4], 1
jmp 0x14026f14d
mov dword [rsp + 0x3e4], 0
cmp dword [rsp + 0x3e4], 0
jne 0x14026f15e
xor eax, eax
jmp 0x14026fa0b
mov r8, qword [rsp + 0x440]
mov rdx, qword [rsp + 0x438]
lea rcx, [rsp + 0x210]
call fcn.14028a8de
mov qword [rsp + 0x170], 0
jmp 0x14026f19d
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x298]
cmp qword [rsp + 0x170], rax
jae 0x14026f1d3
mov rax, qword [rsp + 0x170]
movzx ecx, byte [rsp + rax + 0x210]
xor ecx, 0x36
mov rax, qword [rsp + 0x170]
mov byte [rsp + rax + 0x210], cl
jmp 0x14026f189
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
movsx eax, byte [rsp + 0x2a0]
test eax, eax
je 0x14026f27c
mov r8, qword [rsp + 0x208]
sub r8, 4
xor edx, edx
lea rcx, [rsp + 0x2f8]
call sub.MSVCR90.dll_memset
mov rcx, qword [rsp + 0x2a8]
shr rcx, 0x18
mov rax, qword [rsp + 0x208]
mov byte [rsp + rax + 0x2f4], cl
mov rcx, qword [rsp + 0x2a8]
shr rcx, 0x10
mov rax, qword [rsp + 0x208]
mov byte [rsp + rax + 0x2f5], cl
mov rcx, qword [rsp + 0x2a8]
shr rcx, 8
mov rax, qword [rsp + 0x208]
mov byte [rsp + rax + 0x2f6], cl
mov rcx, qword [rsp + 0x208]
movzx eax, byte [rsp + 0x2a8]
mov byte [rsp + rcx + 0x2f7], al
jmp 0x14026f2fb
mov r8, qword [rsp + 0x208]
xor edx, edx
lea rcx, [rsp + 0x2f8]
call sub.MSVCR90.dll_memset
mov rcx, qword [rsp + 0x2a8]
shr rcx, 0x18
mov rax, qword [rsp + 0x208]
mov byte [rsp + rax + 0x2f3], cl
mov rcx, qword [rsp + 0x2a8]
shr rcx, 0x10
mov rax, qword [rsp + 0x208]
mov byte [rsp + rax + 0x2f2], cl
mov rcx, qword [rsp + 0x2a8]
shr rcx, 8
mov rax, qword [rsp + 0x208]
mov byte [rsp + rax + 0x2f1], cl
mov rcx, qword [rsp + 0x208]
movzx eax, byte [rsp + 0x2a8]
mov byte [rsp + rcx + 0x2f0], al
cmp qword [rsp + 0x2e0], 0
jbe 0x14026f501
movsx eax, byte [rsp + 0x448]
test eax, eax
je 0x14026f447
mov rax, qword [rsp + 0x298]
cmp qword [rsp + 0x2c0], rax
ja 0x14026f333
xor eax, eax
jmp 0x14026fa0b
mov rcx, qword [rsp + 0x298]
mov rax, qword [rsp + 0x2c0]
sub rax, rcx
mov qword [rsp + 0x328], rax
mov rdx, qword [rsp + 0x418]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
mov r11, qword [rsp + 0x298]
mov rdx, qword [rsp + 0x418]
add rdx, r11
mov r8, qword [rsp + 0x328]
lea rcx, [rsp + 0x180]
call fcn.14028a8de
mov r11, qword [rsp + 0x328]
mov r8, qword [rsp + 0x298]
sub r8, r11
mov rax, qword [rsp + 0x328]
lea rcx, [rsp + rax + 0x180]
mov rdx, qword [rsp + 0x420]
call fcn.14028a8de
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
mov qword [rsp + 0x170], 1
jmp 0x14026f3f0
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
xor edx, edx
mov rax, qword [rsp + 0x2e0]
div qword [rsp + 0x298]
sub rax, 1
cmp qword [rsp + 0x170], rax
jae 0x14026f442
mov rax, qword [rsp + 0x298]
imul rax, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x420]
add rdx, rax
sub rdx, qword [rsp + 0x328]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
jmp 0x14026f3dc
jmp 0x14026f501
mov r8d, recv
mov rdx, qword [rsp + 0x418]
lea rcx, [rsp + 0x180]
call fcn.14028a8de
mov r8, qword [rsp + 0x298]
sub r8, 0xd
lea rcx, [rsp + 0x18d]
mov rdx, qword [rsp + 0x420]
call fcn.14028a8de
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
mov qword [rsp + 0x170], 1
jmp 0x14026f4b9
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
xor edx, edx
mov rax, qword [rsp + 0x2e0]
div qword [rsp + 0x298]
cmp qword [rsp + 0x170], rax
jae 0x14026f501
mov rcx, qword [rsp + 0x298]
imul rcx, qword [rsp + 0x170]
mov rax, qword [rsp + 0x420]
lea rdx, [rax + rcx - 0xd]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
jmp 0x14026f4a5
mov r8d, 0x40
xor edx, edx
lea rcx, [rsp + 0x120]
call sub.MSVCR90.dll_memset
mov r11, qword [rsp + 0x2f0]
mov qword [rsp + 0x170], r11
jmp 0x14026f53c
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rcx, qword [rsp + 0x200]
mov rax, qword [rsp + 0x2f0]
add rax, rcx
cmp qword [rsp + 0x170], rax
ja 0x14026f830
mov rdx, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x170]
call fcn.14026fa30
mov byte [rsp + 0x331], al
mov rdx, qword [rsp + 0x308]
mov rcx, qword [rsp + 0x170]
call fcn.14026fa30
mov byte [rsp + 0x330], al
mov qword [rsp + 0x320], 0
jmp 0x14026f5b7
mov rax, qword [rsp + 0x320]
add rax, 1
mov qword [rsp + 0x320], rax
mov rax, qword [rsp + 0x298]
cmp qword [rsp + 0x320], rax
jae 0x14026f792
mov byte [rsp + 0x3c1], 0
mov rax, qword [rsp + 0x2c0]
cmp qword [rsp + 0x2e0], rax
jae 0x14026f606
mov rcx, qword [rsp + 0x2e0]
mov rax, qword [rsp + 0x418]
add rax, rcx
movzx eax, byte [rax]
mov byte [rsp + 0x3c1], al
jmp 0x14026f649
mov rcx, qword [rsp + 0x2c0]
mov rax, qword [rsp + 0x430]
add rax, rcx
cmp qword [rsp + 0x2e0], rax
jae 0x14026f649
mov rax, qword [rsp + 0x2c0]
mov rcx, qword [rsp + 0x2e0]
sub rcx, rax
mov rax, qword [rsp + 0x420]
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3c1], al
mov rax, qword [rsp + 0x2e0]
add rax, 1
mov qword [rsp + 0x2e0], rax
movzx ebx, byte [rsp + 0x331]
mov rdx, qword [rsp + 0x310]
mov rcx, qword [rsp + 0x320]
call fcn.14027a940
movzx ecx, al
mov eax, ebx
and eax, ecx
mov byte [rsp + 0x3c0], al
movzx ebx, byte [rsp + 0x331]
mov rdx, qword [rsp + 0x310]
add rdx, 1
mov rcx, qword [rsp + 0x320]
call fcn.14027a940
movzx ecx, al
mov eax, ebx
and eax, ecx
mov byte [rsp + 0x3c2], al
movzx r8d, byte [rsp + 0x3c1]
mov dl, 0x80
movzx ecx, byte [rsp + 0x3c0]
call fcn.14027aee0
mov byte [rsp + 0x3c1], al
movzx eax, byte [rsp + 0x3c1]
movzx ecx, byte [rsp + 0x3c2]
not ecx
and eax, ecx
mov byte [rsp + 0x3c1], al
movzx ecx, byte [rsp + 0x330]
not ecx
movzx eax, byte [rsp + 0x331]
or ecx, eax
movzx eax, byte [rsp + 0x3c1]
and eax, ecx
mov byte [rsp + 0x3c1], al
mov rcx, qword [rsp + 0x208]
mov rax, qword [rsp + 0x298]
sub rax, rcx
cmp qword [rsp + 0x320], rax
jb 0x14026f776
mov rax, qword [rsp + 0x208]
mov rcx, qword [rsp + 0x298]
sub rcx, rax
mov rax, qword [rsp + 0x320]
sub rax, rcx
movzx r8d, byte [rsp + 0x3c1]
movzx edx, byte [rsp + rax + 0x2f8]
movzx ecx, byte [rsp + 0x330]
call fcn.14027aee0
mov byte [rsp + 0x3c1], al
mov rcx, qword [rsp + 0x320]
movzx eax, byte [rsp + 0x3c1]
mov byte [rsp + rcx + 0x340], al
jmp 0x14026f5a3
lea rdx, [rsp + 0x340]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x2d8]
lea rdx, [rsp + 0x340]
lea rcx, [rsp + 0x40]
call qword [rsp + 0x318]
mov qword [rsp + 0x320], 0
jmp 0x14026f7dc
mov rax, qword [rsp + 0x320]
add rax, 1
mov qword [rsp + 0x320], rax
mov rax, qword [rsp + 0x168]
cmp qword [rsp + 0x320], rax
jae 0x14026f82b
mov rax, qword [rsp + 0x320]
movzx edx, byte [rsp + rax + 0x340]
movzx eax, byte [rsp + 0x330]
and edx, eax
mov rax, qword [rsp + 0x320]
movzx ecx, byte [rsp + rax + 0x120]
or ecx, edx
mov rax, qword [rsp + 0x320]
mov byte [rsp + rax + 0x120], cl
jmp 0x14026f7c8
jmp 0x14026f528
call fcn.1400675e0
mov qword [rsp + 0x2e8], rax
cmp qword [rsp + 0x2e8], 0
jne 0x14026f84d
jmp 0x14026f9f7
xor r8d, r8d
mov rdx, qword [rsp + 0x400]
mov rcx, qword [rsp + 0x2e8]
call fcn.140067e10
test eax, eax
jg 0x14026f86e
jmp 0x14026f9f7
movsx eax, byte [rsp + 0x448]
test eax, eax
je 0x14026f905
mov r8, qword [rsp + 0x2c8]
mov edx, 0x5c
lea rcx, [rsp + 0x210]
call sub.MSVCR90.dll_memset
mov r8, qword [rsp + 0x440]
mov rdx, qword [rsp + 0x438]
mov rcx, qword [rsp + 0x2e8]
call fcn.140067e50
test eax, eax
jle 0x14026f8fb
mov r8, qword [rsp + 0x2c8]
lea rdx, [rsp + 0x210]
mov rcx, qword [rsp + 0x2e8]
call fcn.140067e50
test eax, eax
jle 0x14026f8fb
mov r8, qword [rsp + 0x168]
lea rdx, [rsp + 0x120]
mov rcx, qword [rsp + 0x2e8]
call fcn.140067e50
test eax, eax
jg 0x14026f900
jmp 0x14026f9f7
jmp 0x14026f9a1
mov qword [rsp + 0x170], 0
jmp 0x14026f927
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x298]
cmp qword [rsp + 0x170], rax
jae 0x14026f95d
mov rax, qword [rsp + 0x170]
movzx ecx, byte [rsp + rax + 0x210]
xor ecx, 0x6a
mov rax, qword [rsp + 0x170]
mov byte [rsp + rax + 0x210], cl
jmp 0x14026f913
mov r8, qword [rsp + 0x298]
lea rdx, [rsp + 0x210]
mov rcx, qword [rsp + 0x2e8]
call fcn.140067e50
test eax, eax
jle 0x14026f99f
mov r8, qword [rsp + 0x168]
lea rdx, [rsp + 0x120]
mov rcx, qword [rsp + 0x2e8]
call fcn.140067e50
test eax, eax
jg 0x14026f9a1
jmp 0x14026f9f7
lea r8, [rsp + 0x290]
mov rdx, qword [rsp + 0x408]
mov rcx, qword [rsp + 0x2e8]
call fcn.140068040
mov dword [rsp + 0x2d0], eax
cmp dword [rsp + 0x2d0], 0
je 0x14026f9ec
cmp qword [rsp + 0x410], 0
je 0x14026f9ec
mov ecx, dword [rsp + 0x290]
mov rax, qword [rsp + 0x410]
mov qword [rax], rcx
mov dword [rsp + 0x2d0], 1
mov rcx, qword [rsp + 0x2e8]
call fcn.140067610
mov eax, dword [rsp + 0x2d0]
mov rcx, qword [rsp + 0x3e8]
xor rcx, rsp
call fcn.14028a900
add rsp, 0x3f0
pop rbx
ret