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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x30
xor edi, edi
mov r15, rdx
mov rsi, rcx
test rdx, rdx
jne 0x14012026a
mov r12d, edi
jmp 0x1401202a2
movzx ecx, word [rdx + 0x14]
mov edx, 0x202
movzx eax, cx
and ax, dx
cmp ax, dx
jne 0x14012028b
cmp byte [r15 + 0x16], 1
jne 0x14012028b
mov r12, qword [r15 + 8]
jmp 0x1401202a2
test cl, 1
mov rcx, r15
je 0x140120298
mov r12, rdi
jmp 0x1401202a5
mov dl, 1
call fcn.14007d6f0
mov r12, rax
mov rcx, r15
mov eax, reloc.WS2_32.dll_sendto
mov qword [rsp + 0x70], r14
movzx ecx, word [rcx + rax]
test cl, 2
je 0x1401202c5
cmp byte [r15 + 0x16], 1
jne 0x1401202c5
mov r14d, dword [r15 + 0x10]
jmp 0x1401202f1
test cl, 0x10
je 0x1401202da
bt cx, 0xa
mov r14d, dword [r15 + 0x10]
jae 0x1401202f1
add r14d, dword [r15]
jmp 0x1401202f1
test cl, 1
je 0x1401202e4
mov r14d, edi
jmp 0x1401202f1
mov dl, 1
mov rcx, r15
call fcn.14007ddc0
mov r14d, eax
mov dword [rsp + 0x20], edi
mov r8d, 0xffffffff
mov dword [rsp + 0x78], r8d
mov rbp, rdi
mov r13d, edi
test r12, r12
je 0x140120600
nop
mov rax, qword [rsi + 0x18]
lea edx, [rdi - 0x68f72]
mov rcx, qword [rax + 0x128]
test rcx, rcx
je 0x140120345
cmp dword [rcx + 4], edx
jne 0x14012033c
mov eax, dword [rsi + 0x20]
cmp dword [rcx], eax
je 0x140120365
lea eax, [rdi - 0x68f72]
test eax, eax
js 0x140120365
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x140120326
mov dword [rsp + 0x20], edi
test rbp, rbp
je 0x14012041a
lea ecx, [r13 + 1]
mov byte [rbp + 0x32], 0
mov dword [rbp + 0x4c], ecx
mov rax, rbp
jmp 0x140120602
mov rbx, qword [rcx + 8]
test rbx, rbx
je 0x140120345
test rbp, rbp
jne 0x1401203ee
cmp dword [rbx + 0x3c], r14d
jne 0x1401203b4
cmp byte [rbx + 0x37], bpl
je 0x14012038a
mov eax, dword [rsp + 0x88]
test eax, eax
jne 0x1401203bb
mov rcx, qword [rbx + 0x10]
cmp rcx, r12
je 0x1401203a7
movsxd r8, r14d
mov rdx, r12
call fcn.1402360f0
mov r8d, dword [rsp + 0x78]
test eax, eax
jne 0x1401203b4
mov byte [rbx + 0x32], 0
mov rbp, rbx
mov byte [rbx + 0x36], 0
jmp 0x140120401
mov eax, dword [rsp + 0x88]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1401203ee
test eax, eax
jne 0x1401203ee
cmp dword [rbx + 0x40], r14d
jne 0x1401203ee
movsxd r8, r14d
mov rdx, r12
call fcn.1402360f0
mov r8d, dword [rsp + 0x78]
test eax, eax
jne 0x1401203ee
mov byte [rbx + 0x32], al
mov rbp, rbx
mov byte [rbx + 0x36], 1
jmp 0x140120401
mov eax, dword [rbx + 0x4c]
cmp eax, r8d
jae 0x140120401
mov r8d, eax
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x20], edi
cmp dword [rbx + 0x4c], r13d
cmova r13d, dword [rbx + 0x4c]
inc edi
cmp edi, 4
jl 0x140120310
jmp 0x140120349
movzx eax, word [r15 + 0x14]
mov edx, recv
test al, 0x12
setne cl
bt ax, dx
mov edx, 1
setb al
test al, cl
je 0x14012044e
lea rax, [fcn.140053560]
cmp qword [r15 + 0x30], rax
jne 0x14012044e
xor ebp, ebp
mov edi, edx
mov ebx, ebp
jmp 0x140120456
xor ebp, ebp
lea ebx, [r14 + 1]
mov edi, ebp
call fcn.140116470
test eax, eax
jne 0x1401205cf
movsxd rcx, ebx
add rcx, 0x50
call fcn.1400503a0
mov rbx, rax
test rax, rax
je 0x1401205cf
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
test edi, edi
je 0x1401204a4
inc qword [r12 - 8]
mov qword [rax + 0x10], r12
mov byte [rax + 0x34], 1
jmp 0x1401204bb
lea rcx, [rax + 0x50]
mov rdx, r12
mov qword [rax + 0x10], rcx
lea eax, [r14 + 1]
movsxd r8, eax
call fcn.1402361f0
mov rdi, qword [rsp + 0x80]
mov rcx, rbx
mov rdx, rdi
mov dword [rbx + 0x38], 1
call fcn.140120030
test eax, eax
je 0x14012056f
test rdi, rdi
jne 0x1401204ee
mov byte [rbx + 0x32], 1
mov rax, rbx
jmp 0x140120602
mov eax, dword [rbx + 0x38]
cmp eax, 1
jbe 0x140120500
dec eax
mov dword [rbx + 0x38], eax
jmp 0x140120600
mov rcx, rbx
call fcn.14011db10
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x140120561
mov rcx, qword [0x1402e8e98]
test rcx, rcx
je 0x140120523
call qword [0x1402d68a0]
mov rcx, rbx
call qword [0x1402d6858]
dec qword [0x1402e8c98]
movsxd rcx, eax
sub qword [0x1402e8c50], rcx
mov rcx, rbx
call qword [0x1402d6848]
mov rcx, qword [0x1402e8e98]
test rcx, rcx
je 0x140120600
call qword [0x1402d68b0]
jmp 0x140120600
mov rcx, rbx
call qword [0x1402d6848]
jmp 0x140120600
mov edi, dword [rsp + 0x20]
lea eax, [r13 + 1]
add edi, 0xfff9708e
mov dword [rbx + 0x3c], r14d
mov edx, edi
mov dword [rbx + 0x4c], eax
lea r9, [fcn.14011dcb0]
mov r8, rbx
mov rcx, rsi
call fcn.140084e90
mov rax, qword [rsi + 0x18]
mov rcx, qword [rax + 0x128]
test rcx, rcx
je 0x1401205ca
cmp dword [rcx + 4], edi
jne 0x1401205b8
mov eax, dword [rsi + 0x20]
cmp dword [rcx], eax
je 0x1401205c6
test edi, edi
js 0x1401205c6
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x1401205a8
mov rax, rbp
jmp 0x140120602
mov rbp, qword [rcx + 8]
mov rax, rbp
jmp 0x140120602
mov rax, qword [rsi]
mov ecx, 0x9000
test word [rax + 0x14], cx
je 0x1401205e7
mov rcx, rax
call fcn.14007c8e0
jmp 0x1401205ed
mov word [rax + 0x14], 1
mov rcx, qword [rsi]
mov dword [rsi + 0x24], 7
mov rcx, qword [rcx + 0x18]
call fcn.140050e40
xor eax, eax
mov r14, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret