Function at 0x14004999c
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 r12d, 2
lea r8d, [rax + 6]
mov ebp, eax
mov dword [rsp + 0x90], eax
movsxd r9, r8d
lea rcx, [r12 - 3]
mov eax, r12d
mul r9
cmovo rax, rcx
mov rcx, rax
call fcn.140025a08
xor esi, esi
xor edx, edx
mov r10d, r12d
mov dword [rsp + 0x80], r12d
lea r14d, [r12 + 0x1e]
mov qword [rdi + 8], rax
lea r15d, [r12 - 1]
lea r13d, [r12 + 0x26]
lea r11d, [r12 + 0x39]
test ebp, ebp
jle 0x140049bdf
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x140049a2a
add edx, r15d
add rcx, r12
cmp word [rcx], r14w
je 0x140049a24
movsxd rcx, edx
movsxd r9, esi
movzx r8d, word [rbx + rcx*2]
cmp r8w, r14w
je 0x140049a64
add r9, r9
mov rax, qword [rdi + 8]
add rcx, r15
add edx, r15d
mov word [r9 + rax], r8w
movzx r8d, word [rbx + rcx*2]
add esi, r15d
add r9, r12
cmp r8w, r14w
jne 0x140049a44
mov rax, qword [rdi + 8]
movsxd rcx, esi
add r10d, r15d
mov r8d, 0x7c
add esi, r15d
mov dword [rsp + 0x80], r10d
mov word [rax + rcx*2], r8w
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x140049a93
add edx, r15d
add rcx, r12
cmp word [rcx], r14w
je 0x140049a8d
movsxd r8, edx
movsxd r9, esi
movzx ecx, word [rbx + r8*2]
cmp cx, r14w
je 0x140049ad3
add r9, r9
cmp cx, r13w
je 0x140049ad3
mov rax, qword [rdi + 8]
add r8, r15
add edx, r15d
mov word [r9 + rax], cx
movzx ecx, word [rbx + r8*2]
add esi, r15d
add r9, r12
cmp cx, r14w
jne 0x140049aad
mov rax, qword [rdi + 8]
movsxd rcx, esi
add esi, r15d
mov word [rax + rcx*2], r11w
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x140049af1
add edx, r15d
add rcx, r12
cmp word [rcx], r14w
je 0x140049aeb
movsxd rax, edx
cmp word [rbx + rax*2], r13w
jne 0x140049b04
add edx, r15d
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x140049b13
add edx, r15d
add rcx, r12
cmp word [rcx], r14w
je 0x140049b0d
mov r9d, r15d
movsxd r8, esi
mov ebp, 0xa
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x140049b33
add edx, r15d
add rcx, r12
cmp word [rcx], r14w
je 0x140049b2d
movsxd rcx, edx
jmp 0x140049b72
cmp ax, r14w
jne 0x140049b51
add rcx, r15
add edx, r15d
cmp word [rbx + rcx*2], r14w
je 0x140049b44
movzx r10d, word [rbx + rcx*2]
cmp r10w, 0x29
je 0x140049b7e
mov rax, qword [rdi + 8]
add edx, r15d
add rcx, r15
mov word [rax + r8*2], r10w
add esi, r15d
add r8, r15
movzx eax, word [rbx + rcx*2]
cmp ax, r11w
jne 0x140049b3e
jmp 0x140049b84
xor r9d, r9d
add edx, r15d
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x140049b93
add edx, r15d
add rcx, r12
cmp word [rcx], r14w
je 0x140049b8d
mov rax, qword [rdi + 8]
test r9d, r9d
jne 0x140049ba9
mov word [rax + r8*2], bp
jmp 0x140049bae
mov word [rax + r8*2], r11w
movsxd rax, edx
add esi, r15d
add r8, r15
cmp word [rbx + rax*2], r11w
jne 0x140049bc1
add edx, r15d
cmp r9d, r15d
je 0x140049b24
mov r10d, dword [rsp + 0x80]
cmp edx, dword [rsp + 0x90]
jl 0x140049a1b
cmp dword [rdi + 0x44], 0
mov ebp, 3
je 0x140049bf5
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.140025a08
mov qword [rdi + 0x10], rax
mov rax, r13
mul rbx
mov rbx, 0xffffffffffffffff
cmovo rax, rbx
mov rcx, rax
call fcn.140025a08
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, r12d
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], r15w
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], r12w
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 0x140049e58
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, r14
mov dword [rax + 0x60], r15d
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], r12d
mov rax, qword [rdi + 0x18]
mov word [rax + 0x70], r15w
mov rax, qword [rdi + 0x18]
mov word [rax + 0x72], bp
call fcn.140025a08
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], r12d
mov rax, qword [rdi + 0x18]
mov dword [rax + 0x8c], r15d
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], r15w
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], r12d
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], r15w
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 r13, qword [rdi + 8]
movsxd rcx, esi
mov r14, r10
mov rbp, r10
movsxd rax, edx
mov r8, r13
mov qword [rsp + 0x38], rcx
test esi, esi
jle 0x14004a11a
lea rbx, [rax + rax*4]
mov ecx, r15d
mov rsi, rax
shl rbx, 3
shl rsi, 3
mov dword [rsp + 0x20], ecx
mov r9d, 0x7c
movzx eax, word [r13 + rbp*2]
cmp ax, r9w
jne 0x140049eb9
movsxd rax, ecx
mov word [r13 + rbp*2], r10w
lea r14, [rax*2]
add r14, r13
jmp 0x14004a105
mov r9d, 0xa
cmp ax, r9w
je 0x140049ece
test ax, ax
jne 0x14004a0ff
mov word [r13 + rbp*2], r10w
mov rax, qword [rdi + 0x18]
lea ecx, [rdx - 1]
mov qword [rbx + rax], r8
mov rax, qword [rdi + 0x18]
mov r12d, 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], r15w
mov r8, r10
mov r11d, 0x3b
cmp word [r14], r10w
je 0x140049f41
mov rax, r14
lea rcx, [r14 + 2]
cmp word [rax], r11w
jne 0x140049f2d
cmp word [rcx], r10w
je 0x140049f29
add r12d, r15d
jmp 0x140049f2d
mov word [rax], r10w
add r8, r15
add r9d, r15d
add rcx, 2
lea rax, [r14 + r8*2]
cmp word [rax], r10w
jne 0x140049f18
mov r15, r10
mov ecx, r10d
mov rax, r10
movsxd r8, r9d
test r9d, r9d
jle 0x140049f7c
cmp word [r14 + rax*2], r11w
je 0x140049f65
inc rax
inc ecx
cmp rax, r8
jl 0x140049f52
jmp 0x140049f7c
mov word [r14 + rax*2], r10w
cmp word [r14 + rax*2 + 2], r10w
je 0x140049f7c
lea eax, [rcx + 1]
movsxd rcx, eax
lea r15, [r14 + rcx*2]
movsxd rax, edx
mov rdx, r14
lea rcx, [rax + rax*4]
mov rax, qword [rdi + 0x18]
lea r9, [rax + 0x22]
lea r8, [rax + 0x18]
lea r9, [r9 + rcx*8]
lea r8, [r8 + rcx*8]
call fcn.140048f8c
mov rax, qword [rdi + 0x18]
xor r10d, r10d
mov dword [rax + rbx + 0x1c], r12d
test r12d, r12d
je 0x14004a0bc
lea eax, [r10 + 0x10]
movsxd rcx, r12d
mul rcx
lea rcx, [r10 - 1]
cmovo rax, rcx
mov rcx, rax
call fcn.140025a08
mov rcx, qword [rdi + 0x10]
xor r10d, r10d
mov qword [rsi + rcx], rax
test r15, r15
je 0x14004a0a9
mov ecx, r10d
mov r12d, r10d
mov r9, r15
mov qword [rsp + 0x30], rcx
cmp word [r15], r10w
je 0x14004a081
lea edx, [r10 + 1]
mov rax, r15
mov qword [rsp + 0x28], r10
mov dword [rsp + 0x98], edx
lea r8d, [r10 + 0x3b]
cmp word [rax], r8w
jne 0x14004a066
mov rdx, r9
mov word [rax], r10w
call fcn.14004a7b0
mov rcx, qword [rdi + 0x10]
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsi + rcx]
xor r10d, r10d
inc r12
mov word [rdx + r8 + 8], ax
mov rax, qword [rdi + 0x10]
movsxd rdx, dword [rsp + 0x98]
mov rcx, qword [rsi + rax]
lea r9, [r15 + 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, [r15 + rcx*2]
mov dword [rsp + 0x98], edx
mov qword [rsp + 0x30], rcx
cmp word [rax], r10w
jne 0x14004a011
mov rdx, r9
add r12, r12
call fcn.14004a7b0
mov rcx, qword [rdi + 0x10]
xor r10d, r10d
mov rdx, qword [rsi + rcx]
mov word [rdx + r12*8 + 8], ax
mov rax, qword [rdi + 0x10]
mov rcx, qword [rsi + rax]
mov qword [rcx + r12*8], r10
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
mov rax, qword [rsi + rax]
mov qword [rcx + rbx + 8], rax
jmp 0x14004a0cd
mov rax, qword [rdi + 0x10]
mov qword [rsi + rax], r10
mov rax, qword [rdi + 0x18]
mov qword [rax + rbx + 8], r10
movsxd rcx, dword [rsp + 0x20]
mov edx, dword [rsp + 0x90]
mov r15d, 1
add edx, r15d
lea r8, [rcx*2]
add rsi, 8
add rbx, 0x28
mov rax, rcx
add r8, r13
mov dword [rsp + 0x90], edx
mov r9d, 0x7c
add ecx, r15d
add rbp, r15
mov dword [rsp + 0x20], ecx
cmp rbp, qword [rsp + 0x38]
jl 0x140049e94
mov ecx, reloc.WSOCK32.dll_recv
call fcn.140025a08
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