Function at 0x14008bd80
Capabilities:
Create shortcut via ishelllink

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1a0]
sub rsp, 0x2a0
movzx eax, byte [rcx + 1]
xor ecx, ecx
mov rsi, rdx
cmp al, 1
mov ebx, ecx
mov r12d, ecx
cmova rbx, qword [0x14012a958]
cmp al, 2
mov r14d, ecx
cmova r12, qword [0x14012a960]
cmp al, 3
mov r15d, ecx
cmova r14, qword [0x14012a968]
cmp al, 4
mov edi, ecx
cmova r15, qword [0x14012a970]
cmp al, 5
mov r13d, ecx
cmova rdi, qword [0x14012a978]
cmp al, 6
cmova r13, qword [0x14012a980]
cmp al, 7
mov qword [rsp + 0x50], rdi
cmova rcx, qword [0x14012a988]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x38], rcx
test rbx, rbx
je 0x14008be1f
mov rcx, rbx
call fcn.1400243d0
test r12, r12
je 0x14008be2c
mov rcx, r12
call fcn.1400243d0
test r14, r14
je 0x14008be39
mov rcx, r14
call fcn.1400243d0
test r15, r15
je 0x14008be46
mov rcx, r15
call fcn.1400243d0
test rdi, rdi
je 0x14008be53
mov rcx, rdi
call fcn.1400243d0
test r13, r13
je 0x14008be60
mov rcx, r13
call fcn.1400243d0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14008be72
mov rcx, rax
call fcn.1400243d0
mov rcx, rsi
xor dil, dil
call fcn.14008e5b0
test al, al
je 0x14008d127
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea r11, [rsp + 0x30]
lea r9, [0x1400ef040]
lea rcx, [0x1400ef050]
lea r8d, [rdx + 1]
mov qword [rsp + 0x20], r11
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14008d0d0
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x1400ef060]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14008d0c5
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14008d0ba
movaps xmmword [rsp + 0x290], xmm6
movsd xmm6, qword [0x140112048]
movaps xmmword [rsp + 0x280], xmm7
movsd xmm7, qword [0x140112018]
movabs rdi, 0x8000000000000000
mov r13d, 8
movaps xmmword [rsp + 0x270], xmm8
movsd xmm8, qword [0x140112050]
test rbx, rbx
je 0x14008c1de
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x60]
xor r9d, r9d
mov rax, qword [rcx]
mov r8d, 0x104
mov dword [rsp + 0x20], 2
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
movzx r11d, byte [rbx + 0x23]
test r11b, r11b
jne 0x14008bf85
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd640
jmp 0x14008c1de
lea rax, [rsp + 0x60]
cmp qword [rbx + 8], rax
jne 0x14008bf99
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x14008bfb8
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
xor eax, eax
repne scasw ax, word [rdi]
movabs rdi, 0x8000000000000000
not rcx
lea r13, [rcx - 1]
lea rax, [r13 + 1]
lea rsi, [rax + rax]
cmp r11b, 2
jne 0x14008bfd8
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140006da0
jmp 0x14008c1d8
cmp rsi, qword [0x1401255a0]
jbe 0x14008c006
cmp rsi, qword [rbx + 0x18]
jbe 0x14008c006
lea r8, [0x1400f1524]
lea rdx, [0x140110420]
lea rcx, [0x14012c5c0]
call fcn.14004e590
jmp 0x14008c1d8
cmp rax, 2
jae 0x14008c020
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 4]
call fcn.1400bdcf0
jmp 0x14008c1d8
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x14008c036
mov rcx, qword [rbx]
and al, 0x3d
mov byte [rbx + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [rbx + 0x18]
and byte [rbx + 0x21], 0x82
cmp rsi, rcx
jbe 0x14008c1a8
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c06d
cmp al, 2
je 0x14008c0ae
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c19c
cmp rsi, 0x80
ja 0x14008c0ae
cmp rsi, 8
ja 0x14008c083
mov edi, 8
jmp 0x14008c094
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60a0
test rax, rax
je 0x14008c1d8
mov byte [rbx + 0x20], 1
jmp 0x14008c19c
cmp rsi, 0x20
jae 0x14008c0be
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c154
cmp rsi, 0x208
jae 0x14008c0d1
mov edi, 0x208
jmp 0x14008c154
cmp rsi, 0x50000
jae 0x14008c110
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x14008c0ec
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c106
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c106
mov rax, rdi
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c154
cmp rsi, 0x320000
jae 0x14008c122
lea rdi, [rsi + 0x8000]
jmp 0x14008c154
cmp rsi, 0xc80000
jae 0x14008c14d
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14008c154
lea rdi, [rsi + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c17b
test rcx, rcx
je 0x14008c17b
mov rcx, qword [rbx + 8]
mov sil, 1
call fcn.1400d6fc8
jmp 0x14008c17e
xor sil, sil
test rdi, rdi
js 0x14008c228
mov rcx, rdi
call fcn.1400d6f08
test rax, rax
je 0x14008c228
mov byte [rbx + 0x20], 2
and byte [rbx + 0x21], 0x7f
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rdi
mov rcx, qword [rbx + 8]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x14008c1c5
lea r8, [r13 + r13]
lea rdx, [rsp + 0x60]
call fcn.1400d7a30
mov rax, qword [rbx + 8]
lea rcx, [r13 + r13]
xor edx, edx
mov word [rcx + rax], dx
mov qword [rbx + 0x10], rcx
mov r13d, 8
test r12, r12
je 0x14008c4d3
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov r8d, 0x104
mov rax, qword [rcx]
call qword [rax + 0x40]
movzx r11d, byte [r12 + 0x23]
test r11b, r11b
jne 0x14008c26e
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd640
jmp 0x14008c4d3
test sil, sil
je 0x14008c240
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x14008c24b
mov rax, qword [rbx + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1524]
lea rdx, [0x1400f5a40]
lea rcx, [0x14012c5c0]
mov qword [rbx + 0x10], rax
call fcn.14004e590
jmp 0x14008c1d8
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008c284
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008c299
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rsi, [rcx - 1]
lea rax, [rsi + 1]
lea rbx, [rax + rax]
cmp r11b, 2
jne 0x14008c2b9
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006da0
jmp 0x14008c4d3
cmp rbx, qword [0x1401255a0]
jbe 0x14008c2e8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008c2e8
lea r8, [0x1400f1524]
lea rdx, [0x140110420]
lea rcx, [0x14012c5c0]
call fcn.14004e590
jmp 0x14008c4d3
cmp rax, 2
jae 0x14008c302
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bdcf0
jmp 0x14008c4d3
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008c31d
mov rcx, qword [r12]
and al, 0x3d
mov byte [r12 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [r12 + 0x18]
and byte [r12 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008c4a2
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c358
cmp al, 2
je 0x14008c399
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c492
cmp rbx, 0x80
ja 0x14008c399
cmp rbx, 8
ja 0x14008c36c
mov rdi, r13
jmp 0x14008c37d
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60a0
test rax, rax
je 0x14008c4d3
mov byte [r12 + 0x20], 1
jmp 0x14008c492
cmp rbx, 0x20
jae 0x14008c3a9
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c449
cmp rbx, 0x208
jae 0x14008c3bc
mov edi, 0x208
jmp 0x14008c449
cmp rbx, 0x50000
jae 0x14008c405
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c3d7
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c3fb
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c3fb
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c449
cmp rbx, 0x320000
jae 0x14008c417
lea rdi, [rbx + 0x8000]
jmp 0x14008c449
cmp rbx, 0xc80000
jae 0x14008c442
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c449
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c470
test rcx, rcx
je 0x14008c470
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d6fc8
jmp 0x14008c472
xor bl, bl
test rdi, rdi
js 0x14008c565
mov rcx, rdi
call fcn.1400d6f08
test rax, rax
je 0x14008c565
mov byte [r12 + 0x20], 2
and byte [r12 + 0x21], 0x7f
mov qword [r12 + 8], rax
mov qword [r12 + 0x18], rdi
mov rcx, qword [r12 + 8]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x14008c4bf
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a30
mov rax, qword [r12 + 8]
lea rcx, [rsi + rsi]
xor edx, edx
mov word [rcx + rax], dx
mov qword [r12 + 0x10], rcx
test r14, r14
je 0x14008c516
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov r8d, 0x104
mov rax, qword [rcx]
call qword [rax + 0x50]
movzx r11d, byte [r14 + 0x23]
test r11b, r11b
jne 0x14008c5ae
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd640
xor r12d, r12d
test r15, r15
je 0x14008ca95
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov r8d, 0x104
mov rax, qword [rcx]
call qword [rax + 0x30]
movzx r11d, byte [r15 + 0x23]
test r11b, r11b
jne 0x14008c843
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd640
jmp 0x14008ca95
test bl, bl
je 0x14008c57e
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008c58a
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1524]
lea rdx, [0x1400f5a40]
lea rcx, [0x14012c5c0]
mov qword [r12 + 0x10], rax
call fcn.14004e590
jmp 0x14008c4d3
lea rax, [rsp + 0x60]
cmp qword [r14 + 8], rax
jne 0x14008c5c2
mov rsi, qword [r14 + 0x10]
shr rsi, 1
jmp 0x14008c5d7
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rsi, [rcx - 1]
lea rax, [rsi + 1]
lea rbx, [rax + rax]
cmp r11b, 2
jne 0x14008c5f7
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006da0
jmp 0x14008c516
cmp rbx, qword [0x1401255a0]
jbe 0x14008c625
cmp rbx, qword [r14 + 0x18]
jbe 0x14008c625
lea r8, [0x1400f1524]
lea rdx, [0x140110420]
lea rcx, [0x14012c5c0]
call fcn.14004e590
jmp 0x14008c516
cmp rax, 2
jae 0x14008c63f
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 4]
call fcn.1400bdcf0
jmp 0x14008c516
movzx eax, byte [r14 + 0x21]
test al, 2
je 0x14008c657
mov rcx, qword [r14]
and al, 0x3d
mov byte [r14 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [r14 + 0x18]
and byte [r14 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008c7cb
movzx r8d, byte [r14 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c68f
cmp al, 2
je 0x14008c6cf
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c7be
cmp rbx, 0x80
ja 0x14008c6cf
cmp rbx, 8
ja 0x14008c6a3
mov rdi, r13
jmp 0x14008c6b4
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60a0
test rax, rax
je 0x14008c516
mov byte [r14 + 0x20], 1
jmp 0x14008c7be
cmp rbx, 0x20
jae 0x14008c6df
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c77f
cmp rbx, 0x208
jae 0x14008c6f2
mov edi, 0x208
jmp 0x14008c77f
cmp rbx, 0x50000
jae 0x14008c73b
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c70d
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c731
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c731
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c77f
cmp rbx, 0x320000
jae 0x14008c74d
lea rdi, [rbx + 0x8000]
jmp 0x14008c77f
cmp rbx, 0xc80000
jae 0x14008c778
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c77f
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c7a5
test rcx, rcx
je 0x14008c7a5
mov rcx, qword [r14 + 8]
mov bl, 1
call fcn.1400d6fc8
jmp 0x14008c7a7
xor bl, bl
test rdi, rdi
js 0x14008c800
mov rcx, rdi
call fcn.1400d6f08
test rax, rax
je 0x14008c800
mov byte [r14 + 0x20], 2
and byte [r14 + 0x21], 0x7f
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rdi
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x14008c7e7
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a30
mov rax, qword [r14 + 8]
lea rcx, [rsi + rsi]
xor r12d, r12d
mov word [rcx + rax], r12w
mov qword [r14 + 0x10], rcx
jmp 0x14008c519
xor r12d, r12d
test bl, bl
je 0x14008c818
lea rax, [0x14012c4b8]
mov qword [r14 + 0x18], r12
mov qword [r14 + 8], rax
jmp 0x14008c820
mov rax, qword [r14 + 8]
mov word [rax], r12w
lea r8, [0x1400f1524]
lea rdx, [0x1400f5a40]
lea rcx, [0x14012c5c0]
mov qword [r14 + 0x10], r12
call fcn.14004e590
jmp 0x14008c519
lea rax, [rsp + 0x60]
cmp qword [r15 + 8], rax
jne 0x14008c857
mov rsi, qword [r15 + 0x10]
shr rsi, 1
jmp 0x14008c86c
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rsi, [rcx - 1]
lea rax, [rsi + 1]
lea rbx, [rax + rax]
cmp r11b, 2
jne 0x14008c88c
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006da0
jmp 0x14008ca95
cmp rbx, qword [0x1401255a0]
jbe 0x14008c8ba
cmp rbx, qword [r15 + 0x18]
jbe 0x14008c8ba
lea r8, [0x1400f1524]
lea rdx, [0x140110420]
lea rcx, [0x14012c5c0]
call fcn.14004e590
jmp 0x14008ca95
cmp rax, 2
jae 0x14008c8d4
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 4]
call fcn.1400bdcf0
jmp 0x14008ca95
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x14008c8ec
mov rcx, qword [r15]
and al, 0x3d
mov byte [r15 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [r15 + 0x18]
and byte [r15 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008ca68
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c924
cmp al, 2
je 0x14008c964
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008ca5b
cmp rbx, 0x80
ja 0x14008c964
cmp rbx, 8
ja 0x14008c938
mov rdi, r13
jmp 0x14008c949
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60a0
test rax, rax
je 0x14008ca95
mov byte [r15 + 0x20], 1
jmp 0x14008ca5b
cmp rbx, 0x20
jae 0x14008c974
mov edi, SafeArrayAllocDescriptor
jmp 0x14008ca14
cmp rbx, 0x208
jae 0x14008c987
mov edi, 0x208
jmp 0x14008ca14
cmp rbx, 0x50000
jae 0x14008c9d0
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c9a2
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c9c6
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c9c6
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008ca14
cmp rbx, 0x320000
jae 0x14008c9e2
lea rdi, [rbx + 0x8000]
jmp 0x14008ca14
cmp rbx, 0xc80000
jae 0x14008ca0d
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008ca14
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008ca3a
test rcx, rcx
je 0x14008ca3a
mov rcx, qword [r15 + 8]
mov bl, 1
call fcn.1400d6fc8
jmp 0x14008ca3c
xor bl, bl
test rdi, rdi
js 0x14008cb00
mov rcx, rdi
call fcn.1400d6f08
test rax, rax
je 0x14008cb00
mov byte [r15 + 0x20], 2
and byte [r15 + 0x21], 0x7f
mov qword [r15 + 8], rax
mov qword [r15 + 0x18], rdi
mov rcx, qword [r15 + 8]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x14008ca84
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a30
mov rax, qword [r15 + 8]
lea rcx, [rsi + rsi]
mov word [rcx + rax], r12w
mov qword [r15 + 0x10], rcx
mov r12, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
test r12, r12
jne 0x14008caad
test r14, r14
je 0x14008ce0f
mov rcx, qword [rsp + 0x30]
lea r9, [rbp + 0x1f0]
lea rdx, [rsp + 0x60]
mov rax, qword [rcx]
mov r8d, 0x104
call qword [rax + 0x80]
test r12, r12
je 0x14008cbb1
movzx edx, byte [r12 + 0x23]
test dl, dl
jne 0x14008cb40
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd640
jmp 0x14008cbb1
test bl, bl
je 0x14008cb15
lea rax, [0x14012c4b8]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x14008cb1d
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1400f1524]
lea rdx, [0x1400f5a40]
lea rcx, [0x14012c5c0]
mov qword [r15 + 0x10], r12
call fcn.14004e590
jmp 0x14008ca95
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008cb56
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008cb6b
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x60]
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rsi, [rcx - 1]
lea rax, [rsi + 1]
lea rbx, [rax + rax]
cmp dl, 2
jne 0x14008cb87
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006da0
jmp 0x14008cbb1
cmp rbx, qword [0x1401255a0]
jbe 0x14008cbe8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008cbe8
lea r8, [0x1400f1524]
lea rdx, [0x140110420]
lea rcx, [0x14012c5c0]
call fcn.14004e590
xor edx, edx
test r14, r14
je 0x14008ce0f
cmp word [rsp + 0x60], 0
mov rcx, r14
je 0x14008ce0a
mov eax, dword [rbp + 0x1f0]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
test eax, eax
setns dl
add edx, eax
movsxd rdx, edx
call fcn.140001090
jmp 0x14008ce0f
cmp rax, 2
jae 0x14008cbff
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bdcf0
jmp 0x14008cbb1
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008cc1a
mov rcx, qword [r12]
and al, 0x3d
mov byte [r12 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [r12 + 0x18]
and byte [r12 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008cd97
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008cc55
cmp al, 2
je 0x14008cc96
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008cd87
cmp rbx, 0x80
ja 0x14008cc96
cmp rbx, 8
ja 0x14008cc69
mov rdi, r13
jmp 0x14008cc7a
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60a0
test rax, rax
je 0x14008cbb1
mov byte [r12 + 0x20], 1
jmp 0x14008cd87
cmp rbx, 0x20
jae 0x14008cca6
mov edi, SafeArrayAllocDescriptor
jmp 0x14008cd46
cmp rbx, 0x208
jae 0x14008ccb9
mov edi, 0x208
jmp 0x14008cd46
cmp rbx, 0x50000
jae 0x14008cd02
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008ccd4
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008ccf8
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008ccf8
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008cd46
cmp rbx, 0x320000
jae 0x14008cd14
lea rdi, [rbx + 0x8000]
jmp 0x14008cd46
cmp rbx, 0xc80000
jae 0x14008cd3f
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008cd46
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008cd6d
test rcx, rcx
je 0x14008cd6d
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d6fc8
jmp 0x14008cd6f
xor bl, bl
test rdi, rdi
js 0x14008cdcd
mov rcx, rdi
call fcn.1400d6f08
test rax, rax
je 0x14008cdcd
mov byte [r12 + 0x20], 2
and byte [r12 + 0x21], 0x7f
mov qword [r12 + 8], rax
mov qword [r12 + 0x18], rdi
mov rcx, qword [r12 + 8]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x14008cdb4
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a30
mov rax, qword [r12 + 8]
lea rcx, [rsi + rsi]
xor edx, edx
mov word [rcx + rax], dx
mov qword [r12 + 0x10], rcx
jmp 0x14008cbb3
test bl, bl
je 0x14008cde6
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008cdf2
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
mov qword [r12 + 0x10], rax
lea r8, [0x1400f1524]
lea rdx, [0x1400f5a40]
jmp 0x14008cba5
call fcn.1400243d0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14008ce3d
mov rcx, qword [rsp + 0x30]
lea rdx, [rbp + 0x1f8]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_WSASetLastError]
movsxd rdx, dword [rbp + 0x1f8]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rdi
call fcn.140001090
mov rdi, qword [0x14012b628]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x14008ce6d
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400f1614]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd640
jmp 0x14008d09e
lea rsi, [0x1400f1614]
cmp qword [rdi + 8], rsi
jne 0x14008ce83
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x14008ce89
mov r12d, 1
lea rcx, [r12 + 1]
lea rbx, [rcx + rcx]
cmp al, 2
jne 0x14008cea6
mov rdx, r12
mov rcx, rsi
call fcn.140006da0
jmp 0x14008d09e
cmp rbx, qword [0x1401255a0]
jbe 0x14008ced4
cmp rbx, qword [rdi + 0x18]
jbe 0x14008ced4
lea r8, [0x1400f1524]
lea rdx, [0x140110420]
lea rcx, [0x14012c5c0]
call fcn.14004e590
jmp 0x14008d09e
cmp rcx, 2
jae 0x14008ceee
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400bdcf0
jmp 0x14008d09e
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x14008cf04
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008d077
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008cf3b
cmp al, 2
je 0x14008cf77
mov r13, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008d06b
cmp rbx, 0x80
ja 0x14008cf77
cmp rbx, 8
jbe 0x14008cf5d
mov r13d, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe r13d, eax
mov rcx, r13
call fcn.1400b60a0
test rax, rax
je 0x14008d09e
mov byte [rdi + 0x20], 1
jmp 0x14008d06b
cmp rbx, 0x20
jae 0x14008cf88
mov r13d, SafeArrayAllocDescriptor
jmp 0x14008d029
cmp rbx, 0x208
jae 0x14008cf9c
mov r13d, 0x208
jmp 0x14008d029
cmp rbx, 0x50000
jae 0x14008cfe5
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008cfb7
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008cfdb
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008cfdb
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r13, xmm0
add r13, rax
jmp 0x14008d029
cmp rbx, 0x320000
jae 0x14008cff7
lea r13, [rbx + 0x8000]
jmp 0x14008d029
cmp rbx, 0xc80000
jae 0x14008d022
movabs rax, 0x47ae147ae147ae15
mov r13, rbx
mul rbx
sub r13, rdx
shr r13, 1
add r13, rdx
shr r13, 6
add r13, rbx
jmp 0x14008d029
lea r13, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp r13, rax
cmova r13, rax
cmp r8b, 2
jne 0x14008d04f
test rcx, rcx
je 0x14008d04f
mov rcx, qword [rdi + 8]
mov bl, 1
call fcn.1400d6fc8
jmp 0x14008d051
xor bl, bl
test r13, r13
js 0x14008d0e2
mov rcx, r13
call fcn.1400d6f08
test rax, rax
je 0x14008d0e2
mov byte [rdi + 0x20], 2
and byte [rdi + 0x21], 0x7f
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], r13
mov rcx, qword [rdi + 8]
cmp rcx, rsi
je 0x14008d08c
lea r8, [r12 + r12]
mov rdx, rsi
call fcn.1400d7a30
mov rax, qword [rdi + 8]
lea rcx, [r12 + r12]
xor edx, edx
mov word [rcx + rax], dx
mov qword [rdi + 0x10], rcx
movaps xmm8, xmmword [rsp + 0x270]
movaps xmm7, xmmword [rsp + 0x280]
movaps xmm6, xmmword [rsp + 0x290]
mov dil, 1
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rcx]
call qword [rdx + reloc.WSOCK32.dll_recv]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rcx]
call qword [rdx + reloc.WSOCK32.dll_recv]
call qword [sym.imp.ole32.dll_CoUninitialize]
test dil, dil
je 0x14008d127
mov eax, 1
jmp 0x14008d135
test bl, bl
je 0x14008d0f9
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x18], rax
jmp 0x14008d104
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1524]
lea rdx, [0x1400f5a40]
lea rcx, [0x14012c5c0]
mov qword [rdi + 0x10], rax
call fcn.14004e590
jmp 0x14008d09e
mov rcx, qword [rbp + 0x1e0]
mov dl, 1
call fcn.14004ced0
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret