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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2e0
mov rax, qword [0x1402e0068]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov rax, qword [rsp + 0x340]
mov r14, qword [rsp + 0x360]
lea edi, [r8 + 0x6c]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x368]
mov rbx, rcx
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x370]
xor r15d, r15d
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x378]
mov r12d, reloc.WS2_32.dll_sendto
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], r9
mov dword [rsp + 0x58], r8d
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x78], r15d
mov dword [rsp + 0x50], edi
mov ebp, r12d
mov ecx, edi
mov rsi, rbx
lea r13, [rsp + 0xa0]
test edi, edi
js 0x14009f402
test rbx, rbx
je 0x14009f402
nop word [rax + rax]
test ecx, ecx
jle 0x14009ed4a
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x14009ed4a
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x14009ed30
jmp 0x14009f402
test rsi, rsi
je 0x14009f402
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, ebp
jl 0x14009ed70
movsxd r15, ecx
add r15, qword [rsi + 0x10]
jne 0x14009edc4
jmp 0x14009f402
test ebp, ebp
jle 0x14009eda6
mov eax, dword [rsi + 0x18]
movsxd rdx, ecx
mov edi, ebp
sub eax, ecx
mov rcx, r13
cmp eax, ebp
cmovl edi, eax
add rdx, qword [rsi + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e75a0
mov rsi, qword [rsi]
sub ebp, edi
add r13, rbx
mov ecx, r15d
test rsi, rsi
jne 0x14009ed70
jmp 0x14009edab
test rsi, rsi
jne 0x14009edb3
test ebp, ebp
jg 0x14009f402
mov rbx, qword [rsp + 0x68]
mov edi, dword [rsp + 0x50]
lea r15, [rsp + 0xa0]
cmp byte [r15], 1
jne 0x14009f402
movzx ecx, word [r15 + 2]
call qword [sym.imp.WS2_32.dll_ntohs]
mov rsi, rbx
lea rbp, [rsp + 0xb8]
movzx r13d, ax
add r13d, 3
and r13d, 0xfffffffc
add r13d, edi
mov ecx, r13d
js 0x14009f402
nop dword [rax]
test ecx, ecx
jle 0x14009ee1a
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x14009ee1a
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x14009ee00
jmp 0x14009f402
test rsi, rsi
je 0x14009f402
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x14009ee40
movsxd r12, ecx
add r12, qword [rsi + 0x10]
jne 0x14009ee8f
jmp 0x14009f402
test r12d, r12d
jle 0x14009ee79
mov eax, dword [rsi + 0x18]
movsxd rdx, ecx
mov edi, r12d
sub eax, ecx
mov rcx, rbp
cmp eax, r12d
cmovl edi, eax
add rdx, qword [rsi + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e75a0
mov rsi, qword [rsi]
sub r12d, edi
add rbp, rbx
xor ecx, ecx
test rsi, rsi
jne 0x14009ee40
jmp 0x14009ee7e
test rsi, rsi
jne 0x14009ee87
test r12d, r12d
jg 0x14009f402
lea r12, [rsp + 0xb8]
cmp byte [r12], 2
jne 0x14009f402
mov eax, dword [rsp + 0x358]
mov r9d, dword [rsp + 0x58]
movzx ecx, word [r12 + 0xc]
add r9d, eax
mov dword [rsp + 0x60], r9d
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [r12 + 0x10]
movzx esi, ax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [r12 + 4]
mov edi, eax
call qword [sym.imp.WS2_32.dll_ntohl]
lea rcx, [0x1402e8108]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [r14 + 0x340]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
lea r8, [rsp + 0x78]
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], rax
mov word [rsp + 0x38], ax
mov word [rsp + 0x30], si
xor esi, esi
mov r9d, ebx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edi
mov rdi, qword [rsp + 0x88]
mov rdx, rdi
mov rcx, r14
call fcn.14007ecf0
lea rcx, [0x1402e8108]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [r14 + 0x340]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
jne 0x14009efc5
lea ecx, [rsi + 4]
lea rdx, [0x14028e586]
call fcn.140097b70
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x50]
xor edx, edx
mov rbx, rax
mov dword [rsp + 0x50], esi
call fcn.140096ce0
test eax, eax
je 0x14009ef8e
test rbx, rbx
je 0x14009f402
mov rcx, rbx
call fcn.1400795b0
jmp 0x14009f402
mov r9d, dword [rsp + 0x50]
mov r8, qword [rsp + 0x348]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
mov word [rsp + 0x38], si
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rbx
mov byte [rsp + 0x20], 6
call fcn.1400b5530
jmp 0x14009f402
mov rbp, qword [rsp + 0x350]
movzx eax, byte [rbp + 0x61]
mov byte [rbx + 0x72c], al
movzx eax, byte [rbp + 0x60]
mov byte [rbx + 0x72e], al
movzx eax, byte [rbp + 0x5f]
mov byte [rbx + 0x72d], al
movzx eax, byte [rbp + 0x62]
mov byte [rbx + 0x72b], al
movzx eax, byte [rbp + 0x5c]
cmp byte [rbx + 0x728], al
jne 0x14009f380
movzx eax, byte [rbp + 0x5d]
cmp byte [rbx + 0x729], al
jne 0x14009f380
movzx eax, byte [rbp + 0x5e]
cmp byte [rbx + 0x72a], al
jne 0x14009f380
movzx eax, byte [rbp + 0x63]
mov byte [rbx + 0x723], al
mov ecx, dword [r12 + 8]
call qword [sym.imp.WS2_32.dll_ntohl]
mov rdx, rbx
mov rcx, r15
mov dword [rbx + 0x588], eax
call fcn.14009aa20
test eax, eax
jns 0x14009f05a
mov r9d, 0x10000013
jmp 0x14009f3f4
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
mov word [rsp + 0x38], si
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
add r8d, 0x14
mov rcx, rbx
mov r9d, r13d
mov rdx, r15
call fcn.1400821e0
test eax, eax
jns 0x14009f0a6
mov r9d, 0x10000014
jmp 0x14009f3f4
mov eax, dword [rsp + 0x60]
lea r8d, [r13 + 0x14]
mov rdx, r15
sub eax, r13d
mov rcx, rbx
lea r9d, [rax - 0x14]
mov dword [rsp + 0x60], eax
call fcn.1400bffb0
cmp dword [rsp + 0x380], esi
je 0x14009f118
mov r8d, dword [rsp + 0x390]
cmp r8d, 0x200
ja 0x14009f129
mov edi, dword [rsp + 0x388]
lea r9, [rsp + 0xd0]
mov rcx, r15
mov edx, edi
call fcn.140091c80
test rax, rax
je 0x14009f129
mov r9d, edi
mov r8, r15
mov rdx, rax
mov rcx, rbx
call fcn.1400c0750
test eax, eax
jne 0x14009f129
mov byte [rbx + 0x701], 1
cmp dword [rbp + 0x50], 4
je 0x14009f134
mov r9d, 0x10000016
jmp 0x14009f3f4
mov r9d, 0x10000015
jmp 0x14009f3f4
and dword [rbx + 0x58], 0xffffff88
or dword [rbx + 0x58], 8
mov rcx, rbx
call fcn.14009a3a0
mov esi, 1
mov eax, esi
lock xadd dword [0x1402e8388], eax
mov ecx, esi
lock xadd dword [0x1402e8378], ecx
mov rax, qword [rsp + 0x90]
mov dword [rax], esi
mov rdx, qword [rbx + 8]
mov eax, dword [rdx + 0x158]
test al, 2
jne 0x14009f17b
bt eax, 0x16
jae 0x14009f1b0
test byte [r14 + 0x158], 8
jne 0x14009f1b0
prefetchw byte [rdx + 0x158]
nop dword [rax]
mov eax, dword [rdx + 0x158]
mov ecx, eax
bts ecx, 0x15
lock cmpxchg dword [rdx + 0x158], ecx
test eax, eax
je 0x14009f190
mov rcx, qword [rbx]
call fcn.140074690
mov r12d, dword [rbx + 0x5ec]
test r12d, r12d
je 0x14009f256
mov eax, dword [r14 + 0x150]
bt rax, 9
jae 0x14009f256
bt dword [rbx + 0x58], 9
jb 0x14009f256
lea rdi, [rbx + 0x238]
test byte [rdi + 0x28], 4
jne 0x14009f256
xor eax, eax
mov dword [rdi + 0x30], reloc.WS2_32.dll_inet_ntoa
mov qword [rdi + 0x38], r14
mov qword [rdi + 0x40], rbx
mov qword [rdi + 0x50], rdi
mov dword [rdi + 0x5c], eax
mov qword [rdi + 0x48], rax
call fcn.140078c90
lea r8, [0x140090680]
mov r9, rdi
mov edx, r12d
mov rcx, rdi
mov dword [rdi + 0x58], eax
call fcn.140078cc0
test eax, eax
jne 0x14009f256
cmp qword [rdi + 0x38], 0
je 0x14009f235
mov eax, esi
lock xadd dword [r14 + 0x3b8], eax
cmp qword [rdi + 0x40], 0
je 0x14009f246
mov eax, esi
lock xadd dword [rbx + 0x6c8], eax
cmp qword [rdi + 0x48], 0
je 0x14009f256
mov eax, 0x1e8
lock xadd dword [rax], esi
lea rcx, [rbx + 0x70]
call fcn.140078f80
mov rdx, qword [rsp + 0x88]
mov rcx, rbx
call fcn.14007e610
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
je 0x14009f286
mov byte [rax + 0x249], 1
mov rcx, rbx
call fcn.1400b1640
mov r9d, dword [rsp + 0x60]
movzx esi, byte [rbp + 0x62]
lea r8d, [r13 + 0x14]
add r9d, 0xffffffec
mov rdx, r15
mov rcx, rbx
call fcn.1400c6530
mov rax, qword [rbx + 8]
test byte [rax + 0x158], 4
je 0x14009f359
mov edi, dword [rbx + 0x4f4]
lea rcx, [0x1402e8130]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x1402e8098]
mov r11, rdi
and r11, rax
mov rax, qword [0x1402e8090]
mov rdx, qword [rax + r11*8]
test rdx, rdx
je 0x14009f344
nop word [rax + rax]
cmp edi, dword [rdx + 0x20]
je 0x14009f312
mov rdx, qword [rdx]
test rdx, rdx
jne 0x14009f2f0
lea rcx, [0x1402e8130]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rbx
jmp 0x14009f404
mov rdx, qword [rdx + 0x18]
test rdx, rdx
je 0x14009f344
nop dword [rax + rax]
test si, si
jne 0x14009f32b
cmp dword [rdx + 0x3c], 0x18
je 0x14009f33b
mov rax, qword [rdx]
test rax, rax
je 0x14009f33b
mov rax, qword [rax]
test rax, rax
jne 0x14009f333
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x14009f320
lea rcx, [0x1402e8130]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rbx
jmp 0x14009f404
test byte [rax + 0x150], 0x20
je 0x14009f378
mov rax, qword [rax + 0x138]
test rax, rax
je 0x14009f378
nop
mov rax, qword [rax]
test rax, rax
jne 0x14009f370
mov rax, rbx
jmp 0x14009f404
lea rdx, [0x14028e586]
mov ecx, 4
call fcn.140097b70
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x58]
xor edx, edx
mov rdi, rax
mov dword [rsp + 0x58], esi
call fcn.140096ce0
test eax, eax
je 0x14009f3bc
test rdi, rdi
je 0x14009f3ee
mov rcx, rdi
call fcn.1400795b0
jmp 0x14009f3ee
mov r9d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x348]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
mov word [rsp + 0x38], si
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rdi
mov byte [rsp + 0x20], 6
call fcn.1400b5530
mov r9d, 0x10000012
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.14007f7c0
xor eax, eax
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.1401e6720
mov rbx, qword [rsp + 0x328]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret