Function at 0x14024a950
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 [0x14040b018]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov r15d, dword [rcx + 0x30]
test r15d, r15d
jne 0x14024ab73
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x14041b108]
test rax, rax
je 0x14024a9aa
mov ecx, 0x190
call qword [case.0x1403339d6.0]
mov r15d, 0xa
test eax, eax
jne 0x14024ab73
cmp byte [rsi + 0x15], 3
jb 0x14024ab70
cmp byte [rsi + 0x10], 0
je 0x14024aa40
mov rax, qword [rsi + 0x48]
cmp qword [rax], 0
je 0x14024aa26
mov r8, qword [rsi + 0x120]
movsxd rax, dword [r8 + 0x20]
test rax, rax
jns 0x14024a9fe
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 0x14024aa12
mov rdx, qword [rdx + 0x40]
add rcx, 0x64
jmp 0x14024aa03
test eax, eax
je 0x14024aa26
movsxd r8, eax
mov rax, rcx
cqo
idiv r8
cmp eax, 0x18
jg 0x14024aa40
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x14024ab62
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
jmp 0x14024aa2a
cmp qword [rsi + 0x128], 0
je 0x14024aad5
mov qword [rsp + 0x30], 0
mov rcx, qword [rsi + 0x120]
call fcn.14025b990
test rax, rax
jne 0x14024aa9f
mov rax, qword [rsi + 0x110]
lea rdi, [rsp + 0x30]
mov rcx, rsi
mov edx, 1
mov r8, rdi
xor r9d, r9d
call qword [case.0x1403339d6.0]
mov r15d, eax
mov rax, qword [rdi]
mov qword [rax + 0x20], 0
test rax, rax
je 0x14024ab58
mov r8d, dword [rsi + 0x20]
mov rcx, rsi
mov rdx, rax
mov r9d, 1
call fcn.140254e90
mov r15d, eax
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14024ab58
test byte [rcx + 0x34], 0x20
jne 0x14024ab17
call fcn.140252fb0
jmp 0x14024ab58
mov r14, qword [rsi + 0x48]
test rdi, rdi
je 0x14024ac29
mov rcx, qword [rsi + 0x50]
lea rax, reloc.WS2_32.dll_accept
cmp qword [rcx], rax
jne 0x14024ac4e
cmp dword [rcx + 0xc], 0
jg 0x14024ab06
test byte [rcx + 0x39], 8
je 0x14024ac4e
call fcn.140256410
mov r15d, eax
test eax, eax
jne 0x14024ab73
jmp 0x14024ac4e
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.0x1403339d6.0]
test r15d, r15d
je 0x14024ab94
test r15d, r15d
jne 0x14024ab73
cmp qword [rsi + 0x128], 0
jne 0x14024ab70
mov byte [rsi + 0x15], 5
xor r15d, r15d
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140334bf0
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 0x14024ab5d
mov rax, qword [rcx + 0x18]
cmp qword [rax + 0x10], rcx
jne 0x14024abb5
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 0x14024abe2
mov qword [r8 + 0x40], rdx
jmp 0x14024abee
mov qword [rax], rdx
test rdx, rdx
jne 0x14024abee
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 0x14024ab9b
mov r8, qword [rcx + 0x18]
cmp byte [r8 + 0x30], 0
je 0x14024ab9b
mov rax, qword [0x14041b060]
mov rdx, qword [rcx]
mov rcx, qword [r8 + 0x48]
xor r8d, r8d
call qword [case.0x1403339d6.0]
jmp 0x14024ab9b
mov rax, qword [r14]
test rax, rax
je 0x14024ac4e
mov rax, qword [rax + 0x60]
mov rcx, r14
call qword [case.0x1403339d6.0]
bt eax, 0xe
jae 0x14024ac4e
cmp byte [rsi + 0xb], 0
je 0x14024ad4e
xor ebp, ebp
movabs r12, 0xaaaaaaaaaaaaaaaa
cmp byte [rsi + 0x17], 0
je 0x14024acac
mov qword [rsp + 0x30], r12
test rdi, rdi
je 0x14024aeb7
cmp byte [rsi + 9], 4
je 0x14024aeb7
mov rcx, qword [rsi + 0x50]
cmp qword [rcx], 0
je 0x14024aeb7
mov dword [rsp + 0x2c], ebp
mov byte [rsi + 0x18], 1
mov al, byte [rdi]
xor ebp, ebp
xor r13d, r13d
test al, al
je 0x14024ad21
movsx eax, al
add r13d, eax
mov al, byte [rdi + rbp + 1]
inc rbp
jmp 0x14024ac95
cmp dword [rsi + 0x20], 0
je 0x14024ac60
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.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024b173
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x14024acf8
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x14024af7b
mov r15d, dword [rax + 0x30]
test r15d, r15d
jne 0x14024b173
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x14024b12d
call fcn.14025edd0
jmp 0x14024b132
cmp byte [rsi + 0xc], 0
mov r12, qword [rsi + 0x60]
je 0x14024ad6c
test r12, r12
je 0x14024ad65
dec r12
mov r8d, dword [rsi + 0xb8]
mov rax, r12
cqo
idiv r8
mov r12, rax
inc r12
imul r12, r8
jmp 0x14024ad68
mov rax, qword [rsi + 0x50]
lea rcx, reloc.WS2_32.dll_accept
cmp qword [rax], rcx
sete bpl
jmp 0x14024ac50
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.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
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.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
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.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
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.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
add r12, 8
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
lea rdx, [0x1403f1df3]
mov r8d, 8
mov r9, r12
call qword [case.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
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.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
mov rdx, qword [rsi + 0x60]
cmp qword [rsp + 0x30], rdx
mov ebp, dword [rsp + 0x2c]
jle 0x14024aeb7
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1403339d6.0]
mov r15d, eax
test eax, eax
jne 0x14024ab73
mov rcx, rsi
xor edx, edx
call fcn.140255b00
mov r15d, eax
test eax, eax
jne 0x14024ab73
mov rcx, qword [rsi + 0x120]
call fcn.14025b990
mov r12, rax
test bpl, bpl
je 0x14024af6b
mov rax, qword [r14]
mov r15d, recv
test rax, rax
je 0x14024af95
mov rax, qword [rax + 0x50]
mov rcx, r14
mov edx, 0x1f
xor r8d, r8d
call qword [case.0x1403339d6.0]
mov ebp, eax
test eax, eax
jne 0x14024af43
mov rcx, rsi
mov rdx, r12
call fcn.140255d90
mov ebp, eax
test eax, eax
je 0x14024b1d9
mov rax, qword [r14]
test rax, rax
je 0x14024af43
mov rax, qword [rax + 0x50]
mov rcx, r14
mov edx, 0x21
xor r8d, r8d
call qword [case.0x1403339d6.0]
cmp ebp, 0xc0a
je 0x14024af92
movzx eax, bpl
mov r15d, ebp
cmp eax, 0xa
jne 0x14024af95
mov rcx, qword [rsi + 0x50]
lea rax, reloc.WS2_32.dll_accept
cmp qword [rcx], rax
je 0x14024b0e4
mov rcx, rsi
mov rdx, r12
call fcn.140255d90
mov r15d, eax
jmp 0x14024afb5
cmp dword [rax + 0x80], 0
je 0x14024b13e
call fcn.140254ba0
jmp 0x14024b132
mov r15d, ebp
mov r14, qword [rsi + 0x50]
mov rax, qword [r14]
test rax, rax
je 0x14024afb5
mov rax, qword [rax + 8]
mov rcx, r14
call qword [case.0x1403339d6.0]
mov qword [r14], 0
test r15d, r15d
jne 0x14024ab73
mov r14, qword [rsi + 0x120]
mov rcx, qword [r14]
test rcx, rcx
je 0x14024b057
mov rax, qword [rcx + 0x18]
cmp qword [rax + 0x10], rcx
jne 0x14024afe3
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 0x14024b010
mov qword [r8 + 0x40], rdx
jmp 0x14024b01c
mov qword [rax], rdx
test rdx, rdx
jne 0x14024b01c
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 0x14024afc5
mov r8, qword [rcx + 0x18]
cmp byte [r8 + 0x30], 0
je 0x14024afc5
mov rax, qword [0x14041b060]
mov rdx, qword [rcx]
mov rcx, qword [r8 + 0x48]
xor r8d, r8d
call qword [case.0x1403339d6.0]
jmp 0x14024afc5
mov edx, dword [rsi + 0x20]
cmp edx, dword [rsi + 0x28]
jbe 0x14024b07f
xor eax, eax
cmp edx, dword [rsi + 0xc0]
sete al
sub edx, eax
mov rcx, rsi
call fcn.14025bda0
mov r15d, eax
test eax, eax
jne 0x14024ab73
test ebx, ebx
jne 0x14024ab62
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x14024b0b5
mov rax, qword [rax + 0x50]
mov edx, shutdown
mov r8, rdi
call qword [case.0x1403339d6.0]
cmp eax, 0xc
je 0x14024b0b5
mov r15d, eax
test eax, eax
jne 0x14024ab73
cmp byte [rsi + 0xb], 0
jne 0x14024ab62
movzx edx, byte [rsi + 0xe]
test edx, edx
je 0x14024ab62
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
call qword [case.0x1403339d6.0]
mov r15d, eax
jmp 0x14024ab5d
cmp dword [rcx + 0xc], 0
jg 0x14024b0f4
test byte [rcx + 0x39], 8
je 0x14024af6b
call fcn.140256410
test eax, eax
je 0x14024af6b
mov r15d, eax
mov rsi, qword [rsi + 0x50]
mov rax, qword [rsi]
test rax, rax
je 0x14024ab73
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x1403339d6.0]
mov qword [rsi], 0
jmp 0x14024ab73
call fcn.14025f170
mov r15d, eax
test eax, eax
jne 0x14024b173
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14024b16c
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 0x14024b1cb
test byte [rcx + 0x34], 0x20
jne 0x14024b18a
call fcn.140252fb0
jmp 0x14024b1cb
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.0x1403339d6.0]
test r15d, r15d
jne 0x14024ab73
jmp 0x14024ac60
mov rax, qword [r14]
test rax, rax
je 0x14024af95
mov rax, qword [rax + 0x50]
xor r15d, r15d
mov rcx, r14
mov edx, 0x20
xor r8d, r8d
call qword [case.0x1403339d6.0]
mov ebp, eax
test eax, eax
jne 0x14024af26
jmp 0x14024af95