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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rax, qword [0x1403e4018]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov r15d, dword [rcx + 0x30]
test r15d, r15d
jne 0x1402324f3
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x1403f3a88]
test rax, rax
je 0x14023232a
mov ecx, 0x190
call qword [case.0x140318756.0]
mov r15d, 0xa
test eax, eax
jne 0x1402324f3
cmp byte [rsi + 0x15], 3
jb 0x1402324f0
cmp byte [rsi + 0x10], 0
je 0x1402323c0
mov rax, qword [rsi + 0x48]
cmp qword [rax], 0
je 0x1402323a6
mov r8, qword [rsi + 0x120]
movsxd rax, dword [r8 + 0x20]
test rax, rax
jns 0x14023237e
shl rax, 0xa
neg rax
movsxd rcx, dword [r8 + 0x28]
movsxd r9, dword [r8 + 0x2c]
add r9, rcx
cqo
idiv r9
mov rcx, rax
mov eax, 0x3b9aca00
cmp rcx, rax
cmovl rax, rcx
mov rdx, qword [r8]
xor ecx, ecx
test rdx, rdx
je 0x140232392
mov rdx, qword [rdx + 0x40]
add rcx, 0x64
jmp 0x140232383
test eax, eax
je 0x1402323a6
movsxd r8, eax
mov rax, rcx
cqo
idiv r8
cmp eax, 0x18
jg 0x1402323c0
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x1402324e2
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
jmp 0x1402323aa
cmp qword [rsi + 0x128], 0
je 0x140232455
mov qword [rsp + 0x30], 0
mov rcx, qword [rsi + 0x120]
call fcn.140243310
test rax, rax
jne 0x14023241f
mov rax, qword [rsi + 0x110]
lea rdi, [rsp + 0x30]
mov rcx, rsi
mov edx, 1
mov r8, rdi
xor r9d, r9d
call qword [case.0x140318756.0]
mov r15d, eax
mov rax, qword [rdi]
mov qword [rax + 0x20], 0
test rax, rax
je 0x1402324d8
mov r8d, dword [rsi + 0x20]
mov rcx, rsi
mov rdx, rax
mov r9d, 1
call fcn.14023c810
mov r15d, eax
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1402324d8
test byte [rcx + 0x34], 0x20
jne 0x140232497
call fcn.14023a930
jmp 0x1402324d8
mov r14, qword [rsi + 0x48]
test rdi, rdi
je 0x1402325a9
mov rcx, qword [rsi + 0x50]
lea rax, reloc.WS2_32.dll_accept
cmp qword [rcx], rax
jne 0x1402325ce
cmp dword [rcx + 0xc], 0
jg 0x140232486
test byte [rcx + 0x39], 8
je 0x1402325ce
call fcn.14023dd90
mov r15d, eax
test eax, eax
jne 0x1402324f3
jmp 0x1402325ce
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x140318756.0]
test r15d, r15d
je 0x140232514
test r15d, r15d
jne 0x1402324f3
cmp qword [rsi + 0x128], 0
jne 0x1402324f0
mov byte [rsi + 0x15], 5
xor r15d, r15d
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140319a10
mov eax, r15d
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsi + 0x120]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1402324dd
mov rax, qword [rcx + 0x18]
cmp qword [rax + 0x10], rcx
jne 0x140232535
mov rdx, qword [rcx + 0x48]
mov qword [rax + 0x10], rdx
mov rdx, qword [rcx + 0x40]
mov r8, qword [rcx + 0x48]
lea r9, [rax + 8]
lea r10, [rdx + 0x48]
test rdx, rdx
cmove r10, r9
mov qword [r10], r8
mov rdx, qword [rcx + 0x40]
mov r8, qword [rcx + 0x48]
test r8, r8
je 0x140232562
mov qword [r8 + 0x40], rdx
jmp 0x14023256e
mov qword [rax], rdx
test rdx, rdx
jne 0x14023256e
mov byte [rax + 0x31], 2
mov eax, dword [rcx + 0x34]
and eax, 0xfffffff0
or eax, 1
mov word [rcx + 0x34], ax
cmp qword [rcx + 0x38], 0
jne 0x14023251b
mov r8, qword [rcx + 0x18]
cmp byte [r8 + 0x30], 0
je 0x14023251b
mov rax, qword [0x1403f39e0]
mov rdx, qword [rcx]
mov rcx, qword [r8 + 0x48]
xor r8d, r8d
call qword [case.0x140318756.0]
jmp 0x14023251b
mov rax, qword [r14]
test rax, rax
je 0x1402325ce
mov rax, qword [rax + 0x60]
mov rcx, r14
call qword [case.0x140318756.0]
bt eax, 0xe
jae 0x1402325ce
cmp byte [rsi + 0xb], 0
je 0x1402326ce
xor ebp, ebp
movabs r12, 0xaaaaaaaaaaaaaaaa
cmp byte [rsi + 0x17], 0
je 0x14023262c
mov qword [rsp + 0x30], r12
test rdi, rdi
je 0x140232837
cmp byte [rsi + 9], 4
je 0x140232837
mov rcx, qword [rsi + 0x50]
cmp qword [rcx], 0
je 0x140232837
mov dword [rsp + 0x2c], ebp
mov byte [rsi + 0x18], 1
mov al, byte [rdi]
xor ebp, ebp
xor r13d, r13d
test al, al
je 0x1402326a1
movsx eax, al
add r13d, eax
mov al, byte [rdi + rbp + 1]
inc rbp
jmp 0x140232615
cmp dword [rsi + 0x20], 0
je 0x1402325e0
lea r8, [rsp + 0x30]
mov qword [r8], r12
mov rax, qword [rsi + 0x110]
mov rcx, rsi
mov edx, 1
xor r9d, r9d
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x140232af3
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x140232678
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x1402328fb
mov r15d, dword [rax + 0x30]
test r15d, r15d
jne 0x140232af3
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x140232aad
call fcn.140246750
jmp 0x140232ab2
cmp byte [rsi + 0xc], 0
mov r12, qword [rsi + 0x60]
je 0x1402326ec
test r12, r12
je 0x1402326e5
dec r12
mov r8d, dword [rsi + 0xb8]
mov rax, r12
cqo
idiv r8
mov r12, rax
inc r12
imul r12, r8
jmp 0x1402326e8
mov rax, qword [rsi + 0x50]
lea rcx, reloc.WS2_32.dll_accept
cmp qword [rax], rcx
sete bpl
jmp 0x1402325d0
xor r12d, r12d
mov qword [rsi + 0x60], r12
mov eax, dword [rsi + 0xc0]
bswap eax
lea rdx, [rsp + 0x3c]
mov dword [rdx], eax
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8d, 4
mov r9, r12
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
mov ebp, ebp
add r12, 4
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov rdx, rdi
mov r8d, ebp
mov r9, r12
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
add r12, rbp
mov rcx, qword [rsi + 0x50]
mov eax, ebp
bswap eax
lea rdx, [rsp + 0x3c]
mov dword [rdx], eax
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8d, 4
mov r9, r12
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
lea r9, [r12 + 4]
mov rcx, qword [rsi + 0x50]
bswap r13d
lea rdx, [rsp + 0x3c]
mov dword [rdx], r13d
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8d, 4
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
add r12, 8
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
lea rdx, [0x1403cc383]
mov r8d, 8
mov r9, r12
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
mov rcx, qword [rsi + 0x50]
mov rax, qword [rsi + 0x60]
add rax, rbp
add rax, 0x14
mov qword [rsi + 0x60], rax
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
lea rdx, [rsp + 0x30]
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
mov rdx, qword [rsi + 0x60]
cmp qword [rsp + 0x30], rdx
mov ebp, dword [rsp + 0x2c]
jle 0x140232837
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140318756.0]
mov r15d, eax
test eax, eax
jne 0x1402324f3
mov rcx, rsi
xor edx, edx
call fcn.14023d480
mov r15d, eax
test eax, eax
jne 0x1402324f3
mov rcx, qword [rsi + 0x120]
call fcn.140243310
mov r12, rax
test bpl, bpl
je 0x1402328eb
mov rax, qword [r14]
mov r15d, recvfrom
test rax, rax
je 0x140232915
mov rax, qword [rax + 0x50]
mov rcx, r14
mov edx, 0x1f
xor r8d, r8d
call qword [case.0x140318756.0]
mov ebp, eax
test eax, eax
jne 0x1402328c3
mov rcx, rsi
mov rdx, r12
call fcn.14023d710
mov ebp, eax
test eax, eax
je 0x140232b59
mov rax, qword [r14]
test rax, rax
je 0x1402328c3
mov rax, qword [rax + 0x50]
mov rcx, r14
mov edx, 0x21
xor r8d, r8d
call qword [case.0x140318756.0]
cmp ebp, 0xc0a
je 0x140232912
movzx eax, bpl
mov r15d, ebp
cmp eax, 0xa
jne 0x140232915
mov rcx, qword [rsi + 0x50]
lea rax, reloc.WS2_32.dll_accept
cmp qword [rcx], rax
je 0x140232a64
mov rcx, rsi
mov rdx, r12
call fcn.14023d710
mov r15d, eax
jmp 0x140232935
cmp dword [rax + 0x80], 0
je 0x140232abe
call fcn.14023c520
jmp 0x140232ab2
mov r15d, ebp
mov r14, qword [rsi + 0x50]
mov rax, qword [r14]
test rax, rax
je 0x140232935
mov rax, qword [rax + 8]
mov rcx, r14
call qword [case.0x140318756.0]
mov qword [r14], 0
test r15d, r15d
jne 0x1402324f3
mov r14, qword [rsi + 0x120]
mov rcx, qword [r14]
test rcx, rcx
je 0x1402329d7
mov rax, qword [rcx + 0x18]
cmp qword [rax + 0x10], rcx
jne 0x140232963
mov rdx, qword [rcx + 0x48]
mov qword [rax + 0x10], rdx
mov rdx, qword [rcx + 0x40]
mov r8, qword [rcx + 0x48]
lea r9, [rax + 8]
lea r10, [rdx + 0x48]
test rdx, rdx
cmove r10, r9
mov qword [r10], r8
mov rdx, qword [rcx + 0x40]
mov r8, qword [rcx + 0x48]
test r8, r8
je 0x140232990
mov qword [r8 + 0x40], rdx
jmp 0x14023299c
mov qword [rax], rdx
test rdx, rdx
jne 0x14023299c
mov byte [rax + 0x31], 2
mov eax, dword [rcx + 0x34]
and eax, 0xfffffff0
or eax, 1
mov word [rcx + 0x34], ax
cmp qword [rcx + 0x38], 0
jne 0x140232945
mov r8, qword [rcx + 0x18]
cmp byte [r8 + 0x30], 0
je 0x140232945
mov rax, qword [0x1403f39e0]
mov rdx, qword [rcx]
mov rcx, qword [r8 + 0x48]
xor r8d, r8d
call qword [case.0x140318756.0]
jmp 0x140232945
mov edx, dword [rsi + 0x20]
cmp edx, dword [rsi + 0x28]
jbe 0x1402329ff
xor eax, eax
cmp edx, dword [rsi + 0xc0]
sete al
sub edx, eax
mov rcx, rsi
call fcn.140243720
mov r15d, eax
test eax, eax
jne 0x1402324f3
test ebx, ebx
jne 0x1402324e2
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x140232a35
mov rax, qword [rax + 0x50]
mov edx, shutdown
mov r8, rdi
call qword [case.0x140318756.0]
cmp eax, 0xc
je 0x140232a35
mov r15d, eax
test eax, eax
jne 0x1402324f3
cmp byte [rsi + 0xb], 0
jne 0x1402324e2
movzx edx, byte [rsi + 0xe]
test edx, edx
je 0x1402324e2
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
call qword [case.0x140318756.0]
mov r15d, eax
jmp 0x1402324dd
cmp dword [rcx + 0xc], 0
jg 0x140232a74
test byte [rcx + 0x39], 8
je 0x1402328eb
call fcn.14023dd90
test eax, eax
je 0x1402328eb
mov r15d, eax
mov rsi, qword [rsi + 0x50]
mov rax, qword [rsi]
test rax, rax
je 0x1402324f3
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x140318756.0]
mov qword [rsi], 0
jmp 0x1402324f3
call fcn.140246af0
mov r15d, eax
test eax, eax
jne 0x140232af3
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140232aec
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x28]
mov edx, dword [rdx + 0x88]
bswap edx
inc edx
bswap edx
mov dword [rax + 0x18], edx
mov rax, qword [rcx + 8]
mov dword [rax + 0x5c], edx
mov rax, qword [rcx + 8]
mov dword [rax + 0x60], 0xea662e00
mov byte [rsi + 0x17], 1
xor r15d, r15d
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140232b4b
test byte [rcx + 0x34], 0x20
jne 0x140232b0a
call fcn.14023a930
jmp 0x140232b4b
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x140318756.0]
test r15d, r15d
jne 0x1402324f3
jmp 0x1402325e0
mov rax, qword [r14]
test rax, rax
je 0x140232915
mov rax, qword [rax + 0x50]
xor r15d, r15d
mov rcx, r14
mov edx, 0x20
xor r8d, r8d
call qword [case.0x140318756.0]
mov ebp, eax
test eax, eax
jne 0x1402328a6
jmp 0x140232915