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

Disassembly:
mov dword [rsp + 0x20], r9d
mov rax, rsp
sub rsp, 0x98
mov qword [rax - 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x38], r14
xor eax, eax
xor ebp, ebp
test r8, r8
mov edi, r9d
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x3c], eax
mov rbx, r8
mov rsi, rdx
mov r14, rcx
je 0x4c47c4
cmp qword [rcx + 0x280], rax
jne 0x4c47c4
cmp qword [r8 + 0x70], rax
jne 0x4c47c4
call fcn.00436000
test rax, rax
je 0x4c400c
xor eax, eax
jmp 0x4c47c4
test byte [rsi + 0x48], 0x10
jne 0x4c4005
cmp edi, 0xa
jne 0x4c4038
cmp word [rsi + 0x40], bp
jl 0x4c402d
movzx edi, byte [rsi + 0x49]
cmp edi, 0xa
mov dword [rsp + 0xb8], edi
jne 0x4c4038
mov dword [rsp + 0xb8], 2
mov r8, qword [rbx + 0x28]
cmp dword [r8], 1
jne 0x4c4005
cmp qword [r8 + 0x30], rbp
jne 0x4c4005
cmp qword [rbx + 0x30], rbp
jne 0x4c4005
cmp qword [rbx + 0x48], rbp
jne 0x4c4005
cmp qword [rbx + 0x38], rbp
jne 0x4c4005
cmp qword [rbx + 0x60], rbp
jne 0x4c4005
cmp qword [rbx + 0x50], rbp
jne 0x4c4005
test byte [rbx + 0xa], 1
jne 0x4c4005
mov rax, qword [rbx]
cmp dword [rax], 1
jne 0x4c4005
mov rax, qword [rax + 8]
mov rcx, qword [rax]
cmp byte [rcx], 0x74
jne 0x4c4005
add r8, 8
xor edx, edx
mov rcx, r14
mov qword [rsp + 0x68], r13
call fcn.004c2220
test rax, rax
mov r13, rax
mov qword [rsp + 0x48], rax
jne 0x4c40a7
xor eax, eax
jmp 0x4c47bf
cmp rax, rsi
je 0x4c40a0
movzx edx, byte [rax + 0x48]
mov al, byte [rsi + 0x48]
shr eax, 5
mov cl, dl
shr ecx, 5
not eax
not ecx
xor ecx, eax
test cl, 1
jne 0x4c40a0
test dl, 0x10
jne 0x4c40a0
cmp qword [r13 + 0x18], rbp
jne 0x4c40a0
movzx ecx, word [rsi + 0x42]
cmp cx, word [r13 + 0x42]
jne 0x4c40a0
movzx eax, word [r13 + 0x40]
cmp word [rsi + 0x40], ax
jne 0x4c40a0
mov qword [rsp + 0x70], r12
movsx r12d, cx
xor edi, edi
xor ebx, ebx
test r12d, r12d
jle 0x4c419d
mov r11, qword [rsi + 8]
mov r10, qword [r13 + 8]
add r11, 0x10
add r10, 0x20
nop
movzx eax, byte [r10 + 9]
cmp byte [r11 + 0x19], al
jne 0x4c41d8
mov rdx, qword [r10]
mov rcx, qword [r11 + 0x10]
call fcn.00434db0
test eax, eax
je 0x4c41d8
cmp byte [r11 + 0x18], bpl
je 0x4c4143
cmp byte [r10 + 8], bpl
je 0x4c41d8
test rbx, rbx
jle 0x4c4187
mov r8, qword [r10 - 0x10]
mov rdx, qword [r11]
xor ecx, ecx
test r8, r8
sete cl
xor eax, eax
test rdx, rdx
sete al
cmp eax, ecx
jne 0x4c41d8
test rdx, rdx
je 0x4c4187
sub r8, rdx
nop
nop
movzx ecx, byte [rdx]
movzx eax, byte [rdx + r8]
sub ecx, eax
jne 0x4c4183
inc rdx
test eax, eax
jne 0x4c4170
test ecx, ecx
jne 0x4c41d8
inc edi
inc rbx
add r11, 0x30
add r10, 0x30
cmp edi, r12d
jl 0x4c4110
mov rdi, qword [rsi + 0x10]
mov eax, 1
test rdi, rdi
je 0x4c41f4
nop
nop
cmp byte [rdi + 0x62], 0
mov rbx, qword [r13 + 0x10]
cmovne ebp, eax
test rbx, rbx
je 0x4c41d8
mov rdx, rbx
mov rcx, rdi
call fcn.00449230
test eax, eax
jne 0x4c41df
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x4c41c0
xor eax, eax
jmp 0x4c47ba
test rbx, rbx
je 0x4c41d8
mov rdi, qword [rdi + 0x28]
test rdi, rdi
je 0x4c41f4
mov eax, 1
jmp 0x4c41b0
mov rdx, qword [rsi + 0x30]
test rdx, rdx
je 0x4c4210
mov rcx, qword [r13 + 0x30]
mov r8d, 0xffffffff
call fcn.00431fa0
test eax, eax
jne 0x4c41d8
mov rcx, qword [r14]
mov eax, dword [rcx + 0x2c]
bt eax, 0x13
jae 0x4c4223
cmp qword [rsi + 0x20], 0
jne 0x4c41d8
test al, al
js 0x4c41d8
mov rdx, qword [r13 + 0x70]
mov qword [rsp + 0x58], r15
call fcn.00435290
mov rcx, r14
mov ebx, eax
mov dword [rsp + 0x34], eax
call fcn.00454b30
mov edx, ebx
mov rcx, r14
mov rdi, rax
call fcn.004a7a40
mov r13d, dword [r14 + 0x50]
mov edx, dword [rsp + 0xc0]
lea r15d, [r13 + 1]
mov r8, rsi
mov dword [rsp + 0x38], r13d
lea ecx, [r15 + 1]
mov dword [r14 + 0x50], ecx
mov rcx, r14
call fcn.00449020
movzx ecx, byte [r14 + 0x1f]
test cl, cl
mov r12d, eax
jne 0x4c4291
inc dword [r14 + 0x54]
mov ecx, dword [r14 + 0x54]
mov dword [rsp + 0x30], ecx
jmp 0x4c42a3
dec cl
movzx eax, cl
mov byte [r14 + 0x1f], al
mov eax, dword [r14 + rax*4 + 0x24]
mov dword [rsp + 0x30], eax
movzx eax, byte [r14 + 0x1f]
test al, al
jne 0x4c42bd
inc dword [r14 + 0x54]
mov ebx, dword [r14 + 0x54]
mov dword [rsp + 0xb0], ebx
jmp 0x4c42d2
dec al
movzx eax, al
mov byte [r14 + 0x1f], al
mov eax, dword [r14 + rax*4 + 0x24]
mov dword [rsp + 0xb0], eax
mov r8d, dword [rsp + 0xc0]
mov r9, rsi
mov edx, r15d
mov rcx, r14
mov dword [rsp + 0x20], reloc.WS2_32.dll_getservbyname
call fcn.00490560
cmp word [rsi + 0x40], 0
jge 0x4c42fe
cmp qword [rsi + 0x10], 0
jne 0x4c431e
test ebp, ebp
jne 0x4c4315
mov ebp, dword [rsp + 0xb8]
cmp ebp, 2
je 0x4c4371
cmp ebp, 1
je 0x4c4371
jmp 0x4c4325
mov ebp, dword [rsp + 0xb8]
jmp 0x4c4325
mov ebp, dword [rsp + 0xb8]
xor r9d, r9d
mov r8d, r15d
mov rcx, rdi
lea edx, [r9 + 0x6c]
call fcn.00441dd0
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x10]
mov rcx, rdi
mov ebx, eax
call fcn.00441dd0
mov r8d, dword [rdi + 0x3c]
cmp r8d, ebx
mov dword [rsp + 0x40], eax
jbe 0x4c4365
mov rcx, qword [rdi + 8]
lea rdx, [rbx + rbx*2]
mov dword [rcx + rdx*8 + 8], r8d
mov edx, dword [rdi + 0x3c]
mov rcx, qword [rdi + 0x30]
dec edx
mov dword [rcx + 0x64], edx
mov rbx, qword [rsp + 0x48]
test byte [rbx + 0x48], 0x20
jne 0x4c458f
mov r8d, dword [rsp + 0x34]
mov r9, rbx
mov edx, r13d
mov rcx, r14
mov dword [rsp + 0x20], getservbyname
call fcn.00490560
xor r9d, r9d
mov r8d, r13d
lea edx, [r9 + 0x6c]
mov rcx, rdi
call fcn.00441dd0
cmp word [rsi + 0x40], 0
mov dword [rsp + 0x3c], eax
jl 0x4c4430
mov ebx, dword [rsp + 0xb0]
mov r8d, r13d
mov edx, 0x67
mov r9d, ebx
mov rcx, rdi
call fcn.00441dd0
xor r9d, r9d
mov r8d, r15d
lea edx, [r9 + 0x46]
mov rcx, rdi
mov dword [rsp + 0x20], ebx
mov r13d, eax
call fcn.00441bf0
mov r8, rsi
mov edx, ebp
mov rcx, r14
mov ebx, eax
call fcn.00469c50
mov edx, dword [rdi + 0x3c]
cmp edx, ebx
jbe 0x4c440d
mov rax, qword [rdi + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
mov ebx, dword [rsp + 0xb0]
dec ecx
mov r8d, ebx
mov edx, r12d
mov dword [rax + 0x64], ecx
mov rcx, r14
call fcn.004491a0
jmp 0x4c4473
cmp qword [rsi + 0x10], 0
jne 0x4c4456
mov ebx, dword [rsp + 0xb0]
mov r8d, r15d
mov edx, 0x4a
mov r9d, ebx
mov rcx, rdi
call fcn.00441dd0
mov r13d, eax
jmp 0x4c4473
mov ebx, dword [rsp + 0xb0]
mov r8d, r13d
mov edx, 0x67
mov r9d, ebx
mov rcx, rdi
call fcn.00441dd0
mov r13d, eax
mov ebp, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x38]
mov edx, 0x66
mov r9d, ebp
mov rcx, rdi
call fcn.00441dd0
mov r9d, ebp
mov r8d, r15d
mov edx, Ordinal_79
mov rcx, rdi
mov dword [rsp + 0x20], ebx
call fcn.00441bf0
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x4c44b9
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0xb
mov rbx, qword [rdi + 8]
mov rbp, qword [rsi]
mov rcx, qword [rdi]
test rbx, rbx
je 0x4c453a
cmp byte [rcx + 0x50], 0
jne 0x4c453a
mov eax, dword [rdi + 0x3c]
dec eax
cdqe
lea r12, [rax + rax*2]
movsx edx, byte [rbx + r12*8 + 1]
mov r8, qword [rbx + r12*8 + 0x10]
call fcn.00441fd0
xor r11d, r11d
test rbp, rbp
mov qword [rbx + r12*8 + 0x10], r11
jne 0x4c4502
mov qword [rbx + r12*8 + 0x10], r11
mov byte [rbx + r12*8 + 1], r11b
jmp 0x4c4544
cmp byte [rbp], r11b
mov rax, rbp
je 0x4c4518
nop
nop
inc rax
cmp byte [rax], r11b
jne 0x4c4510
mov rcx, qword [rdi]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
movsxd r8, eax
call fcn.0043b390
mov byte [rbx + r12*8 + 1], 0xff
mov qword [rbx + r12*8 + 0x10], rax
jmp 0x4c4544
mov r8, rbp
xor edx, edx
call fcn.00441fd0
mov r9d, r13d
mov r13d, dword [rsp + 0x38]
mov edx, 9
mov r8d, r13d
mov rcx, rdi
call fcn.00441dd0
xor r9d, r9d
mov r8d, r13d
lea edx, [r9 + 0x3d]
mov rcx, rdi
call fcn.00441dd0
xor r9d, r9d
mov r8d, r15d
lea edx, [r9 + 0x3d]
mov rcx, rdi
call fcn.00441dd0
mov rbx, qword [rsp + 0x48]
mov r12d, dword [rsp + 0xc0]
jmp 0x4c45cc
mov rax, qword [rsi]
mov r12d, dword [rsp + 0xc0]
mov r8d, dword [rsi + 0x3c]
mov edx, r12d
mov r9b, 1
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.00446990
mov r11, qword [rbx]
mov r8d, dword [rbx + 0x3c]
mov edx, dword [rsp + 0x34]
xor r9d, r9d
mov rcx, r14
mov qword [rsp + 0x20], r11
call fcn.00446990
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x4c471a
mov ebp, dword [rsp + 0x30]
nop
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x4c4608
nop
nop
mov rdx, rbx
mov rcx, rsi
call fcn.00449230
test eax, eax
jne 0x4c4608
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x4c45f0
mov eax, dword [rsp + 0x34]
mov r9d, dword [rbx + 0x58]
mov r8d, r13d
mov edx, getservbyname
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.00441bf0
mov rdx, rbx
mov rcx, r14
call fcn.0048d8f0
mov r9d, dword [rsi + 0x58]
mov r8d, r15d
mov edx, reloc.WS2_32.dll_getservbyname
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.00441bf0
mov rdx, rsi
mov rcx, r14
call fcn.0048d8f0
mov r11, qword [rdi + 8]
test r11, r11
je 0x4c466a
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [r11 + rcx*8 - 0x15], 1
xor r9d, r9d
mov r8d, r13d
mov rcx, rdi
lea edx, [r9 + 0x6c]
call fcn.00441dd0
mov r9d, ebp
mov r8d, r13d
mov edx, 0x65
mov rcx, rdi
mov ebx, eax
call fcn.00441dd0
mov r9d, ebp
mov r8d, r15d
mov edx, WSAGetLastError
mov rcx, rdi
mov dword [rsp + 0x20], 1
call fcn.00441bf0
lea r9d, [rbx + 1]
mov r8d, r13d
mov edx, 9
mov rcx, rdi
call fcn.00441dd0
mov r11d, dword [rdi + 0x3c]
cmp r11d, ebx
jbe 0x4c46d6
mov rax, qword [rdi + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], r11d
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
xor r9d, r9d
dec ecx
lea edx, [r9 + 0x3d]
mov r8d, r13d
mov dword [rax + 0x64], ecx
mov rcx, rdi
call fcn.00441dd0
xor r9d, r9d
mov r8d, r15d
lea edx, [r9 + 0x3d]
mov rcx, rdi
call fcn.00441dd0
mov rsi, qword [rsi + 0x28]
mov rbx, qword [rsp + 0x48]
test rsi, rsi
jne 0x4c45e0
jmp 0x4c471e
mov ebp, dword [rsp + 0x30]
mov eax, dword [rsp + 0x3c]
test eax, eax
je 0x4c4748
mov r8d, dword [rdi + 0x3c]
cmp r8d, eax
jbe 0x4c473c
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], r8d
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov edx, dword [rsp + 0xb0]
mov rcx, r14
call fcn.004321b0
mov edx, ebp
call fcn.004321b0
mov ebx, dword [rsp + 0x40]
test ebx, ebx
je 0x4c47b0
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0x18]
call fcn.00441dd0
mov r9d, dword [rdi + 0x3c]
cmp r9d, ebx
jbe 0x4c478e
mov rax, qword [rdi + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], r9d
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
xor r9d, r9d
dec ecx
lea edx, [r9 + 0x3d]
mov r8d, r15d
mov dword [rax + 0x64], ecx
mov rcx, rdi
call fcn.00441dd0
xor eax, eax
jmp 0x4c47b5
mov eax, 1
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
add rsp, 0x98
ret