Function at 0x1400a4cc0
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 [0x14013f508]
cmp al, 2
mov r14d, ecx
cmova r12, qword [0x14013f510]
cmp al, 3
mov r15d, ecx
cmova r14, qword [0x14013f518]
cmp al, 4
mov edi, ecx
cmova r15, qword [0x14013f520]
cmp al, 5
mov r13d, ecx
cmova rdi, qword [0x14013f528]
cmp al, 6
cmova r13, qword [0x14013f530]
cmp al, 7
mov qword [rsp + 0x50], rdi
cmova rcx, qword [0x14013f538]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x38], rcx
test rbx, rbx
je 0x1400a4d5f
mov rcx, rbx
call fcn.14002f9e0
test r12, r12
je 0x1400a4d6c
mov rcx, r12
call fcn.14002f9e0
test r14, r14
je 0x1400a4d79
mov rcx, r14
call fcn.14002f9e0
test r15, r15
je 0x1400a4d86
mov rcx, r15
call fcn.14002f9e0
test rdi, rdi
je 0x1400a4d93
mov rcx, rdi
call fcn.14002f9e0
test r13, r13
je 0x1400a4da0
mov rcx, r13
call fcn.14002f9e0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x1400a4db2
mov rcx, rax
call fcn.14002f9e0
mov rcx, rsi
xor dil, dil
call fcn.1400a7960
test al, al
je 0x1400a6076
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea r11, [rsp + 0x30]
lea r9, [0x1401034e0]
lea rcx, [0x1401034f0]
lea r8d, [rdx + 1]
mov qword [rsp + 0x20], r11
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1400a601f
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x140103500]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x1400a6014
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x1400a6009
movaps xmmword [rsp + 0x290], xmm6
movsd xmm6, qword [0x1401279d8]
movaps xmmword [rsp + 0x280], xmm7
movsd xmm7, qword [0x1401279a8]
movabs rdi, 0x8000000000000000
mov r13d, 8
movaps xmmword [rsp + 0x270], xmm8
movsd xmm8, qword [0x1401279e0]
test rbx, rbx
je 0x1400a5121
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 0x1400a4ec5
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x1400a5121
lea rax, [rsp + 0x60]
cmp qword [rbx + 8], rax
jne 0x1400a4ed9
mov r13, qword [rbx + 0x10]
shr r13, 1
jmp 0x1400a4ef8
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 0x1400a4f18
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140006bc0
jmp 0x1400a511b
cmp rsi, qword [0x14013b0d0]
jbe 0x1400a4f46
cmp rsi, qword [rbx + 0x18]
jbe 0x1400a4f46
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x1400a511b
cmp rax, 2
jae 0x1400a4f60
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400a511b
movzx eax, byte [rbx + 0x21]
test al, 2
je 0x1400a4f76
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 0x1400a50ea
movzx r8d, byte [rbx + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400a4fad
cmp al, 2
je 0x1400a4fee
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400a50de
cmp rsi, 0x80
ja 0x1400a4fee
cmp rsi, 8
ja 0x1400a4fc3
mov edi, 8
jmp 0x1400a4fd4
mov edi, 0x80
cmp rsi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x1400a511b
mov byte [rbx + 0x20], 1
jmp 0x1400a50de
cmp rsi, 0x20
jae 0x1400a4ffe
mov edi, SafeArrayAllocDescriptor
jmp 0x1400a5094
cmp rsi, 0x208
jae 0x1400a5011
mov edi, 0x208
jmp 0x1400a5094
cmp rsi, 0x50000
jae 0x1400a5050
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x1400a502c
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400a5046
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400a5046
mov rax, rdi
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x1400a5094
cmp rsi, 0x320000
jae 0x1400a5062
lea rdi, [rsi + 0x8000]
jmp 0x1400a5094
cmp rsi, 0xc80000
jae 0x1400a508d
movabs rax, 0x47ae147ae147ae15
mov rdi, rsi
mul rsi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rsi
jmp 0x1400a5094
lea rdi, [rsi + 0x20000]
mov rax, qword [0x14013b0d0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400a50bc
test rcx, rcx
je 0x1400a50bc
mov rcx, qword [rbx + 8]
mov sil, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400a50bf
xor sil, sil
test rdi, rdi
js 0x1400a516b
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400a516b
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 0x1400a5108
lea r8, [r13 + r13]
lea rdx, [rsp + 0x60]
call qword [sym.imp.MSVCR100.dll_memmove]
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 0x1400a5419
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 0x1400a51b1
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x1400a5419
test sil, sil
je 0x1400a5183
lea rcx, [0x140141fa8]
xor eax, eax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x18], rax
jmp 0x1400a518e
mov rax, qword [rbx + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rbx + 0x10], rax
call fcn.14005f7b0
jmp 0x1400a511b
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x1400a51c7
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x1400a51dc
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 0x1400a51fc
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006bc0
jmp 0x1400a5419
cmp rbx, qword [0x14013b0d0]
jbe 0x1400a522b
cmp rbx, qword [r12 + 0x18]
jbe 0x1400a522b
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x1400a5419
cmp rax, 2
jae 0x1400a5245
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400a5419
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x1400a5260
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 0x1400a53e7
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400a529b
cmp al, 2
je 0x1400a52dc
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400a53d7
cmp rbx, 0x80
ja 0x1400a52dc
cmp rbx, 8
ja 0x1400a52af
mov rdi, r13
jmp 0x1400a52c0
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x1400a5419
mov byte [r12 + 0x20], 1
jmp 0x1400a53d7
cmp rbx, 0x20
jae 0x1400a52ec
mov edi, SafeArrayAllocDescriptor
jmp 0x1400a538c
cmp rbx, 0x208
jae 0x1400a52ff
mov edi, 0x208
jmp 0x1400a538c
cmp rbx, 0x50000
jae 0x1400a5348
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x1400a531a
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400a533e
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400a533e
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x1400a538c
cmp rbx, 0x320000
jae 0x1400a535a
lea rdi, [rbx + 0x8000]
jmp 0x1400a538c
cmp rbx, 0xc80000
jae 0x1400a5385
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x1400a538c
lea rdi, [rbx + 0x20000]
mov rax, qword [0x14013b0d0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400a53b4
test rcx, rcx
je 0x1400a53b4
mov rcx, qword [r12 + 8]
mov bl, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400a53b6
xor bl, bl
test rdi, rdi
js 0x1400a54ab
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400a54ab
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 0x1400a5405
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call qword [sym.imp.MSVCR100.dll_memmove]
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 0x1400a545c
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 0x1400a54f4
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
xor r12d, r12d
test r15, r15
je 0x1400a59e1
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 0x1400a578c
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x1400a59e1
test bl, bl
je 0x1400a54c4
lea rcx, [0x140141fa8]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x1400a54d0
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [r12 + 0x10], rax
call fcn.14005f7b0
jmp 0x1400a5419
lea rax, [rsp + 0x60]
cmp qword [r14 + 8], rax
jne 0x1400a5508
mov rsi, qword [r14 + 0x10]
shr rsi, 1
jmp 0x1400a551d
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 0x1400a553d
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006bc0
jmp 0x1400a545c
cmp rbx, qword [0x14013b0d0]
jbe 0x1400a556b
cmp rbx, qword [r14 + 0x18]
jbe 0x1400a556b
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x1400a545c
cmp rax, 2
jae 0x1400a5585
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400a545c
movzx eax, byte [r14 + 0x21]
test al, 2
je 0x1400a559d
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 0x1400a5713
movzx r8d, byte [r14 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400a55d5
cmp al, 2
je 0x1400a5615
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400a5706
cmp rbx, 0x80
ja 0x1400a5615
cmp rbx, 8
ja 0x1400a55e9
mov rdi, r13
jmp 0x1400a55fa
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x1400a545c
mov byte [r14 + 0x20], 1
jmp 0x1400a5706
cmp rbx, 0x20
jae 0x1400a5625
mov edi, SafeArrayAllocDescriptor
jmp 0x1400a56c5
cmp rbx, 0x208
jae 0x1400a5638
mov edi, 0x208
jmp 0x1400a56c5
cmp rbx, 0x50000
jae 0x1400a5681
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x1400a5653
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400a5677
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400a5677
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x1400a56c5
cmp rbx, 0x320000
jae 0x1400a5693
lea rdi, [rbx + 0x8000]
jmp 0x1400a56c5
cmp rbx, 0xc80000
jae 0x1400a56be
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x1400a56c5
lea rdi, [rbx + 0x20000]
mov rax, qword [0x14013b0d0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400a56ec
test rcx, rcx
je 0x1400a56ec
mov rcx, qword [r14 + 8]
mov bl, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400a56ee
xor bl, bl
test rdi, rdi
js 0x1400a5749
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400a5749
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 0x1400a5730
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [r14 + 8]
lea rcx, [rsi + rsi]
xor r12d, r12d
mov word [rcx + rax], r12w
mov qword [r14 + 0x10], rcx
jmp 0x1400a545f
xor r12d, r12d
test bl, bl
je 0x1400a5761
lea rax, [0x140141fa8]
mov qword [r14 + 0x18], r12
mov qword [r14 + 8], rax
jmp 0x1400a5769
mov rax, qword [r14 + 8]
mov word [rax], r12w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [r14 + 0x10], r12
call fcn.14005f7b0
jmp 0x1400a545f
lea rax, [rsp + 0x60]
cmp qword [r15 + 8], rax
jne 0x1400a57a0
mov rsi, qword [r15 + 0x10]
shr rsi, 1
jmp 0x1400a57b5
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 0x1400a57d5
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006bc0
jmp 0x1400a59e1
cmp rbx, qword [0x14013b0d0]
jbe 0x1400a5803
cmp rbx, qword [r15 + 0x18]
jbe 0x1400a5803
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x1400a59e1
cmp rax, 2
jae 0x1400a581d
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400a59e1
movzx eax, byte [r15 + 0x21]
test al, 2
je 0x1400a5835
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 0x1400a59b3
movzx r8d, byte [r15 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400a586d
cmp al, 2
je 0x1400a58ad
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400a59a6
cmp rbx, 0x80
ja 0x1400a58ad
cmp rbx, 8
ja 0x1400a5881
mov rdi, r13
jmp 0x1400a5892
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x1400a59e1
mov byte [r15 + 0x20], 1
jmp 0x1400a59a6
cmp rbx, 0x20
jae 0x1400a58bd
mov edi, SafeArrayAllocDescriptor
jmp 0x1400a595d
cmp rbx, 0x208
jae 0x1400a58d0
mov edi, 0x208
jmp 0x1400a595d
cmp rbx, 0x50000
jae 0x1400a5919
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x1400a58eb
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400a590f
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400a590f
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x1400a595d
cmp rbx, 0x320000
jae 0x1400a592b
lea rdi, [rbx + 0x8000]
jmp 0x1400a595d
cmp rbx, 0xc80000
jae 0x1400a5956
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x1400a595d
lea rdi, [rbx + 0x20000]
mov rax, qword [0x14013b0d0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400a5984
test rcx, rcx
je 0x1400a5984
mov rcx, qword [r15 + 8]
mov bl, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400a5986
xor bl, bl
test rdi, rdi
js 0x1400a5a4c
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400a5a4c
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 0x1400a59d0
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call qword [sym.imp.MSVCR100.dll_memmove]
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 0x1400a59f9
test r14, r14
je 0x1400a5d5b
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 0x1400a5ceb
movzx edx, byte [r12 + 0x23]
test dl, dl
jne 0x1400a5a8c
mov rcx, qword [r12 + 0x10]
lea rdx, [rsp + 0x60]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x1400a5ceb
test bl, bl
je 0x1400a5a61
lea rax, [0x140141fa8]
mov qword [r15 + 0x18], r12
mov qword [r15 + 8], rax
jmp 0x1400a5a69
mov rax, qword [r15 + 8]
mov word [rax], r12w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [r15 + 0x10], r12
call fcn.14005f7b0
jmp 0x1400a59e1
lea rax, [rsp + 0x60]
cmp qword [r12 + 8], rax
jne 0x1400a5aa2
mov rsi, qword [r12 + 0x10]
shr rsi, 1
jmp 0x1400a5ab7
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 0x1400a5ad6
lea rcx, [rsp + 0x60]
mov rdx, rsi
call fcn.140006bc0
jmp 0x1400a5ceb
cmp rbx, qword [0x14013b0d0]
jbe 0x1400a5b05
cmp rbx, qword [r12 + 0x18]
jbe 0x1400a5b05
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x1400a5ceb
cmp rax, 2
jae 0x1400a5b1f
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400a5ceb
movzx eax, byte [r12 + 0x21]
test al, 2
je 0x1400a5b3a
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 0x1400a5cb9
movzx r8d, byte [r12 + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400a5b75
cmp al, 2
je 0x1400a5bb6
mov rdi, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400a5ca9
cmp rbx, 0x80
ja 0x1400a5bb6
cmp rbx, 8
ja 0x1400a5b89
mov rdi, r13
jmp 0x1400a5b9a
mov edi, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe edi, eax
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x1400a5ceb
mov byte [r12 + 0x20], 1
jmp 0x1400a5ca9
cmp rbx, 0x20
jae 0x1400a5bc6
mov edi, SafeArrayAllocDescriptor
jmp 0x1400a5c66
cmp rbx, 0x208
jae 0x1400a5bd9
mov edi, 0x208
jmp 0x1400a5c66
cmp rbx, 0x50000
jae 0x1400a5c22
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x1400a5bf4
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400a5c18
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400a5c18
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x1400a5c66
cmp rbx, 0x320000
jae 0x1400a5c34
lea rdi, [rbx + 0x8000]
jmp 0x1400a5c66
cmp rbx, 0xc80000
jae 0x1400a5c5f
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x1400a5c66
lea rdi, [rbx + 0x20000]
mov rax, qword [0x14013b0d0]
cmp rdi, rax
cmova rdi, rax
cmp r8b, 2
jne 0x1400a5c8e
test rcx, rcx
je 0x1400a5c8e
mov rcx, qword [r12 + 8]
mov bl, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400a5c90
xor bl, bl
test rdi, rdi
js 0x1400a5d10
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400a5d10
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 0x1400a5cd7
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x60]
call qword [sym.imp.MSVCR100.dll_memmove]
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 0x1400a5d5b
cmp word [rsp + 0x60], 0
mov rcx, r14
je 0x1400a5d56
mov eax, dword [rbp + 0x1f0]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
inc eax
movsxd rdx, eax
call fcn.140001090
jmp 0x1400a5d5b
test bl, bl
je 0x1400a5d29
lea rcx, [0x140141fa8]
xor eax, eax
mov qword [r12 + 8], rcx
mov qword [r12 + 0x18], rax
jmp 0x1400a5d35
mov rax, qword [r12 + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [r12 + 0x10], rax
call fcn.14005f7b0
jmp 0x1400a5ceb
call fcn.14002f9e0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x1400a5d89
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 [0x140140268]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x1400a5db9
mov rcx, qword [rdi + 0x10]
lea rdx, [0x140103674]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x1400a5fed
lea rsi, [0x140103674]
cmp qword [rdi + 8], rsi
jne 0x1400a5dcf
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x1400a5dd5
mov r12d, 1
lea rcx, [r12 + 1]
lea rbx, [rcx + rcx]
cmp al, 2
jne 0x1400a5df2
mov rdx, r12
mov rcx, rsi
call fcn.140006bc0
jmp 0x1400a5fed
cmp rbx, qword [0x14013b0d0]
jbe 0x1400a5e20
cmp rbx, qword [rdi + 0x18]
jbe 0x1400a5e20
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x1400a5fed
cmp rcx, 2
jae 0x1400a5e3a
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x1400a5fed
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x1400a5e50
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 0x1400a5fc5
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, 1
jbe 0x1400a5e87
cmp al, 2
je 0x1400a5ec3
mov r13, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e0]
jmp 0x1400a5fb9
cmp rbx, 0x80
ja 0x1400a5ec3
cmp rbx, 8
jbe 0x1400a5ea9
mov r13d, 0x80
cmp rbx, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe r13d, eax
mov rcx, r13
call fcn.1400dd290
test rax, rax
je 0x1400a5fed
mov byte [rdi + 0x20], 1
jmp 0x1400a5fb9
cmp rbx, 0x20
jae 0x1400a5ed4
mov r13d, SafeArrayAllocDescriptor
jmp 0x1400a5f75
cmp rbx, 0x208
jae 0x1400a5ee8
mov r13d, 0x208
jmp 0x1400a5f75
cmp rbx, 0x50000
jae 0x1400a5f31
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x1400a5f03
addsd xmm0, xmm7
mulsd xmm0, xmm8
xor eax, eax
comisd xmm0, xmm6
jbe 0x1400a5f27
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x1400a5f27
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si r13, xmm0
add r13, rax
jmp 0x1400a5f75
cmp rbx, 0x320000
jae 0x1400a5f43
lea r13, [rbx + 0x8000]
jmp 0x1400a5f75
cmp rbx, 0xc80000
jae 0x1400a5f6e
movabs rax, 0x47ae147ae147ae15
mov r13, rbx
mul rbx
sub r13, rdx
shr r13, 1
add r13, rdx
shr r13, 6
add r13, rbx
jmp 0x1400a5f75
lea r13, [rbx + 0x20000]
mov rax, qword [0x14013b0d0]
cmp r13, rax
cmova r13, rax
cmp r8b, 2
jne 0x1400a5f9c
test rcx, rcx
je 0x1400a5f9c
mov rcx, qword [rdi + 8]
mov bl, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400a5f9e
xor bl, bl
test r13, r13
js 0x1400a6031
mov rcx, r13
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400a6031
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 0x1400a5fdb
lea r8, [r12 + r12]
mov rdx, rsi
call qword [sym.imp.MSVCR100.dll_memmove]
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 0x1400a6076
mov eax, 1
jmp 0x1400a6084
test bl, bl
je 0x1400a6048
lea rcx, [0x140141fa8]
xor eax, eax
mov qword [rdi + 8], rcx
mov qword [rdi + 0x18], rax
jmp 0x1400a6053
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rdi + 0x10], rax
call fcn.14005f7b0
jmp 0x1400a5fed
mov rcx, qword [rbp + 0x1e0]
mov dl, 1
call fcn.14005e3f0
mov rbx, qword [rsp + 0x2e8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret