Function at 0x14008708c
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 [0x1402ccee0]
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 0x1400873ca
lea eax, [r8 - 0x14]
cmp eax, 0x26fc
ja 0x1400873ca
lea eax, [rsi + 2]
cmp word [r9], ax
jne 0x1400873ca
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 0x1400873ca
mov ecx, dword [r14 + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, 0x2112a442
jne 0x1400873ca
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.140077538
mov edx, dword [rsp + 0x38]
cmp edx, 0x18
jle 0x140087587
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 0x1400873ca
mov r8d, 0x8028
cmp dword [rsp + 0x50], esi
je 0x1400871d8
cmp bx, r8w
jne 0x14008757a
movzx ecx, bx
mov r9d, 0x20
cmp ecx, r9d
ja 0x14008747e
je 0x140087425
sub ecx, 1
je 0x140087425
lea ebx, [r9 - 0x1c]
sub ecx, ebx
je 0x14008749e
sub ecx, 1
je 0x1400873f3
sub ecx, 2
je 0x14008723d
cmp ecx, 1
jne 0x14008753d
lea r8, [rbp - 0x58]
lea edx, [rbx + 8]
lea rcx, [r14 + 8]
call fcn.140077538
movzx r8d, r11w
add r8, r15
mov byte [r8 + r14 + 8], sil
jmp 0x140087539
mov eax, reloc.WS2_32.dll_sendto
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], eax
cmp r11w, ax
jne 0x14008753d
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14008728c
lea rdx, [rdi + 0x140]
lea r8, [rbp + 0x40]
call fcn.140086650
lea rbx, [rbp + 0x40]
mov dword [rsp + 0x44], 0x20
mov qword [rbp - 0x68], rbx
mov dword [rsp + 0x3c], 1
jmp 0x1400872b4
lea rdx, [r14 + 8]
cmp byte [rdx], 0xa
jae 0x1400872bb
movzx eax, byte [rdx]
mov rcx, qword [rdi + rax*8 + 0x198]
test rcx, rcx
je 0x1400872bb
mov rbx, qword [rcx + 8]
mov qword [rbp - 0x68], rbx
mov ebx, dword [rcx + 0x14]
mov dword [rsp + 0x44], ebx
mov ebx, 4
jmp 0x1400872ff
mov al, byte [rdx]
xor al, 0x80
cmp al, 0xa
jae 0x1400873ca
movzx eax, byte [rdx]
btc rax, 7
mov rax, qword [rdi + rax*8 + 0x1e8]
test rax, rax
je 0x1400873ca
movsxd rcx, dword [rax + 0x7c]
mov rax, qword [rax + 0x60]
mov rdx, qword [rax + rcx*8 + 0x198]
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 0x140087324
lea ecx, [rbx + r12]
call qword [sym.imp.WS2_32.dll_htons]
mov word [r14 + 2], ax
call fcn.1400ba220
mov rbx, rax
call fcn.14009eb20
mov r8d, dword [rsp + 0x44]
mov r9, rax
mov rdx, qword [rbp - 0x68]
mov rcx, rbx
mov qword [rsp + 0x20], rsi
call fcn.1400ba420
mov r8, r15
mov rdx, r14
mov rcx, rbx
call fcn.1400ba670
lea r8, [rsp + 0x54]
mov rcx, rbx
lea rdx, [rbp - 0x58]
call fcn.1400ba370
mov rcx, rbx
call fcn.1400ba1a0
movzx ecx, word [r15 + r14 + 0x18]
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, 0x8028
cmp ax, cx
jne 0x14008739b
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 0x1400873ca
mov rax, qword [rbp - 0x58]
cmp rax, qword [r15 + r14 + 4]
jne 0x1400873ca
mov rax, qword [rbp - 0x50]
cmp rax, qword [r15 + r14 + 0xc]
jne 0x1400873ca
mov eax, dword [rbp - 0x48]
cmp eax, dword [r15 + r14 + 0x14]
je 0x140087539
xor eax, eax
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.1401a5d00
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 0x14008753d
lea eax, [r12 + 0xc]
movsxd rcx, eax
cmp byte [rcx + r14], 0x3a
jne 0x14008753d
add r15, rbx
add r15, r14
mov qword [rsp + 0x30], r15
jmp 0x140087542
lea eax, [r12 + 5]
movsxd rcx, eax
cmp byte [rcx + r14], 1
jne 0x14008753d
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 0x140087542
mov r8d, 0x1221
xor ax, r8w
xor ecx, 0x42a41221
mov word [rbp - 0x7e], ax
mov dword [rbp - 0x7c], ecx
jmp 0x140087542
sub ecx, r8d
je 0x1400874f6
sub ecx, 1
je 0x1400874ec
sub ecx, 1
je 0x1400874d3
mov r8d, 2
cmp ecx, r8d
jne 0x14008753d
jmp 0x1400874a4
mov r8d, 2
lea eax, [r12 + 5]
movsxd rcx, eax
cmp byte [rcx + r14], 1
jne 0x14008753d
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 0x14008753d
mov dword [rsp + 0x48], 1
mov rcx, qword [r15 + r14 + 4]
call fcn.140078c68
mov qword [rsp + 0x58], rax
jmp 0x140087539
mov dword [rsp + 0x4c], 1
jmp 0x1400874db
mov eax, 4
cmp r11w, ax
jne 0x1400875c9
lea eax, [r12 + 8]
cmp eax, edx
jne 0x1400873ca
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.14008616c
xor eax, 0x5354554e
cmp eax, r11d
jne 0x1400875d3
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 0x140087562
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, r8d
add r12d, 4
add r12d, ecx
lea eax, [r12 + 4]
cmp eax, edx
jge 0x140087582
jmp 0x140087189
mov r15, qword [rsp + 0x30]
mov r12d, edx
mov r11, qword [rsp + 0x60]
cmp r12d, edx
jne 0x1400873ca
movzx r10d, word [rsp + 0x42]
mov eax, 0x110
lea r14d, [rax - 0x10]
and r10w, ax
jne 0x1400879d3
cmp dword [rsp + 0x3c], 1
jne 0x140087a6f
test r15, r15
je 0x1400875d3
cmp byte [r15], 0x61
movsx r15d, byte [r15]
jl 0x1400875dd
sub r15d, 0x61
jmp 0x1400875e1
test r11w, r11w
jne 0x1400873ca
mov eax, 1
jmp 0x1400873cc
sub r15d, 0x41
cmp r15d, 0xa
jge 0x1400875d3
movsxd r12, r15d
mov rdx, qword [rdi + r12*8 + 0x198]
test rdx, rdx
je 0x1400875d3
mov ebx, 0x1c
lea eax, [rbx - 0x1a]
lea r14d, [rbx - 0xc]
cmp word [r13], ax
jne 0x1400876ad
movsxd rax, dword [rdx + 0x88]
test eax, eax
jne 0x140087669
cmp qword [rdx + 0x78], rsi
jne 0x140087669
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 0x140087644
mov rax, qword [r9 + r8 + 8]
cmp rax, qword [r13 + 8]
je 0x1400876ad
cmp word [rdx], si
je 0x140087655
inc ecx
add rdx, rbx
cmp ecx, 8
jl 0x140087628
jmp 0x1400876ad
lea rcx, [r9 + r8]
mov rdx, rbx
mov r9, r14
mov r8, r13
call section..text
jmp 0x1400876ad
mov r8d, esi
test eax, eax
jle 0x1400876ad
movzx r10d, word [r13 + 2]
mov r11, rax
mov rcx, qword [rdx + 0x78]
mov r9, rsi
cmp word [rcx + 4], r10w
jne 0x14008768e
mov eax, dword [r13 + 4]
cmp dword [rcx], eax
je 0x14008769f
inc r8d
inc r9
add rcx, 6
cmp r9, r11
jge 0x1400876ad
jmp 0x14008767f
mov rax, qword [rdx + 0x80]
movsxd rcx, r8d
mov byte [rcx + rax], 1
mov rdx, qword [rdi + r12*8 + 0x198]
mov eax, esi
mov dword [rsp + 0x3c], eax
lea rcx, [rdx + 0xc0]
mov qword [rbp - 0x68], rcx
cmp word [rcx], si
je 0x140087722
movzx r9d, word [r13]
cmp word [rcx], r9w
jne 0x14008770e
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.1401a71d0
test eax, eax
je 0x14008774a
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rdi + r12*8 + 0x198]
inc eax
add rcx, rbx
mov dword [rsp + 0x3c], eax
mov qword [rbp - 0x68], rcx
cmp eax, 5
jl 0x1400876c6
jmp 0x14008774a
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 + 0x198]
cmp qword [rcx + 8], rsi
je 0x1400875d3
mov eax, dword [rcx + 0x90]
mov r14d, dword [rsp + 0x48]
cmp eax, 1
jne 0x140087771
test r14d, r14d
jne 0x140087785
mov edx, dword [rsp + 0x4c]
test eax, eax
jne 0x14008781d
test edx, edx
je 0x14008781d
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.14008678c
lea r14d, [rbx + rax]
jmp 0x1400878ff
cmp eax, 1
jne 0x14008783b
test edx, edx
je 0x14008783b
mov rcx, qword [rcx + 0x5b]
call fcn.140078c68
mov rbx, qword [rsp + 0x58]
cmp rax, rbx
jb 0x14008786f
jmp 0x140087840
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rdi + r12*8 + 0x198]
cmp dword [rcx + 0x90], esi
jne 0x1400879a6
test r14d, r14d
je 0x1400879a6
mov rcx, qword [rcx + 0x5b]
call fcn.140078c68
cmp rax, rbx
jb 0x1400879a6
movdqa xmm0, xmmword [0x1402acc30]
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.14008f724
mov r8, qword [rsp + 0x60]
lea rcx, [rbp - 0x30]
mov edx, 0x111
mov ebx, eax
call fcn.14008f544
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.14008f594
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.14008f594
add r14d, eax
lea r8, [rbp + 0x40]
mov edx, r14d
lea rcx, [rbp - 0x30]
mov r9d, ebx
call fcn.14008678c
add r14d, eax
mov edx, r14d
lea rcx, [rbp - 0x30]
call fcn.14008684c
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.140086e2c
mov rax, qword [rdi + r12*8 + 0x198]
cmp qword [rax + 0x78], rsi
je 0x1400875d3
cmp dword [rax + 0x88], esi
jle 0x1400875d3
test rax, rax
je 0x1400875d3
cmp dword [rax + 0x8c], 0xa
jge 0x1400875d3
cmp dword [rax + 0x98], esi
jge 0x1400875d3
mov edx, listen
lea rcx, [rbp - 0x68]
call fcn.1400b4cb0
mov rax, qword [rdi + r12*8 + 0x198]
mov r9, r13
mov byte [rbp - 0x68], r15b
xor r8d, r8d
mov edx, r15d
inc dword [rax + 0x8c]
mov rcx, qword [rdi + r12*8 + 0x198]
call fcn.14008805c
jmp 0x1400875d3
mov rax, qword [rdi + r12*8 + 0x198]
mov edx, r15d
cmp dword [rax + 0x90], esi
sete sil
mov dword [rax + 0x90], esi
mov rcx, qword [rdi + r12*8 + 0x198]
call fcn.140088738
jmp 0x1400875d3
cmp r10w, r14w
jne 0x140087a6f
cmp byte [r11], 0xa
ja 0x140087a6f
movsx rax, byte [r11]
mov rdx, qword [rdi + rax*8 + 0x198]
cmp dword [rdx + 0x90], esi
jne 0x140087a6f
cmp dword [rdx + 0x98], esi
jge 0x140087a6f
mov r9d, dword [rdx + 0x88]
mov ecx, esi
mov r12d, 2
test r9d, r9d
jle 0x140087a75
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 0x140087a4c
mov rax, qword [r13]
cmp rax, qword [rbp - 0x68]
jne 0x140087a4c
cmp qword [r13 + 8], rbx
je 0x140087a59
inc ecx
add r8, 6
cmp ecx, r9d
jge 0x140087a75
jmp 0x140087a1b
mov rax, qword [rdx + 0x80]
mov r13d, 1
movsxd rcx, ecx
mov byte [rcx + rax], r13b
jmp 0x140087a7b
mov r12d, 2
mov r13d, 1
cmp r10w, r14w
jne 0x140087d28
mov al, byte [r11]
xor al, 0x80
cmp al, 0xa
jae 0x140087ad6
movzx ebx, byte [r11]
mov rcx, qword [rdi + 0x48]
btc rbx, 7
mov rdx, qword [rdi + rbx*8 + 0x1e8]
add rdx, r13
call fcn.14007d6d8
mov rdx, qword [rdi + rbx*8 + 0x1e8]
lea r9, [0x140086ca8]
mov rcx, qword [rdi + 0x48]
add rdx, r13
mov r8d, 0x3a98
mov qword [rsp + 0x20], rsi
call fcn.14007d3b4
mov r11, qword [rsp + 0x60]
mov rax, qword [r11]
cmp rax, qword [rdi + 0x160]
jne 0x140087d28
mov eax, dword [r11 + 8]
cmp eax, dword [rdi + 0x168]
jne 0x140087d28
mov rcx, qword [rdi + 0x48]
mov rdx, rdi
call fcn.14007d6d8
mov ecx, dword [rdi + 0x13c]
test ecx, ecx
je 0x140087bef
sub ecx, 1
je 0x140087b7a
sub ecx, 1
je 0x140087b32
cmp ecx, 1
jne 0x140087d28
lea r8, [rdi + 0x94]
lea edx, [rcx + 3]
jmp 0x140087d20
mov r9d, reloc.WS2_32.dll_recv
lea rcx, [rdi + 0xcc]
lea r8, [rbp - 0x80]
lea edx, [r9 + 0xc]
call section..text
movzx eax, word [rdi + 0xce]
lea r8, [rdi + 0x94]
mov rcx, rdi
cmp word [rdi + 0xb2], ax
jne 0x140087b70
mov edx, 4
jmp 0x140087d23
mov edx, 3
jmp 0x140087d23
mov r9d, reloc.WS2_32.dll_recv
lea rcx, [rdi + 0xb0]
lea r8, [rbp - 0x80]
lea edx, [r9 + 0xc]
call section..text
movzx eax, word [rdi + 0xb2]
mov rcx, rdi
cmp word [rdi + 0x96], ax
jne 0x140087bb6
lea r8, [rdi + 0x94]
mov edx, r12d
jmp 0x140087d23
lea rdx, [rdi + 0x120]
mov dword [rdi + 0x13c], r12d
xor r8d, r8d
call fcn.1400868c0
mov rcx, qword [rdi + 0x48]
lea r9, [0x14008e450]
mov r8d, 0x7d0
mov qword [rsp + 0x20], rsi
mov rdx, rdi
call fcn.14007d3b4
jmp 0x140087d28
cmp word [rbp - 0x80], r12w
jne 0x140087d1b
mov ebx, 0x1c
lea r14d, [rbx - 0xc]
cmp word [rsp + 0x68], r12w
jne 0x140087c45
lea rcx, [rdi + 0x120]
mov r9d, r14d
lea r8, [rsp + 0x68]
mov edx, ebx
call section..text
lea rcx, [rdi + 0x104]
mov r9d, r14d
lea r8, [rsp + 0x68]
mov edx, ebx
call section..text
movzx eax, word [rdi + 0xea]
mov word [rdi + 0x106], ax
lea r15, [rdi + 0x94]
mov r9, r14
mov rcx, r15
lea r8, [rbp - 0x80]
mov rdx, rbx
call section..text
mov eax, dword [rdi + 0x6c]
mov ebx, esi
test eax, eax
jne 0x140087ca5
lea rcx, [rbp - 0x68]
mov qword [rbp - 0x68], rsi
call fcn.140078c94
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x140087cbd
cdqe
test rax, rax
jle 0x140087c9e
mov r8d, dword [rdi + 0x98]
lea rdx, [rcx + 4]
cmp r8d, dword [rdx]
cmove ebx, r13d
add rdx, r14
sub rax, r13
jne 0x140087c8f
call fcn.1401ad038
jmp 0x140087cb0
cmp dword [rdi + 0x98], eax
jne 0x140087cbd
mov ebx, r13d
cmp ebx, r13d
jne 0x140087cbd
mov r8, r15
mov edx, r13d
jmp 0x140087d20
cmp byte [rdi + 0x16b], sil
jne 0x140087cd0
mov r8, r15
mov edx, listen
jmp 0x140087d20
cmp word [rsp + 0x68], r12w
jne 0x140087d11
mov rcx, qword [rdi + 0x48]
lea r9, [0x14008e450]
mov r8d, 0x7d0
mov dword [rdi + 0x13c], r13d
mov rdx, rdi
mov qword [rsp + 0x20], rsi
call fcn.14007d3b4
lea rdx, [rdi + 0x104]
xor r8d, r8d
mov rcx, rdi
call fcn.1400868c0
jmp 0x140087d28
mov r8, r15
mov edx, 0xa
jmp 0x140087d20
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140086fc4
mov eax, r13d
jmp 0x1400873cc