Function at 0x140080598
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x14021c510]
xor rax, rsp
mov qword [rbp + 0x68], rax
xor esi, esi
mov r13, r9
mov qword [rsp + 0x30], rsi
mov ebx, r8d
mov dword [rsp + 0x3c], esi
mov r14, rdx
mov dword [rsp + 0x4c], esi
mov rdi, rcx
mov dword [rsp + 0x48], esi
lea r12d, [rsi + 0x14]
mov qword [rsp + 0x58], rsi
mov r15d, esi
mov dword [rsp + 0x50], esi
test rdx, rdx
je 0x1400808d6
lea eax, [r8 - 0x14]
cmp eax, 0x26fc
ja 0x1400808d6
lea eax, [rsi + 2]
cmp word [r9], ax
jne 0x1400808d6
movzx ecx, word [rdx]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, word [r14 + 2]
mov word [rsp + 0x42], ax
call qword [sym.imp.WS2_32.dll_ntohs]
add ax, r12w
mov word [rsp + 0x40], ax
movzx eax, ax
mov dword [rsp + 0x38], eax
cmp eax, ebx
jne 0x1400808d6
mov ecx, dword [r14 + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, 0x2112a442
jne 0x1400808d6
xor eax, eax
lea r11, [r14 + 8]
mov rcx, r11
mov qword [rbp - 0x80], rax
lea r8, [rbp - 0x58]
mov qword [rbp - 0x78], rax
lea edx, [rsi + 0xc]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x60], r11
call fcn.1400715a8
mov edx, dword [rsp + 0x38]
cmp edx, 0x18
jle 0x140080a93
movsxd r15, r12d
movzx ecx, word [r15 + r14]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, word [r15 + r14 + 2]
movzx ebx, ax
call qword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [rsp + 0x38]
movzx r11d, ax
mov eax, r11d
mov dword [rbp - 0x70], eax
add eax, 4
add eax, r12d
cmp eax, edx
jg 0x1400808d6
mov r8d, 0x8028
cmp dword [rsp + 0x50], esi
je 0x1400806e4
cmp bx, r8w
jne 0x140080a86
movzx ecx, bx
mov r9d, 0x20
cmp ecx, r9d
ja 0x14008098a
je 0x140080931
sub ecx, 1
je 0x140080931
lea ebx, [r9 - 0x1c]
sub ecx, ebx
je 0x1400809aa
sub ecx, 1
je 0x1400808ff
sub ecx, 2
je 0x140080749
cmp ecx, 1
jne 0x140080a49
lea r8, [rbp - 0x58]
lea edx, [rbx + 8]
lea rcx, [r14 + 8]
call fcn.1400715a8
movzx r8d, r11w
add r8, r15
mov byte [r8 + r14 + 8], sil
jmp 0x140080a45
mov eax, reloc.WS2_32.dll_sendto
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], eax
cmp r11w, ax
jne 0x140080a49
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140080798
lea rdx, [rdi + 0x138]
lea r8, [rbp + 0x40]
call fcn.14007fb60
lea rbx, [rbp + 0x40]
mov dword [rsp + 0x44], 0x20
mov qword [rbp - 0x68], rbx
mov dword [rsp + 0x3c], 1
jmp 0x1400807c0
lea rdx, [r14 + 8]
cmp byte [rdx], 0xa
jae 0x1400807c7
movzx eax, byte [rdx]
mov rcx, qword [rdi + rax*8 + 0x190]
test rcx, rcx
je 0x1400807c7
mov rbx, qword [rcx + 8]
mov qword [rbp - 0x68], rbx
mov ebx, dword [rcx + 0x14]
mov dword [rsp + 0x44], ebx
mov ebx, 4
jmp 0x14008080b
mov al, byte [rdx]
xor al, 0x80
cmp al, 0xa
jae 0x1400808d6
movzx eax, byte [rdx]
btc rax, 7
mov rax, qword [rdi + rax*8 + 0x1e0]
test rax, rax
je 0x1400808d6
movsxd rcx, dword [rax + 0x74]
mov rax, qword [rax + 0x58]
mov rdx, qword [rax + rcx*8 + 0x190]
mov rax, qword [rdx + 8]
mov qword [rbp - 0x68], rax
mov eax, dword [rdx + 0x14]
mov dword [rsp + 0x44], eax
movzx ecx, word [r15 + r14 + 0x18]
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, 0x8028
cmp ax, cx
jne 0x140080830
lea ecx, [rbx + r12]
call qword [sym.imp.WS2_32.dll_htons]
mov word [r14 + 2], ax
call fcn.1400b00a0
mov rbx, rax
call fcn.140097010
mov r8d, dword [rsp + 0x44]
mov r9, rax
mov rdx, qword [rbp - 0x68]
mov rcx, rbx
mov qword [rsp + 0x20], rsi
call fcn.1400b02e0
mov r8, r15
mov rdx, r14
mov rcx, rbx
call fcn.1400b0550
lea r8, [rsp + 0x54]
mov rcx, rbx
lea rdx, [rbp - 0x58]
call fcn.1400b0230
mov rcx, rbx
call fcn.1400b0020
movzx ecx, word [r15 + r14 + 0x18]
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, 0x8028
cmp ax, cx
jne 0x1400808a7
movzx ecx, word [rsp + 0x40]
sub cx, 0x14
call qword [sym.imp.WS2_32.dll_htons]
mov word [r14 + 2], ax
mov eax, reloc.WS2_32.dll_sendto
cmp dword [rsp + 0x54], eax
jne 0x1400808d6
mov rax, qword [rbp - 0x58]
cmp rax, qword [r15 + r14 + 4]
jne 0x1400808d6
mov rax, qword [rbp - 0x50]
cmp rax, qword [r15 + r14 + 0xc]
jne 0x1400808d6
mov eax, dword [rbp - 0x48]
cmp eax, dword [r15 + r14 + 0x14]
je 0x140080a45
xor eax, eax
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.140168070
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, 9
cmp r11w, ax
jb 0x140080a49
lea eax, [r12 + 0xc]
movsxd rcx, eax
cmp byte [rcx + r14], 0x3a
jne 0x140080a49
add r15, rbx
add r15, r14
mov qword [rsp + 0x30], r15
jmp 0x140080a4e
lea eax, [r12 + 5]
movsxd rcx, eax
cmp byte [rcx + r14], 1
jne 0x140080a49
mov ecx, dword [r15 + r14 + 8]
mov eax, 2
mov word [rbp - 0x80], ax
movzx eax, word [r15 + r14 + 6]
mov r15, qword [rsp + 0x30]
mov word [rbp - 0x7e], ax
mov dword [rbp - 0x7c], ecx
cmp bx, r9w
jne 0x140080a4e
mov r8d, 0x1221
xor ax, r8w
xor ecx, 0x42a41221
mov word [rbp - 0x7e], ax
mov dword [rbp - 0x7c], ecx
jmp 0x140080a4e
sub ecx, r8d
je 0x140080a02
sub ecx, 1
je 0x1400809f8
sub ecx, 1
je 0x1400809df
mov r8d, 2
cmp ecx, r8d
jne 0x140080a49
jmp 0x1400809b0
mov r8d, 2
lea eax, [r12 + 5]
movsxd rcx, eax
cmp byte [rcx + r14], 1
jne 0x140080a49
movzx eax, word [r15 + r14 + 6]
mov word [rsp + 0x6a], ax
mov eax, dword [r15 + r14 + 8]
mov dword [rsp + 0x6c], eax
mov word [rsp + 0x68], r8w
jmp 0x140080a49
mov dword [rsp + 0x48], 1
mov rcx, qword [r15 + r14 + 4]
call fcn.140072c94
mov qword [rsp + 0x58], rax
jmp 0x140080a45
mov dword [rsp + 0x4c], 1
jmp 0x1400809e7
mov eax, 4
cmp r11w, ax
jne 0x140080ad5
lea eax, [r12 + 8]
cmp eax, edx
jne 0x1400808d6
mov ecx, dword [r15 + r14 + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
mov edx, r12d
mov rcx, r14
mov r11d, eax
call fcn.14007f67c
xor eax, 0x5354554e
cmp eax, r11d
jne 0x140080adf
mov edx, dword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov r8d, dword [rbp - 0x70]
mov ecx, 4
mov eax, r8d
and eax, 3
sub ecx, eax
and ecx, 0x80000003
jge 0x140080a6e
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, r8d
add r12d, 4
add r12d, ecx
lea eax, [r12 + 4]
cmp eax, edx
jge 0x140080a8e
jmp 0x140080695
mov r15, qword [rsp + 0x30]
mov r12d, edx
mov r11, qword [rsp + 0x60]
cmp r12d, edx
jne 0x1400808d6
movzx r10d, word [rsp + 0x42]
mov eax, 0x110
lea r14d, [rax - 0x10]
and r10w, ax
jne 0x140080edf
cmp dword [rsp + 0x3c], 1
jne 0x140080f7b
test r15, r15
je 0x140080adf
cmp byte [r15], 0x61
movsx r15d, byte [r15]
jl 0x140080ae9
sub r15d, 0x61
jmp 0x140080aed
test r11w, r11w
jne 0x1400808d6
mov eax, 1
jmp 0x1400808d8
sub r15d, 0x41
cmp r15d, 0xa
jge 0x140080adf
movsxd r12, r15d
mov rdx, qword [rdi + r12*8 + 0x190]
test rdx, rdx
je 0x140080adf
mov ebx, 0x1c
lea eax, [rbx - 0x1a]
lea r14d, [rbx - 0xc]
cmp word [r13], ax
jne 0x140080bb9
movsxd rax, dword [rdx + 0x88]
test eax, eax
jne 0x140080b75
cmp qword [rdx + 0x78], rsi
jne 0x140080b75
mov r8, qword [rdx + 0x20]
mov ecx, esi
mov rdx, r8
movsxd rax, ecx
imul r9, rax, 0x1c
mov rax, qword [r9 + r8]
cmp rax, qword [r13]
jne 0x140080b50
mov rax, qword [r9 + r8 + 8]
cmp rax, qword [r13 + 8]
je 0x140080bb9
cmp word [rdx], si
je 0x140080b61
inc ecx
add rdx, rbx
cmp ecx, 8
jl 0x140080b34
jmp 0x140080bb9
lea rcx, [r9 + r8]
mov rdx, rbx
mov r9, r14
mov r8, r13
call section..text
jmp 0x140080bb9
mov r8d, esi
test eax, eax
jle 0x140080bb9
movzx r10d, word [r13 + 2]
mov r11, rax
mov rcx, qword [rdx + 0x78]
mov r9, rsi
cmp word [rcx + 4], r10w
jne 0x140080b9a
mov eax, dword [r13 + 4]
cmp dword [rcx], eax
je 0x140080bab
inc r8d
inc r9
add rcx, 6
cmp r9, r11
jge 0x140080bb9
jmp 0x140080b8b
mov rax, qword [rdx + 0x80]
movsxd rcx, r8d
mov byte [rcx + rax], 1
mov rdx, qword [rdi + r12*8 + 0x190]
mov eax, esi
mov dword [rsp + 0x3c], eax
lea rcx, [rdx + 0xc0]
mov qword [rbp - 0x68], rcx
cmp word [rcx], si
je 0x140080c2e
movzx r9d, word [r13]
cmp word [rcx], r9w
jne 0x140080c1a
cmp r9w, 0x17
cdqe
mov r8, r14
cmove r8, rbx
add rdx, 0xc0
imul rcx, rax, 0x1c
add rcx, rdx
mov rdx, r13
call fcn.140169540
test eax, eax
je 0x140080c56
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rdi + r12*8 + 0x190]
inc eax
add rcx, rbx
mov dword [rsp + 0x3c], eax
mov qword [rbp - 0x68], rcx
cmp eax, 5
jl 0x140080bd2
jmp 0x140080c56
cmp word [r13], 0x17
mov r8, r13
cdqe
cmove r14, rbx
add rdx, 0xc0
imul rcx, rax, 0x1c
mov r9, r14
add rcx, rdx
mov rdx, rbx
call section..text
mov rcx, qword [rdi + r12*8 + 0x190]
cmp qword [rcx + 8], rsi
je 0x140080adf
mov eax, dword [rcx + 0x90]
mov r14d, dword [rsp + 0x48]
cmp eax, 1
jne 0x140080c7d
test r14d, r14d
jne 0x140080c91
mov edx, dword [rsp + 0x4c]
test eax, eax
jne 0x140080d29
test edx, edx
je 0x140080d29
mov ecx, 0x101
call qword [sym.imp.WS2_32.dll_htons]
mov ecx, 0x2112a442
mov word [rbp - 0x30], ax
call qword [sym.imp.WS2_32.dll_htonl]
mov r8, qword [rsp + 0x60]
lea rcx, [rbp - 0x28]
mov r9d, listen
mov dword [rbp - 0x2c], eax
lea edx, [r9 + 0x5a]
call section..text
mov ebx, 0x20
mov ecx, ebx
call qword [sym.imp.WS2_32.dll_htons]
lea ecx, [rbx - 0x18]
mov word [rbp - 0x1c], ax
call qword [sym.imp.WS2_32.dll_htons]
lea ecx, [rbx - 0x1f]
mov word [rbp - 0x1a], ax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x18], ax
mov ecx, 0x1221
movzx eax, word [r13 + 2]
lea r8, [rbp + 0x40]
xor ax, cx
mov r9d, ebx
mov word [rbp - 0x16], ax
lea rcx, [rbp - 0x30]
mov eax, dword [r13 + 4]
mov edx, ebx
xor eax, 0x42a41221
mov dword [rbp - 0x14], eax
call fcn.14007fc9c
lea r14d, [rbx + rax]
jmp 0x140080e0b
cmp eax, 1
jne 0x140080d47
test edx, edx
je 0x140080d47
mov rcx, qword [rcx + 0x5b]
call fcn.140072c94
mov rbx, qword [rsp + 0x58]
cmp rax, rbx
jb 0x140080d7b
jmp 0x140080d4c
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rdi + r12*8 + 0x190]
cmp dword [rcx + 0x90], esi
jne 0x140080eb2
test r14d, r14d
je 0x140080eb2
mov rcx, qword [rcx + 0x5b]
call fcn.140072c94
cmp rax, rbx
jb 0x140080eb2
movdqa xmm0, xmmword [0x140200210]
lea rdx, [rbp - 0x58]
mov r8, qword [rsp + 0x60]
mov rcx, r13
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x78], reloc.WS2_32.dll_WSACleanup
call fcn.140088c08
mov r8, qword [rsp + 0x60]
lea rcx, [rbp - 0x30]
mov edx, 0x111
mov ebx, eax
call fcn.140088a28
mov dword [rsp + 0x20], ebx
lea r9, [rbp - 0x58]
mov ebx, 0x20
lea rcx, [rbp - 0x30]
mov r8d, ebx
mov edx, eax
mov r14d, eax
call fcn.140088a78
add r14d, eax
mov dword [rsp + 0x20], reloc.WS2_32.dll_recvfrom
mov edx, r14d
lea r9, [rsp + 0x68]
lea r8d, [rbx - 0x17]
lea rcx, [rbp - 0x30]
call fcn.140088a78
add r14d, eax
lea r8, [rbp + 0x40]
mov edx, r14d
lea rcx, [rbp - 0x30]
mov r9d, ebx
call fcn.14007fc9c
add r14d, eax
mov edx, r14d
lea rcx, [rbp - 0x30]
call fcn.14007fd5c
add r14d, eax
lea rdx, [rbp - 0x30]
mov eax, 2
mov r9d, r14d
mov dword [rsp + 0x28], eax
mov rcx, rdi
mov qword [rsp + 0x20], r13
call fcn.140080338
mov rax, qword [rdi + r12*8 + 0x190]
cmp qword [rax + 0x78], rsi
je 0x140080adf
cmp dword [rax + 0x88], esi
jle 0x140080adf
test rax, rax
je 0x140080adf
cmp dword [rax + 0x8c], 0xa
jge 0x140080adf
cmp dword [rax + 0x98], esi
jge 0x140080adf
mov edx, listen
lea rcx, [rbp - 0x68]
call fcn.1400ab9d0
mov rax, qword [rdi + r12*8 + 0x190]
mov r9, r13
mov byte [rbp - 0x68], r15b
xor r8d, r8d
mov edx, r15d
inc dword [rax + 0x8c]
mov rcx, qword [rdi + r12*8 + 0x190]
call fcn.140081568
jmp 0x140080adf
mov rax, qword [rdi + r12*8 + 0x190]
mov edx, r15d
cmp dword [rax + 0x90], esi
sete sil
mov dword [rax + 0x90], esi
mov rcx, qword [rdi + r12*8 + 0x190]
call fcn.140081c3c
jmp 0x140080adf
cmp r10w, r14w
jne 0x140080f7b
cmp byte [r11], 0xa
ja 0x140080f7b
movsx rax, byte [r11]
mov rdx, qword [rdi + rax*8 + 0x190]
cmp dword [rdx + 0x90], esi
jne 0x140080f7b
cmp dword [rdx + 0x98], esi
jge 0x140080f7b
mov r9d, dword [rdx + 0x88]
mov ecx, esi
mov r12d, 2
test r9d, r9d
jle 0x140080f81
mov r8, qword [rdx + 0x78]
mov eax, dword [r8]
xor ebx, ebx
mov qword [rbp - 0x68], rbx
mov dword [rbp - 0x64], eax
movzx eax, word [r8 + 4]
mov word [rbp - 0x66], ax
mov word [rbp - 0x68], r12w
cmp r12w, word [r13]
jne 0x140080f58
mov rax, qword [r13]
cmp rax, qword [rbp - 0x68]
jne 0x140080f58
cmp qword [r13 + 8], rbx
je 0x140080f65
inc ecx
add r8, 6
cmp ecx, r9d
jge 0x140080f81
jmp 0x140080f27
mov rax, qword [rdx + 0x80]
mov r13d, 1
movsxd rcx, ecx
mov byte [rcx + rax], r13b
jmp 0x140080f87
mov r12d, 2
mov r13d, 1
cmp r10w, r14w
jne 0x140081234
mov al, byte [r11]
xor al, 0x80
cmp al, 0xa
jae 0x140080fe2
movzx ebx, byte [r11]
mov rcx, qword [rdi + 0x40]
btc rbx, 7
mov rdx, qword [rdi + rbx*8 + 0x1e0]
add rdx, r13
call fcn.1400771e0
mov rdx, qword [rdi + rbx*8 + 0x1e0]
lea r9, [0x1400801b8]
mov rcx, qword [rdi + 0x40]
add rdx, r13
mov r8d, 0x3a98
mov qword [rsp + 0x20], rsi
call fcn.140076ebc
mov r11, qword [rsp + 0x60]
mov rax, qword [r11]
cmp rax, qword [rdi + 0x158]
jne 0x140081234
mov eax, dword [r11 + 8]
cmp eax, dword [rdi + 0x160]
jne 0x140081234
mov rcx, qword [rdi + 0x40]
mov rdx, rdi
call fcn.1400771e0
mov ecx, dword [rdi + 0x134]
test ecx, ecx
je 0x1400810fb
sub ecx, 1
je 0x140081086
sub ecx, 1
je 0x14008103e
cmp ecx, 1
jne 0x140081234
lea r8, [rdi + 0x8c]
lea edx, [rcx + 3]
jmp 0x14008122c
mov r9d, reloc.WS2_32.dll_recv
lea rcx, [rdi + 0xc4]
lea r8, [rbp - 0x80]
lea edx, [r9 + 0xc]
call section..text
movzx eax, word [rdi + 0xc6]
lea r8, [rdi + 0x8c]
mov rcx, rdi
cmp word [rdi + 0xaa], ax
jne 0x14008107c
mov edx, 4
jmp 0x14008122f
mov edx, 3
jmp 0x14008122f
mov r9d, reloc.WS2_32.dll_recv
lea rcx, [rdi + 0xa8]
lea r8, [rbp - 0x80]
lea edx, [r9 + 0xc]
call section..text
movzx eax, word [rdi + 0xaa]
mov rcx, rdi
cmp word [rdi + 0x8e], ax
jne 0x1400810c2
lea r8, [rdi + 0x8c]
mov edx, r12d
jmp 0x14008122f
lea rdx, [rdi + 0x118]
mov dword [rdi + 0x134], r12d
xor r8d, r8d
call fcn.14007fdd0
mov rcx, qword [rdi + 0x40]
lea r9, [0x140087934]
mov r8d, 0x7d0
mov qword [rsp + 0x20], rsi
mov rdx, rdi
call fcn.140076ebc
jmp 0x140081234
cmp word [rbp - 0x80], r12w
jne 0x140081227
mov ebx, 0x1c
lea r14d, [rbx - 0xc]
cmp word [rsp + 0x68], r12w
jne 0x140081151
lea rcx, [rdi + 0x118]
mov r9d, r14d
lea r8, [rsp + 0x68]
mov edx, ebx
call section..text
lea rcx, [rdi + 0xfc]
mov r9d, r14d
lea r8, [rsp + 0x68]
mov edx, ebx
call section..text
movzx eax, word [rdi + 0xe2]
mov word [rdi + 0xfe], ax
lea r15, [rdi + 0x8c]
mov r9, r14
mov rcx, r15
lea r8, [rbp - 0x80]
mov rdx, rbx
call section..text
mov eax, dword [rdi + 0x64]
mov ebx, esi
test eax, eax
jne 0x1400811b1
lea rcx, [rbp - 0x68]
mov qword [rbp - 0x68], rsi
call fcn.140072cc0
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1400811c9
cdqe
test rax, rax
jle 0x1400811aa
mov r8d, dword [rdi + 0x90]
lea rdx, [rcx + 4]
cmp r8d, dword [rdx]
cmove ebx, r13d
add rdx, r14
sub rax, r13
jne 0x14008119b
call fcn.14016f3a8
jmp 0x1400811bc
cmp dword [rdi + 0x90], eax
jne 0x1400811c9
mov ebx, r13d
cmp ebx, r13d
jne 0x1400811c9
mov r8, r15
mov edx, r13d
jmp 0x14008122c
cmp byte [rdi + 0x163], sil
jne 0x1400811dc
mov r8, r15
mov edx, listen
jmp 0x14008122c
cmp word [rsp + 0x68], r12w
jne 0x14008121d
mov rcx, qword [rdi + 0x40]
lea r9, [0x140087934]
mov r8d, 0x7d0
mov dword [rdi + 0x134], r13d
mov rdx, rdi
mov qword [rsp + 0x20], rsi
call fcn.140076ebc
lea rdx, [rdi + 0xfc]
xor r8d, r8d
mov rcx, rdi
call fcn.14007fdd0
jmp 0x140081234
mov r8, r15
mov edx, 0xa
jmp 0x14008122c
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400804d0
mov eax, r13d
jmp 0x1400808d8