Function at 0x1400ba280
Capabilities:
Check os version

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov rbp, rcx
cmp qword [rcx + 0x100], 0
je 0x1400bad7e
cmp qword [rcx + 0x108], 0
je 0x1400bad7e
cmp qword [rcx + 0x338], 0
je 0x1400bad7e
xor r15d, r15d
mov ebx, r15d
mov dword [rsp + 0xc0], ebx
mov r14d, r15d
mov dword [rsp + 0xd8], r15d
call fcn.1401ff164
mov rdx, rax
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400ba2ff
mov ecx, 0x80004005
call fcn.140002bc0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r13, [0x140275388]
mov rsi, r13
or r12, 0xffffffffffffffff
shr rsi, 0x10
jne 0x1400ba347
movzx edi, r13w
mov ecx, edi
call fcn.140200fbc
test rax, rax
je 0x1400ba367
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1401bacf0
jmp 0x1400ba367
xor eax, eax
mov rcx, r12
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x38]
call fcn.14000b770
nop
call fcn.1401ff164
mov rdx, rax
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400ba387
mov ecx, 0x80004005
call fcn.140002bc0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
test rsi, rsi
jne 0x1400ba3c0
movzx edi, r13w
mov ecx, edi
call fcn.140200fbc
test rax, rax
je 0x1400ba3e0
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1401bacf0
jmp 0x1400ba3e0
xor eax, eax
mov rcx, r12
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.14000b770
nop
mov r13d, r15d
mov dword [rsp + 0xd0], r15d
mov dword [rbp + 0x688], r15d
mov rax, qword [rbp + 0x108]
mov rdi, qword [rax + 0x110]
test rdi, rdi
je 0x1400ba433
mov rsi, rdi
test rdi, rdi
je 0x1400ba42d
mov rdi, qword [rdi]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x1400ba426
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
test eax, eax
je 0x1400ba436
test rdi, rdi
je 0x1400ba433
jmp 0x1400ba405
call fcn.1401fd6b8
int3
mov rsi, r15
mov dword [rsp + 0x20], r15d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rsi
call fcn.14022c010
test rax, rax
je 0x1400ba466
mov rcx, rax
call fcn.1401a2170
mov dword [rbp + 0x688], eax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x14b
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
mov esi, 1
mov edx, esi
lea rcx, [rbp + 0x3e8]
call fcn.1401f2644
mov ecx, r15d
mov dword [rsp + 0xc8], ecx
lea r8, [0x140321c60]
cmp dword [0x14032f0e4], 0
jne 0x1400ba4d0
mov dword [0x14032f0e0], 0x114
lea rcx, [0x14032f0e0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ecx, dword [rsp + 0xc8]
lea r8, [0x140321c60]
cmp dword [0x14032f0e4], 6
jne 0x1400ba4e9
cmp dword [0x14032f0e8], 0
jne 0x1400ba4e9
mov eax, 0x18
jmp 0x1400ba4ee
mov eax, 0x1b
cmp ecx, eax
jge 0x1400bac0e
mov edi, esi
shl edi, cl
mov rbx, r15
mov qword [rsp + 0x50], rbx
mov edx, dword [rbp + 0x688]
mov rax, qword [rbp + 0x338]
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x1400babc9
mov rsi, qword [rcx + 0x258]
test rsi, rsi
je 0x1400babbb
mov rcx, r15
mov rax, rsi
test edx, edx
je 0x1400ba544
test edx, 0x180
jne 0x1400ba544
cmp dword [rax], edx
je 0x1400ba568
jmp 0x1400ba549
cmp dword [rax + 4], ebx
jne 0x1400ba568
add rcx, 1
add rax, 8
cmp rcx, 7
jl 0x1400ba532
mov ebx, dword [rsp + 0xc0]
mov esi, 1
jmp 0x1400babd0
test rcx, rcx
js 0x1400bab9f
test dword [rsi + rcx*8 + 4], edi
je 0x1400babad
mov eax, r15d
mov rcx, r8
cmp dword [rcx], edi
je 0x1400ba593
add eax, 1
add rcx, 0x14
cmp eax, 0x1b
jb 0x1400ba581
jmp 0x1400ba5a2
cdqe
lea rcx, [rax + rax*4]
lea rbx, [r8 + rcx*4]
mov qword [rsp + 0x50], rbx
mov rsi, qword [rbp + 0x100]
xor eax, eax
mov rcx, r12
lea r13, [0x140275388]
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.14000b770
call fcn.1401f2234
movzx r9d, word [rsi + 0x55c]
mov r8d, 0xc20
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400c6a80
xor r11d, r11d
mov rdi, r13
mov r9, qword [rsp + 0x30]
mov rsi, r9
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400ba60f
sbb r11d, r11d
sbb r11d, 0xffffffff
test r11d, r11d
sete al
test al, al
je 0x1400ba63c
call fcn.1401f2234
mov r9w, 0x409
mov r8d, 0xc20
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400c6a80
mov r9, qword [rsp + 0x30]
movzx r8d, word [rbx + 8]
mov eax, dword [rbx + 4]
mov dword [rsp + 0x20], eax
lea rdx, str._d__s___d_Hz
lea rcx, [rsp + 0x38]
call fcn.140003090
mov eax, dword [rbx + 0xc]
test eax, eax
je 0x1400ba7fc
sub eax, 1
je 0x1400ba768
sub eax, 1
je 0x1400ba71c
sub eax, 1
je 0x1400ba6d0
cmp eax, 1
jne 0x1400ba887
mov rcx, qword [rbp + 0x100]
bt dword [rcx + 0x10], 0x1c
jae 0x1400ba6b4
add rcx, 0x550
mov r9d, 0xc1d
mov r8d, 0xfba
lea rdx, [rsp + 0x30]
call fcn.1400d5330
jmp 0x1400ba887
add rcx, 0x550
mov r8d, 0xc1d
lea rdx, [rsp + 0x30]
call fcn.1400d5290
jmp 0x1400ba887
mov rcx, qword [rbp + 0x100]
bt dword [rcx + 0x10], 0x1c
jae 0x1400ba700
add rcx, 0x550
mov r9d, 0xc1b
mov r8d, 0xfb8
lea rdx, [rsp + 0x30]
call fcn.1400d5330
jmp 0x1400ba887
add rcx, 0x550
mov r8d, 0xc1b
lea rdx, [rsp + 0x30]
call fcn.1400d5290
jmp 0x1400ba887
mov rcx, qword [rbp + 0x100]
bt dword [rcx + 0x10], 0x1c
jae 0x1400ba74c
add rcx, 0x550
mov r9d, 0xc1c
mov r8d, 0xfb9
lea rdx, [rsp + 0x30]
call fcn.1400d5330
jmp 0x1400ba887
add rcx, 0x550
mov r8d, 0xc1c
lea rdx, [rsp + 0x30]
call fcn.1400d5290
jmp 0x1400ba887
mov rsi, qword [rbp + 0x100]
xor eax, eax
mov rcx, r12
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.14000b770
call fcn.1401f2234
movzx r9d, word [rsi + 0x55c]
mov r8d, 0xc1f
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400c6a80
xor r11d, r11d
mov rdi, r13
mov rsi, qword [rsp + 0x30]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400ba7cb
sbb r11d, r11d
sbb r11d, 0xffffffff
test r11d, r11d
sete al
test al, al
je 0x1400ba887
call fcn.1401f2234
mov r9w, 0x409
mov r8d, 0xc1f
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400c6a80
jmp 0x1400ba887
mov rsi, qword [rbp + 0x100]
xor eax, eax
mov rcx, r12
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.14000b770
call fcn.1401f2234
movzx r9d, word [rsi + 0x55c]
mov r8d, 0xc1e
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400c6a80
xor r11d, r11d
mov rdi, r13
mov rsi, qword [rsp + 0x30]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400ba85f
sbb r11d, r11d
sbb r11d, 0xffffffff
test r11d, r11d
sete al
test al, al
je 0x1400ba887
call fcn.1401f2234
mov r9w, 0x409
mov r8d, 0xc1e
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400c6a80
call fcn.1401ff164
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
je 0x1400bac03
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, [0x140279ab0]
test rdx, 0xffffffffffff0000
jne 0x1400ba8e0
movzx edi, dx
mov ecx, edi
call fcn.140200fbc
test rax, rax
je 0x1400ba8fd
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1401bacf0
jmp 0x1400ba8fd
xor eax, eax
mov rcx, r12
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x48]
call fcn.14000b770
nop
call fcn.1401ff164
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
je 0x1400babf8
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, [0x140279aa8]
test rdx, 0xffffffffffff0000
jne 0x1400ba956
movzx edi, dx
mov ecx, edi
call fcn.140200fbc
test rax, rax
je 0x1400ba973
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1401bacf0
jmp 0x1400ba973
xor eax, eax
mov rcx, r12
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x40]
call fcn.14000b770
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.14001f230
nop
lea r8, [rsp + 0x48]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.14001f230
nop
mov r12, qword [rax]
movsxd r14, dword [r12 - 0x10]
mov rbx, r12
mov rdi, qword [rsp + 0x38]
sub rbx, rdi
sar rbx, 1
mov r13d, dword [rdi - 0x10]
lea esi, [r13 + r14]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, esi
or eax, ecx
jge 0x1400ba9dc
mov edx, esi
lea rcx, [rsp + 0x38]
call fcn.140002be0
mov rdi, qword [rsp + 0x38]
cmp rbx, r13
ja 0x1400ba9e5
lea r12, [rdi + rbx*2]
mov rdx, r14
add rdx, rdx
lea rcx, [rdi + r13*2]
mov r9, rdx
mov r8, r12
call fcn.14022ba40
test esi, esi
js 0x1400babed
cmp esi, dword [rdi - 0xc]
jg 0x1400babed
mov dword [rdi - 0x10], esi
movsxd rax, esi
mov word [rdi + rax*2], 0
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
or r12, 0xffffffffffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400baa3d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400baa5f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400baa81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400baaa2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, r15d
xor r9d, r9d
xor r8d, r8d
mov edx, 0x146
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jle 0x1400bab18
mov rsi, qword [rsp + 0x50]
nop
nop
nop
movsxd r8, edi
xor r9d, r9d
mov edx, 0x150
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
test rax, rax
je 0x1400baaf7
movzx ecx, word [rsi + 8]
cmp word [rax + 8], cx
ja 0x1400bab1d
add edi, 1
xor r9d, r9d
xor r8d, r8d
mov edx, 0x146
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp edi, eax
jl 0x1400baad0
jmp 0x1400bab1d
mov rsi, qword [rsp + 0x50]
movsxd rdi, edi
mov r9, qword [rsp + 0x38]
mov r8, rdi
mov edx, 0x14a
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, rsi
mov r8, rdi
mov edx, 0x151
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r13d, dword [rsp + 0xd0]
add r13d, 1
mov dword [rsp + 0xd0], r13d
mov eax, dword [rsi + 4]
mov ebx, dword [rsp + 0xc0]
cmp eax, 0xac44
mov esi, 1
cmove ebx, esi
mov dword [rsp + 0xc0], ebx
mov r14d, dword [rsp + 0xd8]
cmp eax, 0xbb80
cmove r14d, esi
mov dword [rsp + 0xd8], r14d
jmp 0x1400babd0
mov ebx, dword [rsp + 0xc0]
mov esi, 1
jmp 0x1400babd0
mov ebx, dword [rsp + 0xc0]
mov esi, 1
jmp 0x1400babd0
mov ebx, dword [rsp + 0xc0]
mov esi, 1
jmp 0x1400babd0
mov ebx, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0xc8]
add ecx, 1
mov dword [rsp + 0xc8], ecx
lea r8, [0x140321c60]
jmp 0x1400ba4a2
mov ecx, 0x80070057
call fcn.140002bc0
nop
mov ecx, 0x80004005
call fcn.140002bc0
nop
mov ecx, 0x80004005
call fcn.140002bc0
int3
mov rax, qword [rbp + 0x338]
mov ecx, dword [rax + 0x78]
test ecx, ecx
je 0x1400bacb2
mov ebx, r13d
test ecx, ecx
je 0x1400bacab
nop
nop
mov rax, qword [rbp + 0x338]
cmp r15d, dword [rax + 0x78]
jae 0x1400bac91
mov rdx, qword [rax + 0x70]
test rdx, rdx
je 0x1400bac91
mov eax, r15d
lea rcx, [rax + rax*8]
lea rsi, [rdx + rcx*8]
test rsi, rsi
je 0x1400bac91
movsxd rdi, ebx
mov r9, qword [rsi]
mov r8, rdi
mov edx, 0x14a
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
lea r9, [rsi + 0x30]
mov r8, rdi
mov edx, 0x151
mov rcx, qword [rbp + 0x428]
call qword [sym.imp.USER32.dll_SendMessageW]
add ebx, 1
add r13d, 1
add r15d, 1
mov rax, qword [rbp + 0x338]
cmp r15d, dword [rax + 0x78]
jb 0x1400bac30
mov ebx, dword [rsp + 0xc0]
jmp 0x1400bacb2
mov ebx, dword [rsp + 0xc0]
cmp r13d, 1
jg 0x1400bacc6
xor edx, edx
lea rcx, [rbp + 0x3e8]
call fcn.1401f2644
mov edx, ebx
lea rcx, [rbp + 0x490]
call fcn.1401f2644
mov edx, r14d
lea rcx, [rbp + 0x538]
call fcn.1401f2644
mov rdx, qword [rbp + 0x100]
bt dword [rdx + 0x194], 0x17
jae 0x1400bad0f
mov rax, qword [rbp + 0x108]
cmp dword [rax + 0x50], 0
je 0x1400bad0f
xor edx, edx
lea rcx, [rbp + 0x490]
call fcn.1401f25e4
mov rax, qword [rbp + 0x100]
test byte [rax + 0x197], 1
je 0x1400bad3b
mov rax, qword [rbp + 0x108]
cmp dword [rax + 0x50], 0
je 0x1400bad3b
xor edx, edx
lea rcx, [rbp + 0x538]
call fcn.1401f25e4
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400bad5d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
add r12d, 0xffffffff
test r12d, r12d
jg 0x1400bad7e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret