Function at 0x140076bb0
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 + 2]
xor ecx, ecx
mov rsi, rdx
cmp al, 1
mov ebx, ecx
mov r12d, ecx
cmova rbx, qword [0x14016f6f8]
cmp al, 2
mov r14d, ecx
cmova r12, qword [0x14016f700]
cmp al, 3
mov r15d, ecx
cmova r14, qword [0x14016f708]
cmp al, 4
mov edi, ecx
cmova r15, qword [0x14016f710]
cmp al, 5
mov r13d, ecx
cmova rdi, qword [0x14016f718]
cmp al, 6
cmova r13, qword [0x14016f720]
cmp al, 7
mov qword [rsp + 0x50], rdi
cmova rcx, qword [0x14016f728]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x38], rcx
test rbx, rbx
je 0x140076c4f
mov rcx, rbx
call fcn.140023100
test r12, r12
je 0x140076c5c
mov rcx, r12
call fcn.140023100
test r14, r14
je 0x140076c69
mov rcx, r14
call fcn.140023100
test r15, r15
je 0x140076c76
mov rcx, r15
call fcn.140023100
test rdi, rdi
je 0x140076c83
mov rcx, rdi
call fcn.140023100
test r13, r13
je 0x140076c90
mov rcx, r13
call fcn.140023100
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x140076ca2
mov rcx, rax
call fcn.140023100
mov rcx, rsi
xor dil, dil
call fcn.1400793d0
test al, al
je 0x140077f84
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea r11, [rsp + 0x30]
lea r9, [0x1401270c0]
lea rcx, [0x1401270d0]
lea r8d, [rdx + 1]
mov qword [rsp + 0x20], r11
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x140077f2d
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x1401270e0]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x140077f22
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x140077f17
movaps xmmword [rsp + 0x290], xmm6
movsd xmm6, qword [0x140153038]
movaps xmmword [rsp + 0x280], xmm7
movsd xmm7, qword [0x140152fd8]
movabs rdi, 0x8000000000000000
mov r13d, 8
movaps xmmword [rsp + 0x270], xmm8
movsd xmm8, qword [0x140153040]
test rbx, rbx
je 0x140077016
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 0x140076db5
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e9bc0
jmp 0x140077016
lea rax, [rsp + 0x60]
cmp qword [rbx + 8], rax
jne 0x140076dc9
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x140076de8
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 0x140076e08
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140005910
jmp 0x140077010
cmp rsi, qword [0x140169b08]
jbe 0x140076e3e
cmp rsi, qword [rbx + 0x18]
jbe 0x140076e3e
lea rcx, [0x14014bd60]
call fcn.1400dd2e0
lea r8, [0x1401295d4]
lea rcx, [0x1401712e0]
mov rdx, rax
call fcn.1400a5580
jmp 0x140077010
cmp rax, 2
jae 0x140076e58
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 4]
call fcn.1400ea290
jmp 0x140077010
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x140076e6e
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 0x140076fe0
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140076ea5
cmp al, 2
je 0x140076ee6
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x140076fd4
cmp rsi, 0x80
ja 0x140076ee6
cmp rsi, 8
ja 0x140076ebb
mov edi, 8
jmp 0x140076ecc
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dc2b0
test rax, rax
je 0x140077010
mov byte [rbx + 0x20], 1
jmp 0x140076fd4
cmp rsi, 0x20
jae 0x140076ef6
mov edi, SafeArrayAllocDescriptor
jmp 0x140076f8c
cmp rsi, 0x208
jae 0x140076f09
mov edi, 0x208
jmp 0x140076f8c
cmp rsi, 0x50000
jae 0x140076f48
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x140076f24
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140076f3e
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140076f3e
mov rax, rdi
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x140076f8c
cmp rsi, 0x320000
jae 0x140076f5a
lea rdi, [rsi + 0x8000]
jmp 0x140076f8c
cmp rsi, 0xc80000
jae 0x140076f85
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x140076f8c
lea rdi, [rsi + 0x20000]
mov rax, qword [0x140169b08]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x140076fb3
test rcx, rcx
je 0x140076fb3
mov rcx, qword [rbx + 8]
mov sil, 1
call fcn.140108f48
jmp 0x140076fb6
xor sil, sil
test rdi, rdi
js 0x140077060
mov rcx, rdi
call fcn.1401084ac
test rax, rax
je 0x140077060
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 0x140076ffd
lea r8, [r13 + r13]
lea rdx, [rsp + 0x60]
call fcn.140109100
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 0x140077313
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 0x1400770a6
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e9bc0
jmp 0x140077313
test sil, sil
je 0x140077078
lea rcx, [0x140171290]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x140077083
mov rax, qword [rbx + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
mov qword [rbx + 0x10], rax
call fcn.1400a5580
jmp 0x140077010
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x1400770bc
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x1400770d1
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 0x1400770f1
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140005910
jmp 0x140077313
cmp rbx, qword [0x140169b08]
jbe 0x140077128
cmp rbx, qword [r12 + 0x18]
jbe 0x140077128
lea rcx, [0x14014bd60]
call fcn.1400dd2e0
lea r8, [0x1401295d4]
lea rcx, [0x1401712e0]
mov rdx, rax
call fcn.1400a5580
jmp 0x140077313
cmp rax, 2
jae 0x140077142
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400ea290
jmp 0x140077313
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14007715d
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 0x1400772e2
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140077198
cmp al, 2
je 0x1400771d9
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400772d2
cmp rbx, 0x80
ja 0x1400771d9
cmp rbx, 8
ja 0x1400771ac
mov rdi, r13
jmp 0x1400771bd
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dc2b0
test rax, rax
je 0x140077313
mov byte [r12 + 0x20], 1
jmp 0x1400772d2
cmp rbx, 0x20
jae 0x1400771e9
mov edi, SafeArrayAllocDescriptor
jmp 0x140077289
cmp rbx, 0x208
jae 0x1400771fc
mov edi, 0x208
jmp 0x140077289
cmp rbx, 0x50000
jae 0x140077245
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x140077217
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14007723b
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14007723b
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x140077289
cmp rbx, 0x320000
jae 0x140077257
lea rdi, [rbx + 0x8000]
jmp 0x140077289
cmp rbx, 0xc80000
jae 0x140077282
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x140077289
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140169b08]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400772b0
test rcx, rcx
je 0x1400772b0
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.140108f48
jmp 0x1400772b2
xor bl, bl
test rdi, rdi
js 0x1400773a5
mov rcx, rdi
call fcn.1401084ac
test rax, rax
je 0x1400773a5
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 0x1400772ff
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.140109100
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 0x140077356
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 0x1400773ee
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e9bc0
xor r12d, r12d
test r15, r15
je 0x1400778e5
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 0x14007768b
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e9bc0
jmp 0x1400778e5
test bl, bl
je 0x1400773be
lea rcx, [0x140171290]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x1400773ca
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
mov qword [r12 + 0x10], rax
call fcn.1400a5580
jmp 0x140077313
lea rax, [rsp + 0x60]
cmp qword [r14 + 8], rax
jne 0x140077402
mov rsi, qword [r14 + 0x10]
shr rsi, 1
jmp 0x140077417
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 0x140077437
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140005910
jmp 0x140077356
cmp rbx, qword [0x140169b08]
jbe 0x14007746d
cmp rbx, qword [r14 + 0x18]
jbe 0x14007746d
lea rcx, [0x14014bd60]
call fcn.1400dd2e0
lea r8, [0x1401295d4]
lea rcx, [0x1401712e0]
mov rdx, rax
call fcn.1400a5580
jmp 0x140077356
cmp rax, 2
jae 0x140077487
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 4]
call fcn.1400ea290
jmp 0x140077356
movzx eax, byte [r14 + 0x21]
test al, 2
je 0x14007749f
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 0x140077613
movzx r8d, byte [r14 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400774d7
cmp al, 2
je 0x140077517
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x140077606
cmp rbx, 0x80
ja 0x140077517
cmp rbx, 8
ja 0x1400774eb
mov rdi, r13
jmp 0x1400774fc
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dc2b0
test rax, rax
je 0x140077356
mov byte [r14 + 0x20], 1
jmp 0x140077606
cmp rbx, 0x20
jae 0x140077527
mov edi, SafeArrayAllocDescriptor
jmp 0x1400775c7
cmp rbx, 0x208
jae 0x14007753a
mov edi, 0x208
jmp 0x1400775c7
cmp rbx, 0x50000
jae 0x140077583
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x140077555
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140077579
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140077579
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x1400775c7
cmp rbx, 0x320000
jae 0x140077595
lea rdi, [rbx + 0x8000]
jmp 0x1400775c7
cmp rbx, 0xc80000
jae 0x1400775c0
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x1400775c7
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140169b08]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400775ed
test rcx, rcx
je 0x1400775ed
mov rcx, qword [r14 + 8]
mov bl, 1
call fcn.140108f48
jmp 0x1400775ef
xor bl, bl
test rdi, rdi
js 0x140077648
mov rcx, rdi
call fcn.1401084ac
test rax, rax
je 0x140077648
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 0x14007762f
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.140109100
mov rax, qword [r14 + 8]
lea rcx, [rsi + rsi]
xor r12d, r12d
mov word [rcx + rax], r12w
mov qword [r14 + 0x10], rcx
jmp 0x140077359
xor r12d, r12d
test bl, bl
je 0x140077660
lea rax, [0x140171290]
mov qword [r14 + 0x18], r12
mov qword [r14 + 8], rax
jmp 0x140077668
mov rax, qword [r14 + 8]
mov word [rax], r12w
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
mov qword [r14 + 0x10], r12
call fcn.1400a5580
jmp 0x140077359
lea rax, [rsp + 0x60]
cmp qword [r15 + 8], rax
jne 0x14007769f
mov rsi, qword [r15 + 0x10]
shr rsi, 1
jmp 0x1400776b4
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 0x1400776d4
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140005910
jmp 0x1400778e5
cmp rbx, qword [0x140169b08]
jbe 0x14007770a
cmp rbx, qword [r15 + 0x18]
jbe 0x14007770a
lea rcx, [0x14014bd60]
call fcn.1400dd2e0
lea r8, [0x1401295d4]
lea rcx, [0x1401712e0]
mov rdx, rax
call fcn.1400a5580
jmp 0x1400778e5
cmp rax, 2
jae 0x140077724
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 4]
call fcn.1400ea290
jmp 0x1400778e5
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x14007773c
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 0x1400778b8
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140077774
cmp al, 2
je 0x1400777b4
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400778ab
cmp rbx, 0x80
ja 0x1400777b4
cmp rbx, 8
ja 0x140077788
mov rdi, r13
jmp 0x140077799
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dc2b0
test rax, rax
je 0x1400778e5
mov byte [r15 + 0x20], 1
jmp 0x1400778ab
cmp rbx, 0x20
jae 0x1400777c4
mov edi, SafeArrayAllocDescriptor
jmp 0x140077864
cmp rbx, 0x208
jae 0x1400777d7
mov edi, 0x208
jmp 0x140077864
cmp rbx, 0x50000
jae 0x140077820
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x1400777f2
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140077816
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140077816
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x140077864
cmp rbx, 0x320000
jae 0x140077832
lea rdi, [rbx + 0x8000]
jmp 0x140077864
cmp rbx, 0xc80000
jae 0x14007785d
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x140077864
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140169b08]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14007788a
test rcx, rcx
je 0x14007788a
mov rcx, qword [r15 + 8]
mov bl, 1
call fcn.140108f48
jmp 0x14007788c
xor bl, bl
test rdi, rdi
js 0x140077950
mov rcx, rdi
call fcn.1401084ac
test rax, rax
je 0x140077950
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 0x1400778d4
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.140109100
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 0x1400778fd
test r14, r14
je 0x140077c64
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 0x140077bf4
movzx edx, byte [r12 + 0x23]
test dl, dl
jne 0x140077990
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e9bc0
jmp 0x140077bf4
test bl, bl
je 0x140077965
lea rax, [0x140171290]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x14007796d
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
mov qword [r15 + 0x10], r12
call fcn.1400a5580
jmp 0x1400778e5
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x1400779a6
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x1400779bb
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 0x1400779da
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140005910
jmp 0x140077bf4
cmp rbx, qword [0x140169b08]
jbe 0x140077a11
cmp rbx, qword [r12 + 0x18]
jbe 0x140077a11
lea rcx, [0x14014bd60]
call fcn.1400dd2e0
lea r8, [0x1401295d4]
lea rcx, [0x1401712e0]
mov rdx, rax
call fcn.1400a5580
jmp 0x140077bf4
cmp rax, 2
jae 0x140077a2b
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400ea290
jmp 0x140077bf4
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x140077a46
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 0x140077bc3
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140077a81
cmp al, 2
je 0x140077ac2
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x140077bb3
cmp rbx, 0x80
ja 0x140077ac2
cmp rbx, 8
ja 0x140077a95
mov rdi, r13
jmp 0x140077aa6
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dc2b0
test rax, rax
je 0x140077bf4
mov byte [r12 + 0x20], 1
jmp 0x140077bb3
cmp rbx, 0x20
jae 0x140077ad2
mov edi, SafeArrayAllocDescriptor
jmp 0x140077b72
cmp rbx, 0x208
jae 0x140077ae5
mov edi, 0x208
jmp 0x140077b72
cmp rbx, 0x50000
jae 0x140077b2e
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x140077b00
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140077b24
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140077b24
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x140077b72
cmp rbx, 0x320000
jae 0x140077b40
lea rdi, [rbx + 0x8000]
jmp 0x140077b72
cmp rbx, 0xc80000
jae 0x140077b6b
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x140077b72
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140169b08]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x140077b99
test rcx, rcx
je 0x140077b99
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.140108f48
jmp 0x140077b9b
xor bl, bl
test rdi, rdi
js 0x140077c19
mov rcx, rdi
call fcn.1401084ac
test rax, rax
je 0x140077c19
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 0x140077be0
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.140109100
mov rax, qword [r12 + 8]
lea rdx, [rsi + rsi]
xor ecx, ecx
mov word [rdx + rax], cx
mov qword [r12 + 0x10], rdx
test r14, r14
je 0x140077c64
cmp word [rsp + 0x60], 0
mov rcx, r14
je 0x140077c5f
mov eax, dword [rbp + 0x1f0]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
inc eax
movsxd rdx, eax
call fcn.140001370
jmp 0x140077c64
test bl, bl
je 0x140077c32
lea rcx, [0x140171290]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x140077c3e
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
mov qword [r12 + 0x10], rax
call fcn.1400a5580
jmp 0x140077bf4
call fcn.140023100
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x140077c92
mov rcx, qword [rsp + 0x30]
lea rdx, [rbp + 0x1f8]
mov rax, qword [rcx]
call qword [rax + 0x70]
movsxd rdx, dword [rbp + 0x1f8]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rdi
call fcn.140001370
mov rdi, qword [0x1401703d0]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x140077cc2
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1401296b4]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e9bc0
jmp 0x140077efb
lea rsi, [0x1401296b4]
cmp qword [rdi + 8], rsi
jne 0x140077cd8
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x140077cde
mov r12d, 1
lea rcx, [r12 + 1]
lea rbx, [rcx + rcx]
cmp al, 2
jne 0x140077cfb
mov rdx, r12
mov rcx, rsi
call fcn.140005910
jmp 0x140077efb
cmp rbx, qword [0x140169b08]
jbe 0x140077d31
cmp rbx, qword [rdi + 0x18]
jbe 0x140077d31
lea rcx, [0x14014bd60]
call fcn.1400dd2e0
lea r8, [0x1401295d4]
lea rcx, [0x1401712e0]
mov rdx, rax
call fcn.1400a5580
jmp 0x140077efb
cmp rcx, 2
jae 0x140077d4b
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400ea290
jmp 0x140077efb
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x140077d61
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 0x140077ed4
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x140077d98
cmp al, 2
je 0x140077dd4
mov r13, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x140077ec8
cmp rbx, 0x80
ja 0x140077dd4
cmp rbx, 8
jbe 0x140077dba
mov r13d, 0x80
cmp rbx, 0x10
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
cmovbe r13d, eax
mov rcx, r13
call fcn.1400dc2b0
test rax, rax
je 0x140077efb
mov byte [rdi + 0x20], 1
jmp 0x140077ec8
cmp rbx, 0x20
jae 0x140077de5
mov r13d, SafeArrayAllocDescriptor
jmp 0x140077e86
cmp rbx, 0x208
jae 0x140077df9
mov r13d, 0x208
jmp 0x140077e86
cmp rbx, 0x50000
jae 0x140077e42
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x140077e14
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x140077e38
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140077e38
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r13, xmm0
add r13, rax
jmp 0x140077e86
cmp rbx, 0x320000
jae 0x140077e54
lea r13, [rbx + 0x8000]
jmp 0x140077e86
cmp rbx, 0xc80000
jae 0x140077e7f
movabs rax, 0x47ae147ae147ae15
mov r13, rbx
mul rbx
sub r13, rdx
shr r13, 1
add r13, rdx
shr r13, 6
add r13, rbx
jmp 0x140077e86
lea r13, [rbx + 0x20000]
mov rax, qword [0x140169b08]
cmp r13, rax
cmova r13, rax
cmp r8b, 2
jne 0x140077eac
test rcx, rcx
je 0x140077eac
mov rcx, qword [rdi + 8]
mov bl, 1
call fcn.140108f48
jmp 0x140077eae
xor bl, bl
test r13, r13
js 0x140077f3f
mov rcx, r13
call fcn.1401084ac
test rax, rax
je 0x140077f3f
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 0x140077ee9
lea r8, [r12 + r12]
mov rdx, rsi
call fcn.140109100
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 0x140077f84
mov eax, 1
jmp 0x140077f92
test bl, bl
je 0x140077f56
lea rcx, [0x140171290]
xor eax, eax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x18], rax
jmp 0x140077f61
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401295d4]
lea rdx, str.Out_of_memory.
lea rcx, [0x1401712e0]
mov qword [rdi + 0x10], rax
call fcn.1400a5580
jmp 0x140077efb
mov rcx, qword [rbp + 0x1e0]
mov dl, 1
call fcn.14003ca30
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret