Function at 0x14008bd90
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 0x14008be2f
mov rcx, rbx
call fcn.140024380
test r12, r12
je 0x14008be3c
mov rcx, r12
call fcn.140024380
test r14, r14
je 0x14008be49
mov rcx, r14
call fcn.140024380
test r15, r15
je 0x14008be56
mov rcx, r15
call fcn.140024380
test rdi, rdi
je 0x14008be63
mov rcx, rdi
call fcn.140024380
test r13, r13
je 0x14008be70
mov rcx, r13
call fcn.140024380
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14008be82
mov rcx, rax
call fcn.140024380
mov rcx, rsi
xor dil, dil
call fcn.14008e5c0
test al, al
je 0x14008d137
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 0x14008d0e0
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x1400ef060]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14008d0d5
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14008d0ca
movaps xmmword [rsp + 0x290], xmm6
movsd xmm6, qword [0x140112068]
movaps xmmword [rsp + 0x280], xmm7
movsd xmm7, qword [0x140112038]
movabs rdi, 0x8000000000000000
mov r13d, 8
movaps xmmword [rsp + 0x270], xmm8
movsd xmm8, qword [0x140112070]
test rbx, rbx
je 0x14008c1ee
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 0x14008bf95
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
jmp 0x14008c1ee
lea rax, [rsp + 0x60]
cmp qword [rbx + 8], rax
jne 0x14008bfa9
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x14008bfc8
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 0x14008bfe8
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140006d20
jmp 0x14008c1e8
cmp rsi, qword [0x1401255a0]
jbe 0x14008c016
cmp rsi, qword [rbx + 0x18]
jbe 0x14008c016
lea r8, [0x1400f1514]
lea rdx, [0x140110440]
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
jmp 0x14008c1e8
cmp rax, 2
jae 0x14008c030
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 4]
call fcn.1400bdd00
jmp 0x14008c1e8
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x14008c046
mov rcx, qword [rbx]
and al, 0x3d
mov byte [rbx + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [rbx + 0x18]
and byte [rbx + 0x21], 0x82
cmp rsi, rcx
jbe 0x14008c1b8
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c07d
cmp al, 2
je 0x14008c0be
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c1ac
cmp rsi, 0x80
ja 0x14008c0be
cmp rsi, 8
ja 0x14008c093
mov edi, 8
jmp 0x14008c0a4
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.OLEAUT32.DLL_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60b0
test rax, rax
je 0x14008c1e8
mov byte [rbx + 0x20], 1
jmp 0x14008c1ac
cmp rsi, 0x20
jae 0x14008c0ce
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c164
cmp rsi, 0x208
jae 0x14008c0e1
mov edi, 0x208
jmp 0x14008c164
cmp rsi, 0x50000
jae 0x14008c120
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x14008c0fc
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c116
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c116
mov rax, rdi
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c164
cmp rsi, 0x320000
jae 0x14008c132
lea rdi, [rsi + 0x8000]
jmp 0x14008c164
cmp rsi, 0xc80000
jae 0x14008c15d
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14008c164
lea rdi, [rsi + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c18b
test rcx, rcx
je 0x14008c18b
mov rcx, qword [rbx + 8]
mov sil, 1
call fcn.1400d6fd8
jmp 0x14008c18e
xor sil, sil
test rdi, rdi
js 0x14008c238
mov rcx, rdi
call fcn.1400d6f18
test rax, rax
je 0x14008c238
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 0x14008c1d5
lea r8, [r13 + r13]
lea rdx, [rsp + 0x60]
call fcn.1400d7a40
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 0x14008c4e3
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov r8d, 0x104
mov rax, qword [rcx]
call qword [rax + pe_nt_image_headers64]
movzx r11d, byte [r12 + 0x23]
test r11b, r11b
jne 0x14008c27e
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
jmp 0x14008c4e3
test sil, sil
je 0x14008c250
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x14008c25b
mov rax, qword [rbx + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1514]
lea rdx, [0x1400f5a30]
lea rcx, [0x14012c5c0]
mov qword [rbx + 0x10], rax
call fcn.14004e5e0
jmp 0x14008c1e8
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008c294
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008c2a9
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 0x14008c2c9
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006d20
jmp 0x14008c4e3
cmp rbx, qword [0x1401255a0]
jbe 0x14008c2f8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008c2f8
lea r8, [0x1400f1514]
lea rdx, [0x140110440]
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
jmp 0x14008c4e3
cmp rax, 2
jae 0x14008c312
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bdd00
jmp 0x14008c4e3
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008c32d
mov rcx, qword [r12]
and al, 0x3d
mov byte [r12 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [r12 + 0x18]
and byte [r12 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008c4b2
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c368
cmp al, 2
je 0x14008c3a9
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c4a2
cmp rbx, 0x80
ja 0x14008c3a9
cmp rbx, 8
ja 0x14008c37c
mov rdi, r13
jmp 0x14008c38d
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.DLL_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60b0
test rax, rax
je 0x14008c4e3
mov byte [r12 + 0x20], 1
jmp 0x14008c4a2
cmp rbx, 0x20
jae 0x14008c3b9
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c459
cmp rbx, 0x208
jae 0x14008c3cc
mov edi, 0x208
jmp 0x14008c459
cmp rbx, 0x50000
jae 0x14008c415
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c3e7
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c40b
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c40b
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c459
cmp rbx, 0x320000
jae 0x14008c427
lea rdi, [rbx + 0x8000]
jmp 0x14008c459
cmp rbx, 0xc80000
jae 0x14008c452
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c459
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c480
test rcx, rcx
je 0x14008c480
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d6fd8
jmp 0x14008c482
xor bl, bl
test rdi, rdi
js 0x14008c575
mov rcx, rdi
call fcn.1400d6f18
test rax, rax
je 0x14008c575
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 0x14008c4cf
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a40
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 0x14008c526
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 0x14008c5be
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
xor r12d, r12d
test r15, r15
je 0x14008caa5
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 0x14008c853
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
jmp 0x14008caa5
test bl, bl
je 0x14008c58e
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008c59a
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1514]
lea rdx, [0x1400f5a30]
lea rcx, [0x14012c5c0]
mov qword [r12 + 0x10], rax
call fcn.14004e5e0
jmp 0x14008c4e3
lea rax, [rsp + 0x60]
cmp qword [r14 + 8], rax
jne 0x14008c5d2
mov rsi, qword [r14 + 0x10]
shr rsi, 1
jmp 0x14008c5e7
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 0x14008c607
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006d20
jmp 0x14008c526
cmp rbx, qword [0x1401255a0]
jbe 0x14008c635
cmp rbx, qword [r14 + 0x18]
jbe 0x14008c635
lea r8, [0x1400f1514]
lea rdx, [0x140110440]
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
jmp 0x14008c526
cmp rax, 2
jae 0x14008c64f
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 4]
call fcn.1400bdd00
jmp 0x14008c526
movzx eax, byte [r14 + 0x21]
test al, 2
je 0x14008c667
mov rcx, qword [r14]
and al, 0x3d
mov byte [r14 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [r14 + 0x18]
and byte [r14 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008c7db
movzx r8d, byte [r14 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c69f
cmp al, 2
je 0x14008c6df
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c7ce
cmp rbx, 0x80
ja 0x14008c6df
cmp rbx, 8
ja 0x14008c6b3
mov rdi, r13
jmp 0x14008c6c4
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.DLL_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60b0
test rax, rax
je 0x14008c526
mov byte [r14 + 0x20], 1
jmp 0x14008c7ce
cmp rbx, 0x20
jae 0x14008c6ef
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c78f
cmp rbx, 0x208
jae 0x14008c702
mov edi, 0x208
jmp 0x14008c78f
cmp rbx, 0x50000
jae 0x14008c74b
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c71d
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c741
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c741
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c78f
cmp rbx, 0x320000
jae 0x14008c75d
lea rdi, [rbx + 0x8000]
jmp 0x14008c78f
cmp rbx, 0xc80000
jae 0x14008c788
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c78f
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c7b5
test rcx, rcx
je 0x14008c7b5
mov rcx, qword [r14 + 8]
mov bl, 1
call fcn.1400d6fd8
jmp 0x14008c7b7
xor bl, bl
test rdi, rdi
js 0x14008c810
mov rcx, rdi
call fcn.1400d6f18
test rax, rax
je 0x14008c810
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 0x14008c7f7
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a40
mov rax, qword [r14 + 8]
lea rcx, [rsi + rsi]
xor r12d, r12d
mov word [rcx + rax], r12w
mov qword [r14 + 0x10], rcx
jmp 0x14008c529
xor r12d, r12d
test bl, bl
je 0x14008c828
lea rax, [0x14012c4b8]
mov qword [r14 + 0x18], r12
mov qword [r14 + 8], rax
jmp 0x14008c830
mov rax, qword [r14 + 8]
mov word [rax], r12w
lea r8, [0x1400f1514]
lea rdx, [0x1400f5a30]
lea rcx, [0x14012c5c0]
mov qword [r14 + 0x10], r12
call fcn.14004e5e0
jmp 0x14008c529
lea rax, [rsp + 0x60]
cmp qword [r15 + 8], rax
jne 0x14008c867
mov rsi, qword [r15 + 0x10]
shr rsi, 1
jmp 0x14008c87c
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 0x14008c89c
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006d20
jmp 0x14008caa5
cmp rbx, qword [0x1401255a0]
jbe 0x14008c8ca
cmp rbx, qword [r15 + 0x18]
jbe 0x14008c8ca
lea r8, [0x1400f1514]
lea rdx, [0x140110440]
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
jmp 0x14008caa5
cmp rax, 2
jae 0x14008c8e4
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 4]
call fcn.1400bdd00
jmp 0x14008caa5
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x14008c8fc
mov rcx, qword [r15]
and al, 0x3d
mov byte [r15 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [r15 + 0x18]
and byte [r15 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008ca78
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c934
cmp al, 2
je 0x14008c974
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008ca6b
cmp rbx, 0x80
ja 0x14008c974
cmp rbx, 8
ja 0x14008c948
mov rdi, r13
jmp 0x14008c959
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.DLL_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60b0
test rax, rax
je 0x14008caa5
mov byte [r15 + 0x20], 1
jmp 0x14008ca6b
cmp rbx, 0x20
jae 0x14008c984
mov edi, SafeArrayAllocDescriptor
jmp 0x14008ca24
cmp rbx, 0x208
jae 0x14008c997
mov edi, 0x208
jmp 0x14008ca24
cmp rbx, 0x50000
jae 0x14008c9e0
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c9b2
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c9d6
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c9d6
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008ca24
cmp rbx, 0x320000
jae 0x14008c9f2
lea rdi, [rbx + 0x8000]
jmp 0x14008ca24
cmp rbx, 0xc80000
jae 0x14008ca1d
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008ca24
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008ca4a
test rcx, rcx
je 0x14008ca4a
mov rcx, qword [r15 + 8]
mov bl, 1
call fcn.1400d6fd8
jmp 0x14008ca4c
xor bl, bl
test rdi, rdi
js 0x14008cb10
mov rcx, rdi
call fcn.1400d6f18
test rax, rax
je 0x14008cb10
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 0x14008ca94
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a40
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 0x14008cabd
test r14, r14
je 0x14008ce1f
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 0x14008cbc1
movzx edx, byte [r12 + 0x23]
test dl, dl
jne 0x14008cb50
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
jmp 0x14008cbc1
test bl, bl
je 0x14008cb25
lea rax, [0x14012c4b8]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x14008cb2d
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1400f1514]
lea rdx, [0x1400f5a30]
lea rcx, [0x14012c5c0]
mov qword [r15 + 0x10], r12
call fcn.14004e5e0
jmp 0x14008caa5
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008cb66
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008cb7b
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 0x14008cb97
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006d20
jmp 0x14008cbc1
cmp rbx, qword [0x1401255a0]
jbe 0x14008cbf8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008cbf8
lea r8, [0x1400f1514]
lea rdx, [0x140110440]
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
xor edx, edx
test r14, r14
je 0x14008ce1f
cmp word [rsp + 0x60], 0
mov rcx, r14
je 0x14008ce1a
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 0x14008ce1f
cmp rax, 2
jae 0x14008cc0f
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bdd00
jmp 0x14008cbc1
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008cc2a
mov rcx, qword [r12]
and al, 0x3d
mov byte [r12 + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [r12 + 0x18]
and byte [r12 + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008cda7
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008cc65
cmp al, 2
je 0x14008cca6
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008cd97
cmp rbx, 0x80
ja 0x14008cca6
cmp rbx, 8
ja 0x14008cc79
mov rdi, r13
jmp 0x14008cc8a
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.DLL_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b60b0
test rax, rax
je 0x14008cbc1
mov byte [r12 + 0x20], 1
jmp 0x14008cd97
cmp rbx, 0x20
jae 0x14008ccb6
mov edi, SafeArrayAllocDescriptor
jmp 0x14008cd56
cmp rbx, 0x208
jae 0x14008ccc9
mov edi, 0x208
jmp 0x14008cd56
cmp rbx, 0x50000
jae 0x14008cd12
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008cce4
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008cd08
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008cd08
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008cd56
cmp rbx, 0x320000
jae 0x14008cd24
lea rdi, [rbx + 0x8000]
jmp 0x14008cd56
cmp rbx, 0xc80000
jae 0x14008cd4f
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008cd56
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008cd7d
test rcx, rcx
je 0x14008cd7d
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d6fd8
jmp 0x14008cd7f
xor bl, bl
test rdi, rdi
js 0x14008cddd
mov rcx, rdi
call fcn.1400d6f18
test rax, rax
je 0x14008cddd
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 0x14008cdc4
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d7a40
mov rax, qword [r12 + 8]
lea rcx, [rsi + rsi]
xor edx, edx
mov word [rcx + rax], dx
mov qword [r12 + 0x10], rcx
jmp 0x14008cbc3
test bl, bl
je 0x14008cdf6
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008ce02
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
mov qword [r12 + 0x10], rax
lea r8, [0x1400f1514]
lea rdx, [0x1400f5a30]
jmp 0x14008cbb5
call fcn.140024380
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14008ce4d
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 0x14008ce7d
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400f1604]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bd650
jmp 0x14008d0ae
lea rsi, [0x1400f1604]
cmp qword [rdi + 8], rsi
jne 0x14008ce93
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x14008ce99
mov r12d, 1
lea rcx, [r12 + 1]
lea rbx, [rcx + rcx]
cmp al, 2
jne 0x14008ceb6
mov rdx, r12
mov rcx, rsi
call fcn.140006d20
jmp 0x14008d0ae
cmp rbx, qword [0x1401255a0]
jbe 0x14008cee4
cmp rbx, qword [rdi + 0x18]
jbe 0x14008cee4
lea r8, [0x1400f1514]
lea rdx, [0x140110440]
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
jmp 0x14008d0ae
cmp rcx, 2
jae 0x14008cefe
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400bdd00
jmp 0x14008d0ae
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x14008cf14
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp rbx, rcx
jbe 0x14008d087
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008cf4b
cmp al, 2
je 0x14008cf87
mov r13, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008d07b
cmp rbx, 0x80
ja 0x14008cf87
cmp rbx, 8
jbe 0x14008cf6d
mov r13d, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.DLL_SafeArrayGetDim
cmovbe r13d, eax
mov rcx, r13
call fcn.1400b60b0
test rax, rax
je 0x14008d0ae
mov byte [rdi + 0x20], 1
jmp 0x14008d07b
cmp rbx, 0x20
jae 0x14008cf98
mov r13d, SafeArrayAllocDescriptor
jmp 0x14008d039
cmp rbx, 0x208
jae 0x14008cfac
mov r13d, 0x208
jmp 0x14008d039
cmp rbx, 0x50000
jae 0x14008cff5
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008cfc7
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008cfeb
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008cfeb
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r13, xmm0
add r13, rax
jmp 0x14008d039
cmp rbx, 0x320000
jae 0x14008d007
lea r13, [rbx + 0x8000]
jmp 0x14008d039
cmp rbx, 0xc80000
jae 0x14008d032
movabs rax, 0x47ae147ae147ae15
mov r13, rbx
mul rbx
sub r13, rdx
shr r13, 1
add r13, rdx
shr r13, 6
add r13, rbx
jmp 0x14008d039
lea r13, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp r13, rax
cmova r13, rax
cmp r8b, 2
jne 0x14008d05f
test rcx, rcx
je 0x14008d05f
mov rcx, qword [rdi + 8]
mov bl, 1
call fcn.1400d6fd8
jmp 0x14008d061
xor bl, bl
test r13, r13
js 0x14008d0f2
mov rcx, r13
call fcn.1400d6f18
test rax, rax
je 0x14008d0f2
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 0x14008d09c
lea r8, [r12 + r12]
mov rdx, rsi
call fcn.1400d7a40
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.OLEAUT32.DLL_SafeArrayGetDim]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.DLL_SafeArrayGetDim]
call qword [sym.imp.OLE32.DLL_CoUninitialize]
test dil, dil
je 0x14008d137
mov eax, 1
jmp 0x14008d145
test bl, bl
je 0x14008d109
lea rcx, [0x14012c4b8]
xor eax, eax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x18], rax
jmp 0x14008d114
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1514]
lea rdx, [0x1400f5a30]
lea rcx, [0x14012c5c0]
mov qword [rdi + 0x10], rax
call fcn.14004e5e0
jmp 0x14008d0ae
mov rcx, qword [rbp + 0x1e0]
mov dl, 1
call fcn.14004cf20
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret