Function at 0x14008b440
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 [0x1401298a8]
cmp al, 2
mov r14d, ecx
cmova r12, qword [0x1401298b0]
cmp al, 3
mov r15d, ecx
cmova r14, qword [0x1401298b8]
cmp al, 4
mov edi, ecx
cmova r15, qword [0x1401298c0]
cmp al, 5
mov r13d, ecx
cmova rdi, qword [0x1401298c8]
cmp al, 6
cmova r13, qword [0x1401298d0]
cmp al, 7
mov qword [rsp + 0x50], rdi
cmova rcx, qword [0x1401298d8]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x38], rcx
test rbx, rbx
je 0x14008b4df
mov rcx, rbx
call fcn.1400241e0
test r12, r12
je 0x14008b4ec
mov rcx, r12
call fcn.1400241e0
test r14, r14
je 0x14008b4f9
mov rcx, r14
call fcn.1400241e0
test r15, r15
je 0x14008b506
mov rcx, r15
call fcn.1400241e0
test rdi, rdi
je 0x14008b513
mov rcx, rdi
call fcn.1400241e0
test r13, r13
je 0x14008b520
mov rcx, r13
call fcn.1400241e0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14008b532
mov rcx, rax
call fcn.1400241e0
mov rcx, rsi
xor dil, dil
call fcn.14008dc70
test al, al
je 0x14008c7e7
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea r11, [rsp + 0x30]
lea r9, [0x1400ee040]
lea rcx, [0x1400ee050]
lea r8d, [rdx + 1]
mov qword [rsp + 0x20], r11
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14008c790
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x1400ee060]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14008c785
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14008c77a
movaps xmmword [rsp + 0x290], xmm6
movsd xmm6, qword [0x140110ea8]
movaps xmmword [rsp + 0x280], xmm7
movsd xmm7, qword [0x140110e78]
movabs rdi, 0x8000000000000000
mov r13d, 8
movaps xmmword [rsp + 0x270], xmm8
movsd xmm8, qword [0x140110eb0]
test rbx, rbx
je 0x14008b89e
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 0x14008b645
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bc2f0
jmp 0x14008b89e
lea rax, [rsp + 0x60]
cmp qword [rbx + 8], rax
jne 0x14008b659
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x14008b678
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 0x14008b698
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140006f00
jmp 0x14008b898
cmp rsi, qword [0x140124580]
jbe 0x14008b6c6
cmp rsi, qword [rbx + 0x18]
jbe 0x14008b6c6
lea r8, [0x1400f0524]
lea rdx, [0x14010f290]
lea rcx, [0x14012b510]
call fcn.14004e080
jmp 0x14008b898
cmp rax, 2
jae 0x14008b6e0
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 4]
call fcn.1400bc9a0
jmp 0x14008b898
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x14008b6f6
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 0x14008b868
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008b72d
cmp al, 2
je 0x14008b76e
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008b85c
cmp rsi, 0x80
ja 0x14008b76e
cmp rsi, 8
ja 0x14008b743
mov edi, 8
jmp 0x14008b754
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b4e60
test rax, rax
je 0x14008b898
mov byte [rbx + 0x20], 1
jmp 0x14008b85c
cmp rsi, 0x20
jae 0x14008b77e
mov edi, SafeArrayAllocDescriptor
jmp 0x14008b814
cmp rsi, 0x208
jae 0x14008b791
mov edi, 0x208
jmp 0x14008b814
cmp rsi, 0x50000
jae 0x14008b7d0
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x14008b7ac
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008b7c6
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008b7c6
mov rax, rdi
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008b814
cmp rsi, 0x320000
jae 0x14008b7e2
lea rdi, [rsi + 0x8000]
jmp 0x14008b814
cmp rsi, 0xc80000
jae 0x14008b80d
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14008b814
lea rdi, [rsi + 0x20000]
mov rax, qword [0x140124580]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008b83b
test rcx, rcx
je 0x14008b83b
mov rcx, qword [rbx + 8]
mov sil, 1
call fcn.1400d5bd8
jmp 0x14008b83e
xor sil, sil
test rdi, rdi
js 0x14008b8e8
mov rcx, rdi
call fcn.1400d5b18
test rax, rax
je 0x14008b8e8
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 0x14008b885
lea r8, [r13 + r13]
lea rdx, [rsp + 0x60]
call fcn.1400d6960
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 0x14008bb93
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 0x14008b92e
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bc2f0
jmp 0x14008bb93
test sil, sil
je 0x14008b900
lea rcx, [0x14012b418]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x14008b90b
mov rax, qword [rbx + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f0524]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012b510]
mov qword [rbx + 0x10], rax
call fcn.14004e080
jmp 0x14008b898
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008b944
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008b959
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 0x14008b979
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f00
jmp 0x14008bb93
cmp rbx, qword [0x140124580]
jbe 0x14008b9a8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008b9a8
lea r8, [0x1400f0524]
lea rdx, [0x14010f290]
lea rcx, [0x14012b510]
call fcn.14004e080
jmp 0x14008bb93
cmp rax, 2
jae 0x14008b9c2
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bc9a0
jmp 0x14008bb93
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008b9dd
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 0x14008bb62
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008ba18
cmp al, 2
je 0x14008ba59
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008bb52
cmp rbx, 0x80
ja 0x14008ba59
cmp rbx, 8
ja 0x14008ba2c
mov rdi, r13
jmp 0x14008ba3d
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b4e60
test rax, rax
je 0x14008bb93
mov byte [r12 + 0x20], 1
jmp 0x14008bb52
cmp rbx, 0x20
jae 0x14008ba69
mov edi, SafeArrayAllocDescriptor
jmp 0x14008bb09
cmp rbx, 0x208
jae 0x14008ba7c
mov edi, 0x208
jmp 0x14008bb09
cmp rbx, 0x50000
jae 0x14008bac5
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008ba97
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008babb
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008babb
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008bb09
cmp rbx, 0x320000
jae 0x14008bad7
lea rdi, [rbx + 0x8000]
jmp 0x14008bb09
cmp rbx, 0xc80000
jae 0x14008bb02
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008bb09
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140124580]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008bb30
test rcx, rcx
je 0x14008bb30
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d5bd8
jmp 0x14008bb32
xor bl, bl
test rdi, rdi
js 0x14008bc25
mov rcx, rdi
call fcn.1400d5b18
test rax, rax
je 0x14008bc25
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 0x14008bb7f
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d6960
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 0x14008bbd6
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 0x14008bc6e
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bc2f0
xor r12d, r12d
test r15, r15
je 0x14008c155
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 0x14008bf03
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bc2f0
jmp 0x14008c155
test bl, bl
je 0x14008bc3e
lea rcx, [0x14012b418]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008bc4a
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f0524]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012b510]
mov qword [r12 + 0x10], rax
call fcn.14004e080
jmp 0x14008bb93
lea rax, [rsp + 0x60]
cmp qword [r14 + 8], rax
jne 0x14008bc82
mov rsi, qword [r14 + 0x10]
shr rsi, 1
jmp 0x14008bc97
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 0x14008bcb7
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f00
jmp 0x14008bbd6
cmp rbx, qword [0x140124580]
jbe 0x14008bce5
cmp rbx, qword [r14 + 0x18]
jbe 0x14008bce5
lea r8, [0x1400f0524]
lea rdx, [0x14010f290]
lea rcx, [0x14012b510]
call fcn.14004e080
jmp 0x14008bbd6
cmp rax, 2
jae 0x14008bcff
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 4]
call fcn.1400bc9a0
jmp 0x14008bbd6
movzx eax, byte [r14 + 0x21]
test al, 2
je 0x14008bd17
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 0x14008be8b
movzx r8d, byte [r14 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008bd4f
cmp al, 2
je 0x14008bd8f
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008be7e
cmp rbx, 0x80
ja 0x14008bd8f
cmp rbx, 8
ja 0x14008bd63
mov rdi, r13
jmp 0x14008bd74
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b4e60
test rax, rax
je 0x14008bbd6
mov byte [r14 + 0x20], 1
jmp 0x14008be7e
cmp rbx, 0x20
jae 0x14008bd9f
mov edi, SafeArrayAllocDescriptor
jmp 0x14008be3f
cmp rbx, 0x208
jae 0x14008bdb2
mov edi, 0x208
jmp 0x14008be3f
cmp rbx, 0x50000
jae 0x14008bdfb
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008bdcd
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008bdf1
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008bdf1
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008be3f
cmp rbx, 0x320000
jae 0x14008be0d
lea rdi, [rbx + 0x8000]
jmp 0x14008be3f
cmp rbx, 0xc80000
jae 0x14008be38
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008be3f
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140124580]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008be65
test rcx, rcx
je 0x14008be65
mov rcx, qword [r14 + 8]
mov bl, 1
call fcn.1400d5bd8
jmp 0x14008be67
xor bl, bl
test rdi, rdi
js 0x14008bec0
mov rcx, rdi
call fcn.1400d5b18
test rax, rax
je 0x14008bec0
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 0x14008bea7
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d6960
mov rax, qword [r14 + 8]
lea rcx, [rsi + rsi]
xor r12d, r12d
mov word [rcx + rax], r12w
mov qword [r14 + 0x10], rcx
jmp 0x14008bbd9
xor r12d, r12d
test bl, bl
je 0x14008bed8
lea rax, [0x14012b418]
mov qword [r14 + 0x18], r12
mov qword [r14 + 8], rax
jmp 0x14008bee0
mov rax, qword [r14 + 8]
mov word [rax], r12w
lea r8, [0x1400f0524]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012b510]
mov qword [r14 + 0x10], r12
call fcn.14004e080
jmp 0x14008bbd9
lea rax, [rsp + 0x60]
cmp qword [r15 + 8], rax
jne 0x14008bf17
mov rsi, qword [r15 + 0x10]
shr rsi, 1
jmp 0x14008bf2c
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 0x14008bf4c
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f00
jmp 0x14008c155
cmp rbx, qword [0x140124580]
jbe 0x14008bf7a
cmp rbx, qword [r15 + 0x18]
jbe 0x14008bf7a
lea r8, [0x1400f0524]
lea rdx, [0x14010f290]
lea rcx, [0x14012b510]
call fcn.14004e080
jmp 0x14008c155
cmp rax, 2
jae 0x14008bf94
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 4]
call fcn.1400bc9a0
jmp 0x14008c155
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x14008bfac
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 0x14008c128
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008bfe4
cmp al, 2
je 0x14008c024
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c11b
cmp rbx, 0x80
ja 0x14008c024
cmp rbx, 8
ja 0x14008bff8
mov rdi, r13
jmp 0x14008c009
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b4e60
test rax, rax
je 0x14008c155
mov byte [r15 + 0x20], 1
jmp 0x14008c11b
cmp rbx, 0x20
jae 0x14008c034
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c0d4
cmp rbx, 0x208
jae 0x14008c047
mov edi, 0x208
jmp 0x14008c0d4
cmp rbx, 0x50000
jae 0x14008c090
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c062
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c086
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c086
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c0d4
cmp rbx, 0x320000
jae 0x14008c0a2
lea rdi, [rbx + 0x8000]
jmp 0x14008c0d4
cmp rbx, 0xc80000
jae 0x14008c0cd
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c0d4
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140124580]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c0fa
test rcx, rcx
je 0x14008c0fa
mov rcx, qword [r15 + 8]
mov bl, 1
call fcn.1400d5bd8
jmp 0x14008c0fc
xor bl, bl
test rdi, rdi
js 0x14008c1c0
mov rcx, rdi
call fcn.1400d5b18
test rax, rax
je 0x14008c1c0
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 0x14008c144
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d6960
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 0x14008c16d
test r14, r14
je 0x14008c4cf
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 0x14008c271
movzx edx, byte [r12 + 0x23]
test dl, dl
jne 0x14008c200
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bc2f0
jmp 0x14008c271
test bl, bl
je 0x14008c1d5
lea rax, [0x14012b418]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x14008c1dd
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1400f0524]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012b510]
mov qword [r15 + 0x10], r12
call fcn.14004e080
jmp 0x14008c155
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008c216
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008c22b
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 0x14008c247
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f00
jmp 0x14008c271
cmp rbx, qword [0x140124580]
jbe 0x14008c2a8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008c2a8
lea r8, [0x1400f0524]
lea rdx, [0x14010f290]
lea rcx, [0x14012b510]
call fcn.14004e080
xor edx, edx
test r14, r14
je 0x14008c4cf
cmp word [rsp + 0x60], 0
mov rcx, r14
je 0x14008c4ca
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 0x14008c4cf
cmp rax, 2
jae 0x14008c2bf
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bc9a0
jmp 0x14008c271
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008c2da
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 0x14008c457
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c315
cmp al, 2
je 0x14008c356
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c447
cmp rbx, 0x80
ja 0x14008c356
cmp rbx, 8
ja 0x14008c329
mov rdi, r13
jmp 0x14008c33a
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b4e60
test rax, rax
je 0x14008c271
mov byte [r12 + 0x20], 1
jmp 0x14008c447
cmp rbx, 0x20
jae 0x14008c366
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c406
cmp rbx, 0x208
jae 0x14008c379
mov edi, 0x208
jmp 0x14008c406
cmp rbx, 0x50000
jae 0x14008c3c2
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c394
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c3b8
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c3b8
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c406
cmp rbx, 0x320000
jae 0x14008c3d4
lea rdi, [rbx + 0x8000]
jmp 0x14008c406
cmp rbx, 0xc80000
jae 0x14008c3ff
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c406
lea rdi, [rbx + 0x20000]
mov rax, qword [0x140124580]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c42d
test rcx, rcx
je 0x14008c42d
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d5bd8
jmp 0x14008c42f
xor bl, bl
test rdi, rdi
js 0x14008c48d
mov rcx, rdi
call fcn.1400d5b18
test rax, rax
je 0x14008c48d
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 0x14008c474
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d6960
mov rax, qword [r12 + 8]
lea rcx, [rsi + rsi]
xor edx, edx
mov word [rcx + rax], dx
mov qword [r12 + 0x10], rcx
jmp 0x14008c273
test bl, bl
je 0x14008c4a6
lea rcx, [0x14012b418]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008c4b2
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
mov qword [r12 + 0x10], rax
lea r8, [0x1400f0524]
lea rdx, str.Out_of_memory.
jmp 0x14008c265
call fcn.1400241e0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14008c4fd
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 [0x14012a580]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x14008c52d
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400f0614]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bc2f0
jmp 0x14008c75e
lea rsi, [0x1400f0614]
cmp qword [rdi + 8], rsi
jne 0x14008c543
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x14008c549
mov r12d, 1
lea rcx, [r12 + 1]
lea rbx, [rcx + rcx]
cmp al, 2
jne 0x14008c566
mov rdx, r12
mov rcx, rsi
call fcn.140006f00
jmp 0x14008c75e
cmp rbx, qword [0x140124580]
jbe 0x14008c594
cmp rbx, qword [rdi + 0x18]
jbe 0x14008c594
lea r8, [0x1400f0524]
lea rdx, [0x14010f290]
lea rcx, [0x14012b510]
call fcn.14004e080
jmp 0x14008c75e
cmp rcx, 2
jae 0x14008c5ae
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400bc9a0
jmp 0x14008c75e
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x14008c5c4
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 0x14008c737
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c5fb
cmp al, 2
je 0x14008c637
mov r13, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c72b
cmp rbx, 0x80
ja 0x14008c637
cmp rbx, 8
jbe 0x14008c61d
mov r13d, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe r13d, eax
mov rcx, r13
call fcn.1400b4e60
test rax, rax
je 0x14008c75e
mov byte [rdi + 0x20], 1
jmp 0x14008c72b
cmp rbx, 0x20
jae 0x14008c648
mov r13d, SafeArrayAllocDescriptor
jmp 0x14008c6e9
cmp rbx, 0x208
jae 0x14008c65c
mov r13d, 0x208
jmp 0x14008c6e9
cmp rbx, 0x50000
jae 0x14008c6a5
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c677
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c69b
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c69b
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r13, xmm0
add r13, rax
jmp 0x14008c6e9
cmp rbx, 0x320000
jae 0x14008c6b7
lea r13, [rbx + 0x8000]
jmp 0x14008c6e9
cmp rbx, 0xc80000
jae 0x14008c6e2
movabs rax, 0x47ae147ae147ae15
mov r13, rbx
mul rbx
sub r13, rdx
shr r13, 1
add r13, rdx
shr r13, 6
add r13, rbx
jmp 0x14008c6e9
lea r13, [rbx + 0x20000]
mov rax, qword [0x140124580]
cmp r13, rax
cmova r13, rax
cmp r8b, 2
jne 0x14008c70f
test rcx, rcx
je 0x14008c70f
mov rcx, qword [rdi + 8]
mov bl, 1
call fcn.1400d5bd8
jmp 0x14008c711
xor bl, bl
test r13, r13
js 0x14008c7a2
mov rcx, r13
call fcn.1400d5b18
test rax, rax
je 0x14008c7a2
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 0x14008c74c
lea r8, [r12 + r12]
mov rdx, rsi
call fcn.1400d6960
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 0x14008c7e7
mov eax, 1
jmp 0x14008c7f5
test bl, bl
je 0x14008c7b9
lea rcx, [0x14012b418]
xor eax, eax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x18], rax
jmp 0x14008c7c4
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f0524]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012b510]
mov qword [rdi + 0x10], rax
call fcn.14004e080
jmp 0x14008c75e
mov rcx, qword [rbp + 0x1e0]
mov dl, 1
call fcn.14004ca90
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret