Function at 0x14004f070
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.140014e9c
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 0x14004f2ae
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004f0f9
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004f0f3
movsxd rcx, edx
movsxd r9, esi
movzx r8d, word [rbx + rcx*2]
cmp r8w, r13w
je 0x14004f133
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 0x14004f113
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 0x14004f162
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004f15c
movsxd r8, edx
movsxd r9, esi
movzx ecx, word [rbx + r8*2]
cmp cx, r13w
je 0x14004f1a2
add r9, r9
cmp cx, r15w
je 0x14004f1a2
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 0x14004f17c
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 0x14004f1c0
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004f1ba
movsxd rax, edx
cmp word [rbx + rax*2], r15w
jne 0x14004f1d3
add edx, r12d
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004f1e2
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004f1dc
mov r9d, r12d
movsxd r8, esi
mov ebp, 0xa
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004f202
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004f1fc
movsxd rcx, edx
jmp 0x14004f241
cmp ax, r13w
jne 0x14004f220
add rcx, r12
add edx, r12d
cmp word [rbx + rcx*2], r13w
je 0x14004f213
movzx r10d, word [rbx + rcx*2]
cmp r10w, 0x29
je 0x14004f24d
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 0x14004f20d
jmp 0x14004f253
xor r9d, r9d
add edx, r12d
movsxd rax, edx
lea rcx, [rbx + rax*2]
jmp 0x14004f262
add edx, r12d
add rcx, r14
cmp word [rcx], r13w
je 0x14004f25c
mov rax, qword [rdi + 8]
test r9d, r9d
jne 0x14004f278
mov word [rax + r8*2], bp
jmp 0x14004f27d
mov word [rax + r8*2], r11w
movsxd rax, edx
add esi, r12d
add r8, r12
cmp word [rbx + rax*2], r11w
jne 0x14004f290
add edx, r12d
cmp r9d, r12d
je 0x14004f1f3
mov r10d, dword [rsp + 0x80]
cmp edx, dword [rsp + 0x90]
jl 0x14004f0ea
cmp dword [rdi + 0x44], 0
mov ebp, 3
je 0x14004f2c4
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.140014e9c
mov qword [rdi + 0x10], rax
mov rax, r15
mul rbx
mov rbx, 0xffffffffffffffff
cmovo rax, rbx
mov rcx, rax
call fcn.140014e9c
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 0x14004f527
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.140014e9c
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 0x14004f7d8
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 0x14004f57f
movsxd rax, ecx
mov word [r15 + r14*2], r10w
lea rbp, [r15 + rax*2]
jmp 0x14004f7c3
mov r9d, 0xa
cmp ax, r9w
je 0x14004f594
test ax, ax
jne 0x14004f7bd
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 0x14004f608
mov rax, rbp
lea rcx, [rbp + 2]
cmp word [rax], r11w
jne 0x14004f5f3
cmp word [rcx], r10w
je 0x14004f5ef
add r13d, r12d
jmp 0x14004f5f3
mov word [rax], r10w
add r8, r12
add r9d, r12d
add rcx, 2
lea rax, [rbp + r8*2]
cmp word [rax], r10w
jne 0x14004f5de
mov r12, r10
mov ecx, r10d
mov rax, r10
movsxd r8, r9d
test r9d, r9d
jle 0x14004f646
cmp word [rbp + rax*2], r11w
je 0x14004f62d
inc rax
inc ecx
cmp rax, r8
jl 0x14004f619
jmp 0x14004f646
mov word [rbp + rax*2], r10w
cmp word [rbp + rax*2 + 2], r10w
je 0x14004f646
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.14003c970
mov r11, qword [rdi + 0x18]
xor r10d, r10d
mov dword [r11 + rbx + 0x1c], r13d
test r13d, r13d
je 0x14004f781
lea eax, [r10 + 0x10]
movsxd rcx, r13d
mul rcx
lea rcx, [r10 - 1]
cmovo rax, rcx
mov rcx, rax
call fcn.140014e9c
mov rcx, qword [rdi + 0x10]
xor r10d, r10d
mov qword [rsi + rcx], rax
test r12, r12
je 0x14004f76e
mov ecx, r10d
mov r13d, r10d
mov r9, r12
mov qword [rsp + 0x30], rcx
cmp word [r12], r10w
je 0x14004f746
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 0x14004f72b
mov rcx, r9
mov word [rax], r10w
call fcn.14003c880
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 0x14004f6d6
mov rcx, r9
add r13, r13
call fcn.14003c880
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 0x14004f792
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 0x14004f563
mov ecx, reloc.WSOCK32.dll_recv
call fcn.140014e9c
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