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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rdi
push r12
sub rsp, 0x50
mov qword [rsp + 0x70], rsi
mov ebp, ecx
mov qword [rsp + 0x78], r14
mov r14, rdx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x14010eee0]
mov r12d, eax
call fcn.14003dd6c
mov rsi, qword [rax]
mov rax, r14
cqo
and edx, 0xf
add rax, rdx
and eax, 0xf
cmp rax, rdx
je 0x14003fc02
mov qword [rsp + 0x80], r15
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x14010eee0]
mov r15d, eax
call fcn.14003dd6c
mov ecx, dword [reloc.WS2_32.dll_accept]
mov rdx, qword [rax]
cmp ecx, 1
jne 0x14003fb5b
cmp dword [0x1401094a8], 0
je 0x14003fb23
mov dword [rsp + 0x30], 0x26
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x34], 0x28
mov eax, dword [rdx + 0x18]
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 0x24]
lea rdx, str.The_stack_is_no_more_16_bytes_aligned__
mov dword [rsp + 0x3c], eax
call fcn.14004e710
jmp 0x14003fbf1
mov ecx, dword [rdx + 0x18]
mov ebx, ecx
and ebx, 0xfffff
inc ebx
call fcn.140051a60
mov rcx, qword [0x14010f7a0]
lea r8, str.The_stack_is_no_more_16_bytes_aligned__
mov r9, rax
mov dword [rsp + 0x20], ebx
lea rdx, str._n_Debugger_Warning____s_n_Debugger_Warning___File:__s__Line:__d__n
call fcn.140041060
jmp 0x14003fbf1
cmp ecx, 2
jne 0x14003fbf1
lea rdx, str.Warning
lea rcx, str.Debugger
call fcn.1400529a0
mov rbx, rax
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x14003fb81
mov rcx, qword [0x140107bb8]
add r8, 0x2b
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x14003fbe0
lea r9, str.The_stack_is_no_more_16_bytes_aligned__
mov r8, rbx
lea rdx, str.__s___s
mov rcx, rax
call fcn.14002ffc4
mov rdx, rdi
mov ecx, 2
call fcn.14003fd50
mov rcx, qword [0x140107bb8]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14003fbf1
lea rdx, str.The_stack_is_no_more_16_bytes_aligned__
mov ecx, 2
call fcn.14003fd50
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r15, qword [rsp + 0x80]
mov eax, dword [rsi + 0x4c]
cmp dword [rsi + 0x48], eax
jl 0x14003fc33
mov r8, qword [rsi + 0x40]
add eax, 0x3e80
movsxd r9, eax
mov edx, 8
mov dword [rsi + 0x4c], eax
mov rcx, qword [0x140107bb8]
shl r9, 5
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov qword [rsi + 0x40], rax
movsxd rcx, dword [rsi + 0x48]
xor edi, edi
mov rax, qword [rsi + 0x40]
shl rcx, 5
mov dword [rcx + rax], ebp
movsxd rcx, dword [rsi + 0x48]
mov rax, qword [rsi + 0x40]
shl rcx, 5
mov qword [rcx + rax + 8], r14
movsxd rdx, dword [rsi + 0x48]
mov rcx, qword [rsi + 0x40]
mov eax, dword [rsi + 0x18]
shl rdx, 5
mov dword [rdx + rcx + 0x10], eax
test byte [0x14010f7c0], 1
je 0x14003fc84
movsxd rcx, dword [rsi + 0x48]
mov rax, qword [rsi + 0x40]
shl rcx, 5
mov qword [rcx + rax + 0x18], rdi
jmp 0x14003fc9f
mov rdx, r14
mov ecx, ebp
call fcn.14005a210
movsxd rdx, dword [rsi + 0x48]
mov rcx, qword [rsi + 0x40]
shl rdx, 5
mov qword [rdx + rcx + 0x18], rax
inc dword [rsi + 0x48]
cmp dword [0x1401094a8], edi
mov r14, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
je 0x14003fd14
cmp dword [0x140109d8c], edi
jle 0x14003fd14
lea rcx, [0x14010f7e0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x140109d8c]
test ecx, ecx
jle 0x14003fd07
lea rbx, [0x14010f820]
nop word [rax + rax]
cmp dword [rbx + 0x20], ebp
jne 0x14003fcfd
movzx eax, byte [rbx]
cmp al, 3
je 0x14003fcf0
cmp al, 6
jne 0x14003fcfd
mov ecx, edi
call fcn.14004ed70
mov ecx, dword [0x140109d8c]
inc edi
add rbx, 0x40
cmp edi, ecx
jl 0x14003fce0
lea rcx, [0x14010f7e0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, ebp
call fcn.14005aac0
movsxd rcx, eax
mov rax, qword [0x14010f780]
inc dword [rax + rcx*4]
mov ecx, r12d
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r12
pop rdi
pop rbp
jmp qword [sym.imp.KERNEL32.dll_SetLastError]