Function at 0x14008bd50
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 [0x14012a8c8]
cmp al, 2
mov r14d, ecx
cmova r12, qword [0x14012a8d0]
cmp al, 3
mov r15d, ecx
cmova r14, qword [0x14012a8d8]
cmp al, 4
mov edi, ecx
cmova r15, qword [0x14012a8e0]
cmp al, 5
mov r13d, ecx
cmova rdi, qword [0x14012a8e8]
cmp al, 6
cmova r13, qword [0x14012a8f0]
cmp al, 7
mov qword [rsp + 0x50], rdi
cmova rcx, qword [0x14012a8f8]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x38], rcx
test rbx, rbx
je 0x14008bdef
mov rcx, rbx
call fcn.1400243d0
test r12, r12
je 0x14008bdfc
mov rcx, r12
call fcn.1400243d0
test r14, r14
je 0x14008be09
mov rcx, r14
call fcn.1400243d0
test r15, r15
je 0x14008be16
mov rcx, r15
call fcn.1400243d0
test rdi, rdi
je 0x14008be23
mov rcx, rdi
call fcn.1400243d0
test r13, r13
je 0x14008be30
mov rcx, r13
call fcn.1400243d0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14008be42
mov rcx, rax
call fcn.1400243d0
mov rcx, rsi
xor dil, dil
call fcn.14008e580
test al, al
je 0x14008d0f7
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 0x14008d0a0
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x1400ef060]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14008d095
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14008d08a
movaps xmmword [rsp + 0x290], xmm6
movsd xmm6, qword [0x140111ff8]
movaps xmmword [rsp + 0x280], xmm7
movsd xmm7, qword [0x140111fc8]
movabs rdi, 0x8000000000000000
mov r13d, 8
movaps xmmword [rsp + 0x270], xmm8
movsd xmm8, qword [0x140112000]
test rbx, rbx
je 0x14008c1ae
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 0x14008bf55
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bcba0
jmp 0x14008c1ae
lea rax, [rsp + 0x60]
cmp qword [rbx + 8], rax
jne 0x14008bf69
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x14008bf88
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 0x14008bfa8
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140006f10
jmp 0x14008c1a8
cmp rsi, qword [0x1401255a0]
jbe 0x14008bfd6
cmp rsi, qword [rbx + 0x18]
jbe 0x14008bfd6
lea r8, [0x1400f1604]
lea rdx, [0x1401103d0]
lea rcx, [0x14012c540]
call fcn.14004e5d0
jmp 0x14008c1a8
cmp rax, 2
jae 0x14008bff0
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 4]
call fcn.1400bd250
jmp 0x14008c1a8
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x14008c006
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 0x14008c178
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c03d
cmp al, 2
je 0x14008c07e
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c16c
cmp rsi, 0x80
ja 0x14008c07e
cmp rsi, 8
ja 0x14008c053
mov edi, 8
jmp 0x14008c064
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b55f0
test rax, rax
je 0x14008c1a8
mov byte [rbx + 0x20], 1
jmp 0x14008c16c
cmp rsi, 0x20
jae 0x14008c08e
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c124
cmp rsi, 0x208
jae 0x14008c0a1
mov edi, 0x208
jmp 0x14008c124
cmp rsi, 0x50000
jae 0x14008c0e0
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x14008c0bc
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c0d6
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c0d6
mov rax, rdi
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c124
cmp rsi, 0x320000
jae 0x14008c0f2
lea rdi, [rsi + 0x8000]
jmp 0x14008c124
cmp rsi, 0xc80000
jae 0x14008c11d
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x14008c124
lea rdi, [rsi + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c14b
test rcx, rcx
je 0x14008c14b
mov rcx, qword [rbx + 8]
mov sil, 1
call fcn.1400d6528
jmp 0x14008c14e
xor sil, sil
test rdi, rdi
js 0x14008c1f8
mov rcx, rdi
call fcn.1400d6468
test rax, rax
je 0x14008c1f8
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 0x14008c195
lea r8, [r13 + r13]
lea rdx, [rsp + 0x60]
call fcn.1400d72b0
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 0x14008c4a3
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 0x14008c23e
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bcba0
jmp 0x14008c4a3
test sil, sil
je 0x14008c210
lea rcx, [0x14012c438]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x14008c21b
mov rax, qword [rbx + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1604]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c540]
mov qword [rbx + 0x10], rax
call fcn.14004e5d0
jmp 0x14008c1a8
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008c254
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008c269
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 0x14008c289
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f10
jmp 0x14008c4a3
cmp rbx, qword [0x1401255a0]
jbe 0x14008c2b8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008c2b8
lea r8, [0x1400f1604]
lea rdx, [0x1401103d0]
lea rcx, [0x14012c540]
call fcn.14004e5d0
jmp 0x14008c4a3
cmp rax, 2
jae 0x14008c2d2
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bd250
jmp 0x14008c4a3
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008c2ed
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 0x14008c472
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c328
cmp al, 2
je 0x14008c369
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c462
cmp rbx, 0x80
ja 0x14008c369
cmp rbx, 8
ja 0x14008c33c
mov rdi, r13
jmp 0x14008c34d
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b55f0
test rax, rax
je 0x14008c4a3
mov byte [r12 + 0x20], 1
jmp 0x14008c462
cmp rbx, 0x20
jae 0x14008c379
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c419
cmp rbx, 0x208
jae 0x14008c38c
mov edi, 0x208
jmp 0x14008c419
cmp rbx, 0x50000
jae 0x14008c3d5
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c3a7
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c3cb
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c3cb
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c419
cmp rbx, 0x320000
jae 0x14008c3e7
lea rdi, [rbx + 0x8000]
jmp 0x14008c419
cmp rbx, 0xc80000
jae 0x14008c412
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c419
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c440
test rcx, rcx
je 0x14008c440
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d6528
jmp 0x14008c442
xor bl, bl
test rdi, rdi
js 0x14008c535
mov rcx, rdi
call fcn.1400d6468
test rax, rax
je 0x14008c535
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 0x14008c48f
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d72b0
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 0x14008c4e6
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 0x14008c57e
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bcba0
xor r12d, r12d
test r15, r15
je 0x14008ca65
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 0x14008c813
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bcba0
jmp 0x14008ca65
test bl, bl
je 0x14008c54e
lea rcx, [0x14012c438]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008c55a
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1604]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c540]
mov qword [r12 + 0x10], rax
call fcn.14004e5d0
jmp 0x14008c4a3
lea rax, [rsp + 0x60]
cmp qword [r14 + 8], rax
jne 0x14008c592
mov rsi, qword [r14 + 0x10]
shr rsi, 1
jmp 0x14008c5a7
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 0x14008c5c7
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f10
jmp 0x14008c4e6
cmp rbx, qword [0x1401255a0]
jbe 0x14008c5f5
cmp rbx, qword [r14 + 0x18]
jbe 0x14008c5f5
lea r8, [0x1400f1604]
lea rdx, [0x1401103d0]
lea rcx, [0x14012c540]
call fcn.14004e5d0
jmp 0x14008c4e6
cmp rax, 2
jae 0x14008c60f
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 4]
call fcn.1400bd250
jmp 0x14008c4e6
movzx eax, byte [r14 + 0x21]
test al, 2
je 0x14008c627
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 0x14008c79b
movzx r8d, byte [r14 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c65f
cmp al, 2
je 0x14008c69f
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008c78e
cmp rbx, 0x80
ja 0x14008c69f
cmp rbx, 8
ja 0x14008c673
mov rdi, r13
jmp 0x14008c684
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b55f0
test rax, rax
je 0x14008c4e6
mov byte [r14 + 0x20], 1
jmp 0x14008c78e
cmp rbx, 0x20
jae 0x14008c6af
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c74f
cmp rbx, 0x208
jae 0x14008c6c2
mov edi, 0x208
jmp 0x14008c74f
cmp rbx, 0x50000
jae 0x14008c70b
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c6dd
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c701
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c701
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c74f
cmp rbx, 0x320000
jae 0x14008c71d
lea rdi, [rbx + 0x8000]
jmp 0x14008c74f
cmp rbx, 0xc80000
jae 0x14008c748
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c74f
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008c775
test rcx, rcx
je 0x14008c775
mov rcx, qword [r14 + 8]
mov bl, 1
call fcn.1400d6528
jmp 0x14008c777
xor bl, bl
test rdi, rdi
js 0x14008c7d0
mov rcx, rdi
call fcn.1400d6468
test rax, rax
je 0x14008c7d0
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 0x14008c7b7
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d72b0
mov rax, qword [r14 + 8]
lea rcx, [rsi + rsi]
xor r12d, r12d
mov word [rcx + rax], r12w
mov qword [r14 + 0x10], rcx
jmp 0x14008c4e9
xor r12d, r12d
test bl, bl
je 0x14008c7e8
lea rax, [0x14012c438]
mov qword [r14 + 0x18], r12
mov qword [r14 + 8], rax
jmp 0x14008c7f0
mov rax, qword [r14 + 8]
mov word [rax], r12w
lea r8, [0x1400f1604]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c540]
mov qword [r14 + 0x10], r12
call fcn.14004e5d0
jmp 0x14008c4e9
lea rax, [rsp + 0x60]
cmp qword [r15 + 8], rax
jne 0x14008c827
mov rsi, qword [r15 + 0x10]
shr rsi, 1
jmp 0x14008c83c
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 0x14008c85c
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f10
jmp 0x14008ca65
cmp rbx, qword [0x1401255a0]
jbe 0x14008c88a
cmp rbx, qword [r15 + 0x18]
jbe 0x14008c88a
lea r8, [0x1400f1604]
lea rdx, [0x1401103d0]
lea rcx, [0x14012c540]
call fcn.14004e5d0
jmp 0x14008ca65
cmp rax, 2
jae 0x14008c8a4
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 4]
call fcn.1400bd250
jmp 0x14008ca65
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x14008c8bc
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 0x14008ca38
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008c8f4
cmp al, 2
je 0x14008c934
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008ca2b
cmp rbx, 0x80
ja 0x14008c934
cmp rbx, 8
ja 0x14008c908
mov rdi, r13
jmp 0x14008c919
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b55f0
test rax, rax
je 0x14008ca65
mov byte [r15 + 0x20], 1
jmp 0x14008ca2b
cmp rbx, 0x20
jae 0x14008c944
mov edi, SafeArrayAllocDescriptor
jmp 0x14008c9e4
cmp rbx, 0x208
jae 0x14008c957
mov edi, 0x208
jmp 0x14008c9e4
cmp rbx, 0x50000
jae 0x14008c9a0
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008c972
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008c996
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008c996
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008c9e4
cmp rbx, 0x320000
jae 0x14008c9b2
lea rdi, [rbx + 0x8000]
jmp 0x14008c9e4
cmp rbx, 0xc80000
jae 0x14008c9dd
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008c9e4
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008ca0a
test rcx, rcx
je 0x14008ca0a
mov rcx, qword [r15 + 8]
mov bl, 1
call fcn.1400d6528
jmp 0x14008ca0c
xor bl, bl
test rdi, rdi
js 0x14008cad0
mov rcx, rdi
call fcn.1400d6468
test rax, rax
je 0x14008cad0
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 0x14008ca54
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d72b0
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 0x14008ca7d
test r14, r14
je 0x14008cddf
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 0x14008cb81
movzx edx, byte [r12 + 0x23]
test dl, dl
jne 0x14008cb10
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bcba0
jmp 0x14008cb81
test bl, bl
je 0x14008cae5
lea rax, [0x14012c438]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x14008caed
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1400f1604]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c540]
mov qword [r15 + 0x10], r12
call fcn.14004e5d0
jmp 0x14008ca65
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x14008cb26
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x14008cb3b
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 0x14008cb57
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006f10
jmp 0x14008cb81
cmp rbx, qword [0x1401255a0]
jbe 0x14008cbb8
cmp rbx, qword [r12 + 0x18]
jbe 0x14008cbb8
lea r8, [0x1400f1604]
lea rdx, [0x1401103d0]
lea rcx, [0x14012c540]
call fcn.14004e5d0
xor edx, edx
test r14, r14
je 0x14008cddf
cmp word [rsp + 0x60], 0
mov rcx, r14
je 0x14008cdda
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 0x14008cddf
cmp rax, 2
jae 0x14008cbcf
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 4]
call fcn.1400bd250
jmp 0x14008cb81
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x14008cbea
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 0x14008cd67
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008cc25
cmp al, 2
je 0x14008cc66
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008cd57
cmp rbx, 0x80
ja 0x14008cc66
cmp rbx, 8
ja 0x14008cc39
mov rdi, r13
jmp 0x14008cc4a
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400b55f0
test rax, rax
je 0x14008cb81
mov byte [r12 + 0x20], 1
jmp 0x14008cd57
cmp rbx, 0x20
jae 0x14008cc76
mov edi, SafeArrayAllocDescriptor
jmp 0x14008cd16
cmp rbx, 0x208
jae 0x14008cc89
mov edi, 0x208
jmp 0x14008cd16
cmp rbx, 0x50000
jae 0x14008ccd2
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008cca4
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008ccc8
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008ccc8
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14008cd16
cmp rbx, 0x320000
jae 0x14008cce4
lea rdi, [rbx + 0x8000]
jmp 0x14008cd16
cmp rbx, 0xc80000
jae 0x14008cd0f
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14008cd16
lea rdi, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x14008cd3d
test rcx, rcx
je 0x14008cd3d
mov rcx, qword [r12 + 8]
mov bl, 1
call fcn.1400d6528
jmp 0x14008cd3f
xor bl, bl
test rdi, rdi
js 0x14008cd9d
mov rcx, rdi
call fcn.1400d6468
test rax, rax
je 0x14008cd9d
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 0x14008cd84
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call fcn.1400d72b0
mov rax, qword [r12 + 8]
lea rcx, [rsi + rsi]
xor edx, edx
mov word [rcx + rax], dx
mov qword [r12 + 0x10], rcx
jmp 0x14008cb83
test bl, bl
je 0x14008cdb6
lea rcx, [0x14012c438]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x14008cdc2
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
mov qword [r12 + 0x10], rax
lea r8, [0x1400f1604]
lea rdx, str.Out_of_memory.
jmp 0x14008cb75
call fcn.1400243d0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14008ce0d
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 [0x14012b5a0]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x14008ce3d
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400f1614]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400bcba0
jmp 0x14008d06e
lea rsi, [0x1400f1614]
cmp qword [rdi + 8], rsi
jne 0x14008ce53
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x14008ce59
mov r12d, 1
lea rcx, [r12 + 1]
lea rbx, [rcx + rcx]
cmp al, 2
jne 0x14008ce76
mov rdx, r12
mov rcx, rsi
call fcn.140006f10
jmp 0x14008d06e
cmp rbx, qword [0x1401255a0]
jbe 0x14008cea4
cmp rbx, qword [rdi + 0x18]
jbe 0x14008cea4
lea r8, [0x1400f1604]
lea rdx, [0x1401103d0]
lea rcx, [0x14012c540]
call fcn.14004e5d0
jmp 0x14008d06e
cmp rcx, 2
jae 0x14008cebe
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 4]
call fcn.1400bd250
jmp 0x14008d06e
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x14008ced4
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 0x14008d047
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x14008cf0b
cmp al, 2
je 0x14008cf47
mov r13, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x14008d03b
cmp rbx, 0x80
ja 0x14008cf47
cmp rbx, 8
jbe 0x14008cf2d
mov r13d, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe r13d, eax
mov rcx, r13
call fcn.1400b55f0
test rax, rax
je 0x14008d06e
mov byte [rdi + 0x20], 1
jmp 0x14008d03b
cmp rbx, 0x20
jae 0x14008cf58
mov r13d, SafeArrayAllocDescriptor
jmp 0x14008cff9
cmp rbx, 0x208
jae 0x14008cf6c
mov r13d, 0x208
jmp 0x14008cff9
cmp rbx, 0x50000
jae 0x14008cfb5
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14008cf87
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008cfab
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008cfab
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r13, xmm0
add r13, rax
jmp 0x14008cff9
cmp rbx, 0x320000
jae 0x14008cfc7
lea r13, [rbx + 0x8000]
jmp 0x14008cff9
cmp rbx, 0xc80000
jae 0x14008cff2
movabs rax, 0x47ae147ae147ae15
mov r13, rbx
mul rbx
sub r13, rdx
shr r13, 1
add r13, rdx
shr r13, 6
add r13, rbx
jmp 0x14008cff9
lea r13, [rbx + 0x20000]
mov rax, qword [0x1401255a0]
cmp r13, rax
cmova r13, rax
cmp r8b, 2
jne 0x14008d01f
test rcx, rcx
je 0x14008d01f
mov rcx, qword [rdi + 8]
mov bl, 1
call fcn.1400d6528
jmp 0x14008d021
xor bl, bl
test r13, r13
js 0x14008d0b2
mov rcx, r13
call fcn.1400d6468
test rax, rax
je 0x14008d0b2
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 0x14008d05c
lea r8, [r12 + r12]
mov rdx, rsi
call fcn.1400d72b0
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 0x14008d0f7
mov eax, 1
jmp 0x14008d105
test bl, bl
je 0x14008d0c9
lea rcx, [0x14012c438]
xor eax, eax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x18], rax
jmp 0x14008d0d4
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1400f1604]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c540]
mov qword [rdi + 0x10], rax
call fcn.14004e5d0
jmp 0x14008d06e
mov rcx, qword [rbp + 0x1e0]
mov dl, 1
call fcn.14004cf10
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret