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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rdi, rcx
mov rcx, rdx
mov rbx, rdx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r14d, 2
lea r8d, [rax + 1]
mov ebp, eax
mov dword [rsp + 0x90], eax
movsxd r9, r8d
lea rcx, [r14 - 3]
mov eax, r14d
mul r9
cmovo rax, rcx
mov rcx, rax
call fcn.140014c1c
xor esi, esi
xor edx, edx
mov r10d, r14d
mov dword [rsp + 0x80], r14d
lea r13d, [r14 + 0x1e]
mov qword [rdi + 8], rax
lea r12d, [r14 - 1]
lea r15d, [r14 + 0x26]
lea r11d, [r14 + 0x39]
test ebp, ebp
jle 0x14004eeee
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004ed39
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004ed33
movsxd rcx, edx
movsxd r9, esi
movzx r8d, word [rbx + rcx*2]
cmp r8w, r13w
je 0x14004ed73
add r9, r9
mov rax, qword [rdi + 8]
add rcx, r12
add edx, r12d
mov word [r9 + rax], r8w
movzx r8d, word [rbx + rcx*2]
add esi, r12d
add r9, r14
cmp r8w, r13w
jne 0x14004ed53
mov rax, qword [rdi + 8]
movsxd rcx, esi
add r10d, r12d
mov r8d, 0x7c
add esi, r12d
mov dword [rsp + 0x80], r10d
mov word [rax + rcx*2], r8w
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004eda2
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004ed9c
movsxd r8, edx
movsxd r9, esi
movzx ecx, word [rbx + r8*2]
cmp cx, r13w
je 0x14004ede2
add r9, r9
cmp cx, r15w
je 0x14004ede2
mov rax, qword [rdi + 8]
add r8, r12
add edx, r12d
mov word [r9 + rax], cx
movzx ecx, word [rbx + r8*2]
add esi, r12d
add r9, r14
cmp cx, r13w
jne 0x14004edbc
mov rax, qword [rdi + 8]
movsxd rcx, esi
add esi, r12d
mov word [rax + rcx*2], r11w
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004ee00
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004edfa
movsxd rax, edx
cmp word [rbx + rax*2], r15w
jne 0x14004ee13
add edx, r12d
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004ee22
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004ee1c
mov r9d, r12d
movsxd r8, esi
mov ebp, 0xa
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004ee42
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004ee3c
movsxd rcx, edx
jmp 0x14004ee81
cmp ax, r13w
jne 0x14004ee60
add rcx, r12
add edx, r12d
cmp word [rbx + rcx*2], r13w
je 0x14004ee53
movzx r10d, word [rbx + rcx*2]
cmp r10w, 0x29
je 0x14004ee8d
mov rax, qword [rdi + 8]
add edx, r12d
add rcx, r12
mov word [rax + r8*2], r10w
add esi, r12d
add r8, r12
movzx eax, word [rbx + rcx*2]
cmp ax, r11w
jne 0x14004ee4d
jmp 0x14004ee93
xor r9d, r9d
add edx, r12d
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004eea2
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004ee9c
mov rax, qword [rdi + 8]
test r9d, r9d
jne 0x14004eeb8
mov word [rax + r8*2], bp
jmp 0x14004eebd
mov word [rax + r8*2], r11w
movsxd rax, edx
add esi, r12d
add r8, r12
cmp word [rbx + rax*2], r11w
jne 0x14004eed0
add edx, r12d
cmp r9d, r12d
je 0x14004ee33
mov r10d, dword [rsp + 0x80]
cmp edx, dword [rsp + 0x90]
jl 0x14004ed2a
cmp dword [rdi + 0x44], 0
mov ebp, 3
je 0x14004ef04
add r10d, ebp
mov dword [rsp + 0x80], r10d
mov ebx, r10d
mov rcx, 0xffffffffffffffff
mov eax, 8
mul rbx
cmovo rax, rcx
mov rcx, rax
call fcn.140014c1c
mov qword [rdi + 0x10], rax
mov rax, r15
mul rbx
mov rbx, 0xffffffffffffffff
cmovo rax, rbx
mov rcx, rax
call fcn.140014c1c
xor r10d, r10d
lea rcx, str.InterfaceDispatch
mov qword [rdi + 0x18], rax
mov qword [rax], rcx
mov rax, qword [rdi + 0x18]
mov qword [rax + 8], r10
mov rax, qword [rdi + 0x18]
or ecx, 0xffffffff
mov dword [rax + 0x10], ebx
mov rax, qword [rdi + 0x18]
lea ebx, [r10 + 4]
mov dword [rax + 0x14], ecx
mov rax, qword [rdi + 0x18]
mov edx, r14d
mov dword [rax + 0x18], ebx
mov rax, qword [rdi + 0x18]
mov dword [rsp + 0x90], edx
mov dword [rax + 0x1c], r10d
mov rax, qword [rdi + 0x18]
mov word [rax + 0x20], r12w
mov rax, qword [rdi + 0x18]
mov word [rax + 0x22], r10w
mov rax, qword [rdi + 0x18]
mov qword [rax + 0x28], r10
mov rax, qword [rdi + 0x18]
mov qword [rax + 0x30], r10
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x38], r10d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x3c], ecx
mov rax, qword [rdi + 0x18]
lea ecx, [rbx + 0x11]
mov dword [rax + 0x40], ebx
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x44], r10d
mov rax, qword [rdi + 0x18]
mov word [rax + 0x48], r14w
mov rax, qword [rdi + 0x18]
mov word [rax + 0x4a], cx
mov rax, qword [rdi + 0x10]
mov qword [rax], r10
mov rax, qword [rdi + 0x10]
mov qword [rax + 8], r10
cmp dword [rdi + 0x44], r10d
je 0x14004f167
mov rax, qword [rdi + 0x18]
lea rcx, str.QueryInterface
mov dword [rsp + 0x90], 5
mov qword [rax + 0x50], rcx
mov rax, qword [rdi + 0x18]
mov rcx, r13
mov dword [rax + 0x60], r12d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x64], r10d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x68], ebx
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x6c], r14d
mov rax, qword [rdi + 0x18]
mov word [rax + 0x70], r12w
mov rax, qword [rdi + 0x18]
mov word [rax + 0x72], bp
call fcn.140014c1c
mov rcx, qword [rdi + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdi + 0x10]
xor r10d, r10d
mov rcx, qword [rax + 0x10]
lea eax, [rbx + 0x44]
lea edx, [rbx + 0xf]
mov word [rcx + 8], ax
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x10]
mov eax, 0x4015
mov word [rcx + 0x18], ax
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x10]
mov qword [rcx], r10
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x10]
mov qword [rcx + 0x10], r10
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
mov rax, qword [rax + 0x10]
mov qword [rcx + 0x58], rax
mov rax, qword [rdi + 0x18]
lea rcx, str.AddRef
mov qword [rax + 0x78], rcx
mov rax, qword [rdi + 0x18]
lea rcx, str.Release
mov qword [rax + 0x80], r10
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x88], r14d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x8c], r12d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x90], ebx
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x94], r10d
mov rax, qword [rdi + 0x18]
mov word [rax + 0x98], r12w
mov rax, qword [rdi + 0x18]
mov word [rax + 0x9a], dx
mov rax, qword [rdi + 0x10]
mov qword [rax + 0x18], r10
mov rax, qword [rdi + 0x18]
mov qword [rax + 0xa0], rcx
mov rax, qword [rdi + 0x18]
mov qword [rax + 0xa8], r10
mov rax, qword [rdi + 0x18]
mov dword [rax + 0xb0], ebp
mov rax, qword [rdi + 0x18]
mov dword [rax + 0xb4], r14d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0xb8], ebx
mov rax, qword [rdi + 0x18]
mov dword [rax + 0xbc], r10d
mov rax, qword [rdi + 0x18]
mov word [rax + 0xc0], r12w
mov rax, qword [rdi + 0x18]
mov word [rax + 0xc2], dx
mov rax, qword [rdi + 0x10]
lea edx, [rbx + 1]
mov qword [rax + 0x20], r10
mov r15, qword [rdi + 8]
movsxd rcx, esi
mov rbp, r10
mov r14, r10
movsxd rax, edx
mov r8, r15
mov qword [rsp + 0x38], rcx
test esi, esi
jle 0x14004f418
lea rbx, [rax + rax*4]
mov ecx, r12d
mov rsi, rax
shl rbx, 3
shl rsi, 3
mov dword [rsp + 0x20], ecx
mov r9d, 0x7c
movzx eax, word [r15 + r14*2]
cmp ax, r9w
jne 0x14004f1bf
movsxd rax, ecx
mov word [r15 + r14*2], r10w
lea rbp, [r15 + rax*2]
jmp 0x14004f403
mov r9d, 0xa
cmp ax, r9w
je 0x14004f1d4
test ax, ax
jne 0x14004f3fd
mov word [r15 + r14*2], r10w
mov rax, qword [rdi + 0x18]
lea ecx, [rdx - 1]
mov qword [rbx + rax], r8
mov rax, qword [rdi + 0x18]
mov r13d, r10d
mov dword [rax + rbx + 0x10], ecx
mov rax, qword [rdi + 0x18]
lea ecx, [rdx - 2]
mov dword [rax + rbx + 0x14], ecx
mov rax, qword [rdi + 0x18]
mov r9d, r10d
mov word [rax + rbx + 0x20], r12w
mov r8, r10
mov r11d, 0x3b
cmp word [rbp], r10w
je 0x14004f248
mov rax, rbp
lea rcx, [rbp + 2]
cmp word [rax], r11w
jne 0x14004f233
cmp word [rcx], r10w
je 0x14004f22f
add r13d, r12d
jmp 0x14004f233
mov word [rax], r10w
add r8, r12
add r9d, r12d
add rcx, 2
lea rax, [rbp + r8*2]
cmp word [rax], r10w
jne 0x14004f21e
mov r12, r10
mov ecx, r10d
mov rax, r10
movsxd r8, r9d
test r9d, r9d
jle 0x14004f286
cmp word [rbp + rax*2], r11w
je 0x14004f26d
inc rax
inc ecx
cmp rax, r8
jl 0x14004f259
jmp 0x14004f286
mov word [rbp + rax*2], r10w
cmp word [rbp + rax*2 + 2], r10w
je 0x14004f286
lea eax, [rcx + 1]
movsxd rcx, eax
lea r12, [rbp + rcx*2]
movsxd rax, edx
lea rcx, [rax + rax*4]
mov rax, qword [rdi + 0x18]
lea r8, [rax + rcx*8 + 0x22]
lea rdx, [rax + rcx*8 + 0x18]
mov rcx, rbp
call fcn.14003c8f0
mov r11, qword [rdi + 0x18]
xor r10d, r10d
mov dword [r11 + rbx + 0x1c], r13d
test r13d, r13d
je 0x14004f3c1
lea eax, [r10 + 0x10]
movsxd rcx, r13d
mul rcx
lea rcx, [r10 - 1]
cmovo rax, rcx
mov rcx, rax
call fcn.140014c1c
mov rcx, qword [rdi + 0x10]
xor r10d, r10d
mov qword [rsi + rcx], rax
test r12, r12
je 0x14004f3ae
mov ecx, r10d
mov r13d, r10d
mov r9, r12
mov qword [rsp + 0x30], rcx
cmp word [r12], r10w
je 0x14004f386
lea edx, [r10 + 1]
mov rax, r12
mov qword [rsp + 0x28], r10
mov dword [rsp + 0x98], edx
lea r8d, [r10 + 0x3b]
cmp word [rax], r8w
jne 0x14004f36b
mov rcx, r9
mov word [rax], r10w
call fcn.14003c800
mov rcx, qword [rdi + 0x10]
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsi + rcx]
xor r10d, r10d
inc r13
mov word [rdx + r8 + 8], ax
mov rax, qword [rdi + 0x10]
movsxd rdx, dword [rsp + 0x98]
mov rcx, qword [rsi + rax]
lea r9, [r12 + rdx*2]
mov qword [r8 + rcx], r10
mov rcx, qword [rsp + 0x30]
add r8, 0x10
mov qword [rsp + 0x28], r8
lea r8d, [r10 + 0x3b]
inc rcx
inc edx
lea rax, [r12 + rcx*2]
mov dword [rsp + 0x98], edx
mov qword [rsp + 0x30], rcx
cmp word [rax], r10w
jne 0x14004f316
mov rcx, r9
add r13, r13
call fcn.14003c800
mov rcx, qword [rdi + 0x10]
xor r10d, r10d
mov rdx, qword [rsi + rcx]
mov word [rdx + r13*8 + 8], ax
mov rax, qword [rdi + 0x10]
mov rcx, qword [rsi + rax]
mov qword [rcx + r13*8], r10
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
mov rax, qword [rsi + rax]
mov qword [rcx + rbx + 8], rax
jmp 0x14004f3d2
mov rax, qword [rdi + 0x10]
mov qword [rsi + rax], r10
mov rax, qword [rdi + 0x18]
mov qword [rax + rbx + 8], r10
mov edx, dword [rsp + 0x90]
movsxd rcx, dword [rsp + 0x20]
mov r12d, 1
add edx, r12d
add rsi, 8
add rbx, 0x28
mov rax, rcx
lea r8, [r15 + rcx*2]
mov dword [rsp + 0x90], edx
mov r9d, 0x7c
add ecx, r12d
add r14, r12
mov dword [rsp + 0x20], ecx
cmp r14, qword [rsp + 0x38]
jl 0x14004f1a3
mov ecx, reloc.WSOCK32.dll_recv
call fcn.140014c1c
mov ecx, dword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
mov qword [rdi + 0x20], rax
mov dword [rax + 8], ecx
mov rcx, qword [rdi + 0x20]
mov rax, qword [rdi + 0x18]
mov qword [rcx], rax
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret