Function at 0x406e5b
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x630
mov eax, dword [0x46e008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x10]
xor ebx, ebx
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 0x18]
push 0x11c
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x120]
push ebx
push eax
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
call fcn.00430ec0
push 0x4e8
lea eax, [ebp - 0x630]
mov dword [ebp - 0x124], ebx
push ebx
push eax
mov dword [ebp - 0x130], ebx
call fcn.00430ec0
add esp, 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call fcn.004456a2
push ebx
push 3
call fcn.00445856
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x154]
push eax
push esi
call fcn.00401591
mov esi, eax
test esi, esi
jns 0x406f1f
push str.Failed_to_parse_command_line.
push esi
call fcn.004453e7
pop ecx
pop ecx
mov edi, ebx
jmp 0x40719a
push edi
lea eax, [ebp - 0x630]
push eax
call fcn.00405faf
mov esi, eax
test esi, esi
jns 0x406f39
push str.Failed_to_initialize_engine_state.
jmp 0x406f10
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x604], eax
call fcn.004072dc
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov esi, eax
test esi, esi
jns 0x406f5e
push str.Failed_to_initialize_COM.
jmp 0x406f10
xor edi, edi
inc edi
call fcn.00444e59
mov esi, eax
test esi, esi
jns 0x406f7e
push str.Failed_to_initialize_Cryputil.
push esi
call fcn.004453e7
pop ecx
pop ecx
jmp 0x40719a
mov dword [ebp - 0x144], edi
call fcn.004056c9
mov esi, eax
test esi, esi
jns 0x406f96
push str.Failed_to_initialize_Regutil.
jmp 0x406f71
mov dword [ebp - 0x140], edi
call fcn.0044715d
mov esi, eax
test esi, esi
jns 0x406fae
push str.Failed_to_initialize_Wiutil.
jmp 0x406f71
mov dword [ebp - 0x13c], edi
call fcn.00447bbc
mov esi, eax
test esi, esi
jns 0x406fc6
push str.Failed_to_initialize_XML_util.
jmp 0x406f71
lea eax, [ebp - 0x120]
mov dword [ebp - 0x138], edi
push eax
mov dword [ebp - 0x120], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x40701f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x406ffe
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x407005
mov esi, 0x80004005
push esi
push 0x98
push str.c:_agent_work36_swix_src_burnengineengine.cpp
call fcn.004013b3
push str.Failed_to_get_OS_info.
jmp 0x406f71
push 0
lea eax, [ebp - 0x124]
push eax
call fcn.00404e3a
push dword [ebp - 0x124]
movzx eax, word [ebp - 0xc]
push eax
push dword [ebp - 0x114]
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
push str.3.14.1.8722
push 0x20000001
push 2
call fcn.004072c6
add esp, 0x20
cmp dword [ebp - 0x124], ebx
je 0x407077
push dword [ebp - 0x124]
call fcn.00403136
and dword [ebp - 0x124], ebx
lea eax, [ebp - 0x630]
push eax
call fcn.0041916b
mov esi, eax
test esi, esi
jns 0x407093
push str.Failed_to_initialize_core.
jmp 0x406f71
mov eax, dword [ebp - 0x1a0]
sub eax, 0
je 0x407164
sub eax, 1
je 0x40713c
sub eax, 1
je 0x407114
sub eax, 1
je 0x4070ec
sub eax, 1
je 0x4070c9
mov esi, 0x8000ffff
push str.Invalid_run_mode.
jmp 0x406f71
push dword [ebp + 0x14]
lea eax, [ebp - 0x530]
push eax
call fcn.00406952
mov esi, eax
test esi, esi
jns 0x407186
push str.Failed_to_run_RunOnce_mode.
jmp 0x406f71
lea eax, [ebp - 0x630]
mov dword [ebp - 0x130], edi
push eax
push dword [ebp - 0x12c]
call fcn.00406756
mov esi, eax
test esi, esi
jns 0x407186
push str.Failed_to_run_embedded_mode.
jmp 0x406f71
lea eax, [ebp - 0x630]
push eax
push dword [ebp - 0x134]
push dword [ebp - 0x12c]
call fcn.004065bf
mov esi, eax
test esi, esi
jns 0x407186
push str.Failed_to_run_per_machine_mode.
jmp 0x406f71
lea eax, [ebp - 0x630]
mov dword [ebp - 0x130], edi
push eax
push dword [ebp - 0x12c]
call fcn.004067b3
mov esi, eax
test esi, esi
jns 0x407186
push str.Failed_to_run_per_user_mode.
jmp 0x406f71
lea eax, [ebp - 0x630]
push eax
push dword [ebp - 0x134]
call fcn.00406a03
mov esi, eax
test esi, esi
jns 0x407186
push str.Failed_to_run_untrusted_mode.
jmp 0x406f71
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x538]
mov ebx, dword [ebp - 0x618]
mov dword [ecx], eax
cmp dword [ebp - 0x124], 0
je 0x4071ae
push dword [ebp - 0x124]
call fcn.00403136
test esi, esi
jns 0x4071c0
cmp dword [ebp - 0x23c], 0
jne 0x4071c0
call fcn.00415eaf
lea eax, [ebp - 0x578]
push eax
call fcn.0040f514
push dword [ebp - 0x520]
call fcn.0041c5d1
call fcn.0041c81c
test ebx, ebx
je 0x40720c
mov eax, dword [ebp - 0x5f8]
test eax, eax
je 0x40720c
cmp eax, 6
je 0x40720c
push eax
call fcn.0041600f
push eax
push 0xa0000008
push 2
call fcn.004072c6
add esp, 0xc
mov esi, 0x80070bc2
xor ebx, ebx
lea eax, [ebp - 0x630]
push eax
call fcn.00406c6a
cmp dword [ebp - 0x138], 0
je 0x407226
call fcn.00448084
cmp dword [ebp - 0x13c], 0
je 0x407234
call fcn.00447563
cmp dword [ebp - 0x140], 0
je 0x407242
call fcn.00405d15
cmp dword [ebp - 0x144], 0
je 0x407250
call fcn.00444f68
test edi, edi
je 0x40725a
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x130], 0
je 0x40729c
test esi, esi
jns 0x40726b
mov edi, esi
jmp 0x407273
mov eax, dword [ebp - 0x148]
mov edi, dword [eax]
push ebx
call fcn.00415a44
push eax
push edi
push 0x20000007
push 2
call fcn.004072c6
add esp, 0x10
test ebx, ebx
je 0x40729c
push 0xa0000005
push 2
call fcn.004072c6
pop ecx
pop ecx
push 0
call fcn.004452c5
test ebx, ebx
je 0x4072ac
call fcn.004062c2
push 0
call fcn.004459a8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00430093
leave
ret 0x14