Function at 0x14009c7e0
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 [0x1402de400]
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 0x14009cf72
test rbx, rbx
je 0x14009cf72
nop word [rax + rax]
test ecx, ecx
jle 0x14009c8ba
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x14009c8ba
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x14009c8a0
jmp 0x14009cf72
test rsi, rsi
je 0x14009cf72
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, ebp
jl 0x14009c8e0
movsxd r15, ecx
add r15, qword [rsi + 0x10]
jne 0x14009c934
jmp 0x14009cf72
test ebp, ebp
jle 0x14009c916
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.1401e3ed0
mov rsi, qword [rsi]
sub ebp, edi
add r13, rbx
mov ecx, r15d
test rsi, rsi
jne 0x14009c8e0
jmp 0x14009c91b
test rsi, rsi
jne 0x14009c923
test ebp, ebp
jg 0x14009cf72
mov rbx, qword [rsp + 0x68]
mov edi, dword [rsp + 0x50]
lea r15, [rsp + 0xa0]
cmp byte [r15], 1
jne 0x14009cf72
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 0x14009cf72
nop dword [rax]
test ecx, ecx
jle 0x14009c98a
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x14009c98a
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x14009c970
jmp 0x14009cf72
test rsi, rsi
je 0x14009cf72
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x14009c9b0
movsxd r12, ecx
add r12, qword [rsi + 0x10]
jne 0x14009c9ff
jmp 0x14009cf72
test r12d, r12d
jle 0x14009c9e9
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.1401e3ed0
mov rsi, qword [rsi]
sub r12d, edi
add rbp, rbx
xor ecx, ecx
test rsi, rsi
jne 0x14009c9b0
jmp 0x14009c9ee
test rsi, rsi
jne 0x14009c9f7
test r12d, r12d
jg 0x14009cf72
lea r12, [rsp + 0xb8]
cmp byte [r12], 2
jne 0x14009cf72
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, [0x1402e64c8]
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.14007c860
lea rcx, [0x1402e64c8]
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 0x14009cb35
lea ecx, [rsi + 4]
lea rdx, [0x14028b986]
call fcn.1400956e0
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x50]
xor edx, edx
mov rbx, rax
mov dword [rsp + 0x50], esi
call fcn.140094850
test eax, eax
je 0x14009cafe
test rbx, rbx
je 0x14009cf72
mov rcx, rbx
call fcn.140077120
jmp 0x14009cf72
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.1400b30a0
jmp 0x14009cf72
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 0x14009cef0
movzx eax, byte [rbp + 0x5d]
cmp byte [rbx + 0x729], al
jne 0x14009cef0
movzx eax, byte [rbp + 0x5e]
cmp byte [rbx + 0x72a], al
jne 0x14009cef0
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.140098590
test eax, eax
jns 0x14009cbca
mov r9d, 0x10000013
jmp 0x14009cf64
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.14007fd50
test eax, eax
jns 0x14009cc16
mov r9d, 0x10000014
jmp 0x14009cf64
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.1400bdb20
cmp dword [rsp + 0x380], esi
je 0x14009cc88
mov r8d, dword [rsp + 0x390]
cmp r8d, 0x200
ja 0x14009cc99
mov edi, dword [rsp + 0x388]
lea r9, [rsp + 0xd0]
mov rcx, r15
mov edx, edi
call fcn.14008f7f0
test rax, rax
je 0x14009cc99
mov r9d, edi
mov r8, r15
mov rdx, rax
mov rcx, rbx
call fcn.1400be2c0
test eax, eax
jne 0x14009cc99
mov byte [rbx + 0x701], 1
cmp dword [rbp + 0x50], 4
je 0x14009cca4
mov r9d, 0x10000016
jmp 0x14009cf64
mov r9d, 0x10000015
jmp 0x14009cf64
and dword [rbx + 0x58], 0xffffff88
or dword [rbx + 0x58], 8
mov rcx, rbx
call fcn.140097f10
mov esi, 1
mov eax, esi
lock xadd dword [0x1402e6748], eax
mov ecx, esi
lock xadd dword [0x1402e6738], ecx
mov rax, qword [rsp + 0x90]
mov dword [rax], esi
mov rdx, qword [rbx + 8]
mov eax, dword [rdx + 0x158]
test al, 2
jne 0x14009cceb
bt eax, 0x16
jae 0x14009cd20
test byte [r14 + 0x158], 8
jne 0x14009cd20
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 0x14009cd00
mov rcx, qword [rbx]
call fcn.140072200
mov r12d, dword [rbx + 0x5ec]
test r12d, r12d
je 0x14009cdc6
mov eax, dword [r14 + 0x150]
bt rax, 9
jae 0x14009cdc6
bt dword [rbx + 0x58], 9
jb 0x14009cdc6
lea rdi, [rbx + 0x238]
test byte [rdi + 0x28], 4
jne 0x14009cdc6
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.140076800
lea r8, [0x14008e1f0]
mov r9, rdi
mov edx, r12d
mov rcx, rdi
mov dword [rdi + 0x58], eax
call fcn.140076830
test eax, eax
jne 0x14009cdc6
cmp qword [rdi + 0x38], 0
je 0x14009cda5
mov eax, esi
lock xadd dword [r14 + 0x3b8], eax
cmp qword [rdi + 0x40], 0
je 0x14009cdb6
mov eax, esi
lock xadd dword [rbx + 0x6c8], eax
cmp qword [rdi + 0x48], 0
je 0x14009cdc6
mov eax, 0x1e8
lock xadd dword [rax], esi
lea rcx, [rbx + 0x70]
call fcn.140076af0
mov rdx, qword [rsp + 0x88]
mov rcx, rbx
call fcn.14007c180
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
je 0x14009cdf6
mov byte [rax + 0x249], 1
mov rcx, rbx
call fcn.1400af1b0
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.1400c40a0
mov rax, qword [rbx + 8]
test byte [rax + 0x158], 4
je 0x14009cec9
mov edi, dword [rbx + 0x4f4]
lea rcx, [0x1402e64f0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x1402e6458]
mov r11, rdi
and r11, rax
mov rax, qword [0x1402e6450]
mov rdx, qword [rax + r11*8]
test rdx, rdx
je 0x14009ceb4
nop word [rax + rax]
cmp edi, dword [rdx + 0x20]
je 0x14009ce82
mov rdx, qword [rdx]
test rdx, rdx
jne 0x14009ce60
lea rcx, [0x1402e64f0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rbx
jmp 0x14009cf74
mov rdx, qword [rdx + 0x18]
test rdx, rdx
je 0x14009ceb4
nop dword [rax + rax]
test si, si
jne 0x14009ce9b
cmp dword [rdx + 0x3c], 0x18
je 0x14009ceab
mov rax, qword [rdx]
test rax, rax
je 0x14009ceab
mov rax, qword [rax]
test rax, rax
jne 0x14009cea3
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x14009ce90
lea rcx, [0x1402e64f0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rbx
jmp 0x14009cf74
test byte [rax + 0x150], 0x20
je 0x14009cee8
mov rax, qword [rax + 0x138]
test rax, rax
je 0x14009cee8
nop
mov rax, qword [rax]
test rax, rax
jne 0x14009cee0
mov rax, rbx
jmp 0x14009cf74
lea rdx, [0x14028b986]
mov ecx, 4
call fcn.1400956e0
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x58]
xor edx, edx
mov rdi, rax
mov dword [rsp + 0x58], esi
call fcn.140094850
test eax, eax
je 0x14009cf2c
test rdi, rdi
je 0x14009cf5e
mov rcx, rdi
call fcn.140077120
jmp 0x14009cf5e
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.1400b30a0
mov r9d, 0x10000012
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.14007d330
xor eax, eax
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.1401e42a0
mov rbx, qword [rsp + 0x328]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret