Function at 0x140041124
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x3f0
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x1401a2e90]
xor rax, rsp
mov qword [rsp + 0x3e0], rax
mov rbx, rcx
mov qword [rsp + 0x48], rcx
and dword [rsp + 0x30], 0
mov r8d, dword [0x1401aad80]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x13
sub ecx, edx
mov esi, 0x51eb851f
mov r14d, 4
or r13, 0xffffffffffffffff
cmp ecx, 0x10
jne 0x1400411df
mov eax, esi
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub r8d, edx
add r8d, 0x63
movsxd rcx, r8d
mov eax, r14d
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400bcf98
mov rcx, rax
call fcn.1400be048
mov r8d, dword [0x1401aad80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov edi, 0x2aaaaaab
mov eax, edi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 2
sub ecx, eax
mov eax, dword [0x1401ac4f4]
mov edx, 0xea538ceb
cmp ecx, 1
cmove eax, edx
mov dword [0x1401ac4f4], eax
xor ebp, ebp
call fcn.14003e4ac
test al, al
jne 0x14004125f
mov ecx, dword [0x1401aad80]
mov eax, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub ecx, edx
add ecx, 0x2f4
movsxd rcx, ecx
mov rax, r14
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400bcf98
mov rcx, rax
call fcn.1400be048
call qword [sym.imp.KERNEL32.dll_GetVersion]
mov r9d, eax
movzx r15d, al
mov r8d, dword [0x1401aad80]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
cmp ecx, 0x14
jne 0x14004129f
dec dword [0x1401ac68c]
movzx eax, r9w
shr ax, 8
movzx r14d, al
cmp r9d, 0x80000000
jae 0x1400412ba
mov ebp, r9d
shr ebp, 0x10
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 1
jne 0x140041341
xor r9d, r9d
mov eax, edi
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 4
mov ecx, r8d
sub ecx, eax
cmp ecx, 0x6a
je 0x14004133a
mov eax, r8d
or eax, 0xffffff60
add r8d, eax
inc r9d
mov eax, r8d
imul eax, r8d
cmp r9d, eax
jg 0x14004133a
mov eax, edi
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*2]
shl ecx, 4
mov eax, r8d
sub eax, ecx
cmp eax, 0x6a
jne 0x140041301
mov dword [0x1401aad80], r9d
cmp r15d, 6
jb 0x140041363
cmp r14d, 2
jb 0x140041363
mov rcx, rbx
call fcn.14004170c
nop
mov dword [rsp + 0x30], 1
jmp 0x140041407
lea rcx, [0x1401a29a8]
mov rax, qword [0x1401a29a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
call fcn.14003e3e4
test al, al
jne 0x1400413b6
xor r10d, r10d
lea r11, [rsp + 0x50]
mov esi, dword [0x1401aad80]
mov edi, esi
lea ecx, [rsi + r10]
mov eax, edi
cdq
idiv ecx
mov dword [r11], edx
inc r10d
dec edi
lea r11, [r11 + 4]
movsxd rax, r10d
cmp rax, 0xe2
jb 0x140041396
mov dword [rsp + 0x20], ebp
mov r9d, r14d
mov r8d, r15d
lea rdx, str._d._d___d_
lea rcx, [rsp + 0x38]
call fcn.1400101f8
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140002d5c
mov dword [rsp + 0x30], 1
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140041407
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
mov rcx, qword [rsp + 0x3e0]
xor rcx, rsp
call fcn.1400bd920
lea r11, [rsp + 0x3f0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rsi
ret