Function at 0x140088d50
Capabilities:
Authenticate hmac

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x50
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x38], 0
cmp qword [rsp + 0x60], 0
je 0x140088dde
cmp qword [rsp + 0x70], 0
jne 0x140088d98
cmp dword [rsp + 0x78], 0
jne 0x140088dde
cmp dword [rsp + 0x68], 3
je 0x140088de8
cmp dword [rsp + 0x68], 4
je 0x140088de8
cmp dword [rsp + 0x68], 5
je 0x140088de8
cmp dword [rsp + 0x68], 6
je 0x140088de8
cmp dword [rsp + 0x68], 7
je 0x140088de8
cmp dword [rsp + 0x68], 8
je 0x140088de8
cmp dword [rsp + 0x68], 0xa
je 0x140088de8
cmp dword [rsp + 0x68], 0xb
je 0x140088de8
cmp dword [rsp + 0x68], 0xc
je 0x140088de8
cmp dword [rsp + 0x68], 0xd
je 0x140088de8
mov eax, 0xffffff53
jmp 0x140089200
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 0x228]
test eax, eax
je 0x140088e02
mov rcx, qword [rsp + 0x60]
call fcn.140089880
mov rax, qword [rsp + 0x60]
mov byte [rax + 0x229], 0
mov rax, qword [rsp + 0x60]
movzx ecx, byte [rsp + 0x68]
mov byte [rax + 0x228], cl
mov r8, qword [rsp + 0x38]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call fcn.140089940
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140088e45
mov eax, dword [rsp + 0x34]
jmp 0x140089200
cmp dword [rsp + 0x80], 0
jne 0x140088e60
cmp dword [rsp + 0x78], 0xe
jae 0x140088e60
mov eax, 0xffffff38
jmp 0x140089200
mov rax, qword [rsp + 0x60]
add rax, 0xe0
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x60]
add rax, 0x160
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 0x228]
mov byte [rsp + 0x44], al
cmp byte [rsp + 0x44], 3
je 0x140088ec8
cmp byte [rsp + 0x44], 4
je 0x140088f4d
cmp byte [rsp + 0x44], 6
je 0x140088fd2
cmp byte [rsp + 0x44], 7
je 0x140089057
cmp byte [rsp + 0x44], 8
je 0x1400890df
jmp 0x14008915e
mov dword [rsp + 0x30], 0x40
cmp dword [rsp + 0x78], 0x40
ja 0x140088ef7
cmp qword [rsp + 0x70], 0
je 0x140088ef5
mov eax, dword [rsp + 0x78]
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x140088f48
mov rax, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, rax
call fcn.14007a540
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140088f1e
jmp 0x140089168
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call fcn.14007a730
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140088f40
jmp 0x140089168
mov dword [rsp + 0x78], reloc.WS2_32.dll_recv
jmp 0x140089168
mov dword [rsp + 0x30], 0x40
cmp dword [rsp + 0x78], 0x40
ja 0x140088f7c
cmp qword [rsp + 0x70], 0
je 0x140088f7a
mov eax, dword [rsp + 0x78]
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x140088fcd
mov rax, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, rax
call fcn.14007c160
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140088fa3
jmp 0x140089168
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call fcn.14007c440
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140088fc5
jmp 0x140089168
mov dword [rsp + 0x78], reloc.WS2_32.dll_sendto
jmp 0x140089168
mov dword [rsp + 0x30], 0x40
cmp dword [rsp + 0x78], 0x40
ja 0x140089001
cmp qword [rsp + 0x70], 0
je 0x140088fff
mov eax, dword [rsp + 0x78]
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x140089052
mov rax, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, rax
call fcn.140080370
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140089028
jmp 0x140089168
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call fcn.1400804a0
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x14008904a
jmp 0x140089168
mov dword [rsp + 0x78], 0x20
jmp 0x140089168
mov dword [rsp + 0x30], 0x80
cmp dword [rsp + 0x78], 0x80
ja 0x140089089
cmp qword [rsp + 0x70], 0
je 0x140089087
mov eax, dword [rsp + 0x78]
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x1400890da
mov rax, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, rax
call fcn.1400826e0
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x1400890b0
jmp 0x140089168
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call fcn.140082810
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x1400890d2
jmp 0x140089168
mov dword [rsp + 0x78], 0x30
jmp 0x140089168
mov dword [rsp + 0x30], 0x80
cmp dword [rsp + 0x78], 0x80
ja 0x140089111
cmp qword [rsp + 0x70], 0
je 0x14008910f
mov eax, dword [rsp + 0x78]
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14008915c
mov rax, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, rax
call fcn.140081fb0
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140089135
jmp 0x140089168
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call fcn.140082050
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x140089154
jmp 0x140089168
mov dword [rsp + 0x78], 0x40
jmp 0x140089168
mov eax, 0xffffff53
jmp 0x140089200
cmp dword [rsp + 0x34], 0
jne 0x1400891fc
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x78], eax
jae 0x1400891a4
mov eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov eax, eax
mov ecx, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x20]
add rdx, rcx
mov rcx, rdx
mov r8d, eax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rsp + 0x40], 0
jmp 0x1400891b8
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x40], eax
jae 0x1400891fc
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + rax]
xor eax, 0x5c
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + rax]
xor eax, 0x36
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x20]
mov byte [rdx + rcx], al
jmp 0x1400891ae
mov eax, dword [rsp + 0x34]
add rsp, 0x50
pop rdi
ret