Function at 0x418570
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x278
call fcn.00414460
test al, al
jne 0x4185a0
add rsp, 0x278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdi, [rsp + 0x150]
xor eax, eax
mov ecx, 0x23
rep stosq qword [rdi], rax
mov dword [rsp + 0x150], 0x11c
lea rcx, [rsp + 0x150]
mov dword [rdi], 0
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x418af4
lea rsi, [rsp + 0x70]
lea r10, [rsp + 0xd0]
movzx edi, byte [rsp + 0x26a]
movzx ebx, word [rsp + 0x266]
movzx ebp, word [rsp + 0x264]
mov r8d, 0xcccccccd
lea rax, [rsi + 0x10]
mov r12d, dword [rsp + 0x15c]
mov r13d, dword [rsp + 0x158]
mov ecx, dword [rsp + 0x154]
lea r9, [r10 + 0xd]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x80], 0
mov byte [rsp + 0xdd], 0
mov eax, ecx
sub r9, 1
mul r8d
shr edx, 3
mov eax, edx
lea edx, [rdx + rdx*4]
add edx, edx
sub ecx, edx
mov edx, ecx
mov ecx, eax
add edx, 0x30
test eax, eax
mov byte [r9], dl
jne 0x418641
mov rax, r9
sub rax, r10
sub r10, r9
lea r8, [r10 + 0xd]
mov qword [rsp + 0xe0], rax
test r8, r8
mov qword [rsp + 0xe8], r8
js 0x418e7c
mov rdx, r9
mov rcx, rsi
call fcn.00499d20
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov r14, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea r15, [r14 + 1]
cmp r15, rax
ja 0x418ad0
mov byte [rdx + r14], 0x2e
lea r9, [rsp + 0xf0]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
mov r8d, 0xcccccccd
lea rcx, [r9 + 0xd]
mov byte [rax + r14 + 1], 0
mov byte [rsp + 0xfd], 0
mov eax, r13d
sub rcx, 1
mul r8d
shr edx, 3
mov eax, edx
lea edx, [rdx + rdx*4]
add edx, edx
sub r13d, edx
mov edx, r13d
mov r13d, eax
add edx, 0x30
test eax, eax
mov byte [rcx], dl
jne 0x4186f0
mov rax, rcx
sub rax, r9
sub r9, rcx
mov qword [rsp + 0x100], rax
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
lea r8, [r9 + 0xd]
mov qword [rsp + 0x108], r8
cmp r8, rax
ja 0x418e70
mov rdx, rcx
mov rcx, rsi
call fcn.00499d20
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov r13, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea r14, [r13 + 1]
cmp r14, rax
ja 0x418b11
mov byte [rdx + r13], 0x2e
lea r9, [rsp + 0x110]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], r14
mov r8d, 0xcccccccd
lea rcx, [r9 + 0xd]
mov byte [rax + r13 + 1], 0
mov byte [rsp + 0x11d], 0
mov eax, r12d
sub rcx, 1
mul r8d
shr edx, 3
mov eax, edx
lea edx, [rdx + rdx*4]
add edx, edx
sub r12d, edx
mov edx, r12d
mov r12d, eax
add edx, 0x30
test eax, eax
mov byte [rcx], dl
jne 0x4187b1
mov rax, rcx
sub rax, r9
sub r9, rcx
mov qword [rsp + 0x120], rax
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
lea r8, [r9 + 0xd]
mov qword [rsp + 0x128], r8
cmp r8, rax
ja 0x418e64
mov rdx, rcx
mov rcx, rsi
call fcn.00499d20
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov r12, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea r13, [r12 + 1]
cmp r13, rax
ja 0x418b35
mov byte [rdx + r12], 0x20
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], r13
mov byte [rax + r12 + 1], 0
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
cmp rax, 1
jbe 0x418e40
lea rdx, [0x004b533c]
mov r8d, 2
mov rcx, rsi
call fcn.00499d20
lea r8, [rsp + 0x30]
mov byte [rsp + 0x37], 0
lea rdx, [r8 + 7]
movzx eax, bp
sub rdx, 1
imul eax, eax, 0xcccd
shr eax, 0x13
mov ecx, eax
lea eax, [rcx*4]
add eax, ecx
add eax, eax
sub ebp, eax
mov eax, ebp
mov ebp, ecx
add eax, 0x30
test cx, cx
mov byte [rdx], al
jne 0x418895
mov rax, rdx
sub rax, r8
sub r8, rdx
mov qword [rsp + 0x38], rax
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
add r8, 7
mov qword [rsp + 0x40], r8
cmp r8, rax
ja 0x418e4c
mov rcx, rsi
call fcn.00499d20
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov rbp, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea r12, [rbp + 1]
cmp r12, rax
ja 0x418b60
mov byte [rdx + rbp], 0x2e
lea r8, [rsp + 0x50]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], r12
lea rdx, [r8 + 7]
mov byte [rax + rbp + 1], 0
mov byte [rsp + 0x57], 0
nop word cs:[rax + rax]
movzx eax, bx
sub rdx, 1
imul eax, eax, 0xcccd
shr eax, 0x13
mov ecx, eax
lea eax, [rcx*4]
add eax, ecx
add eax, eax
sub ebx, eax
mov eax, ebx
mov ebx, ecx
add eax, 0x30
test cx, cx
mov byte [rdx], al
jne 0x418950
mov rax, rdx
sub rax, r8
sub r8, rdx
mov qword [rsp + 0x58], rax
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
add r8, 7
mov qword [rsp + 0x60], r8
cmp r8, rax
ja 0x418e58
mov rcx, rsi
call fcn.00499d20
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov rbx, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea rbp, [rbx + 1]
cmp rbp, rax
ja 0x418b84
mov byte [rdx + rbx], 0x20
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], rbp
mov byte [rax + rbx + 1], 0
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
cmp dil, 2
je 0x418e10
cmp dil, 3
je 0x418bb0
cmp dil, 1
je 0x418de4
cmp rax, 7
jbe 0x418e34
lea rdx, str.product
mov r8d, 8
mov rcx, rsi
call fcn.00499d20
lea r9, [rsp + 0x130]
mov byte [rsp + 0x13d], 0
mov r8d, 0xcccccccd
lea rcx, [r9 + 0xd]
nop dword [rax]
mov eax, edi
sub rcx, 1
mul r8d
shr edx, 3
mov eax, edx
lea edx, [rdx + rdx*4]
add edx, edx
sub edi, edx
mov edx, edi
mov edi, eax
add edx, 0x30
test eax, eax
mov byte [rcx], dl
jne 0x418a60
mov rax, rcx
sub rax, r9
sub r9, rcx
mov qword [rsp + 0x140], rax
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
lea r8, [r9 + 0xd]
mov qword [rsp + 0x148], r8
cmp r8, rax
ja 0x418ebe
mov rdx, rcx
mov rcx, rsi
call fcn.00499d20
jmp 0x418bcf
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x4186c1
lea r8, str.success___GetVersionEx_failed_
lea rcx, str.src_shared_WindowsVersion.cc
mov edx, 0x3a
call fcn.00418fa0
jmp 0x4185d9
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, r13
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x418782
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x418844
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbp
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x418925
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x4189e0
cmp rax, 5
jbe 0x418f07
lea rdx, str.Server
mov r8d, 6
mov rcx, rsi
call fcn.00499d20
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov rbx, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea rdi, [rbx + 1]
cmp rdi, rax
ja 0x418d95
mov byte [rdx + rbx], 0x20
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], rdi
mov byte [rax + rbx + 1], 0
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x78]
cmp rax, 2
jbe 0x418efb
lea rdx, [0x004b5367]
mov r8d, 3
mov rcx, rsi
call fcn.00499d20
lea rbx, [rsp + 0x90]
lea rdx, str.kernel32.dll
mov rcx, rbx
call fcn.00417540
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov rdi, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea rbp, [rdi + 1]
cmp rbp, rax
ja 0x418d71
mov byte [rdx + rdi], 0x20
mov rax, qword [rsp + 0x70]
mov rcx, rsi
mov qword [rsp + 0x78], rbp
mov byte [rax + rdi + 1], 0
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x90]
call fcn.00499d20
mov rcx, qword [rsp + 0x90]
add rbx, 0x10
cmp rcx, rbx
je 0x418cc0
call fcn.004aaf10
lea rbx, [rsp + 0xb0]
lea rdx, str.ConEmuHk64.dll
mov rcx, rbx
call fcn.00417540
mov rdx, qword [rsp + 0x70]
lea rax, [rsi + 0x10]
mov rdi, qword [rsp + 0x78]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x80]
lea rbp, [rdi + 1]
cmp rbp, rax
ja 0x418dc0
mov byte [rdx + rdi], 0x20
mov rax, qword [rsp + 0x70]
mov rcx, rsi
mov qword [rsp + 0x78], rbp
mov byte [rax + rdi + 1], 0
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
call fcn.00499d20
mov rcx, qword [rsp + 0xb0]
add rbx, 0x10
cmp rcx, rbx
je 0x418d44
call fcn.004aaf10
mov rdx, qword [rsp + 0x70]
lea rcx, str.Windows_version:__s
call fcn.00413ac0
mov rcx, qword [rsp + 0x70]
add rsi, 0x10
cmp rcx, rsi
je 0x41858c
call fcn.004aaf10
jmp 0x41858c
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x418c7f
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x418bfb
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.00499ee0
mov rdx, qword [rsp + 0x70]
jmp 0x418d03
cmp rax, 5
jbe 0x418eb2
lea rdx, str.Client
mov r8d, 6
mov rcx, rsi
call fcn.00499d20
jmp 0x418bcf
cmp rax, 0xf
jbe 0x418ea6
lea rdx, str.DomainController
mov r8d, 0x10
mov rcx, rsi
call fcn.00499d20
jmp 0x418bcf
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
mov rdi, rax
mov rcx, qword [rsp + 0x70]
add rsi, 0x10
cmp rcx, rsi
je 0x418e9e
call fcn.004aaf10
mov rcx, rdi
call fcn.00424a70
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
mov rcx, qword [rsp + 0xb0]
add rbx, 0x10
mov rdi, rax
cmp rcx, rbx
je 0x418e8b
call fcn.004aaf10
jmp 0x418e8b
lea rcx, [0x004b502e]
call fcn.004a50e0
lea rcx, [0x004b502e]
call fcn.004a50e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov r9d, edx
mov rdx, r8
mov r8, rcx
lea rcx, str.Assertion_failed:__s__file__s__line__d
jmp fcn.00413ac0