Function at 0x4051d2
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x630
mov eax, dword [0x46a008]
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.0042f600
push 0x4e8
lea eax, [ebp - 0x630]
mov dword [ebp - 0x124], ebx
push ebx
push eax
mov dword [ebp - 0x130], ebx
call fcn.0042f600
add esp, 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call fcn.0043fdc4
push ebx
push 3
call fcn.0043ff78
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x154]
push eax
push esi
call fcn.00401206
mov esi, eax
test esi, esi
jns 0x405296
push str.Failed_to_parse_command_line.
push esi
call fcn.0043fb09
pop ecx
pop ecx
mov edi, ebx
jmp 0x405511
push edi
lea eax, [ebp - 0x630]
push eax
call fcn.00404326
mov esi, eax
test esi, esi
jns 0x4052b0
push str.Failed_to_initialize_engine_state.
jmp 0x405287
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x604], eax
call fcn.00405653
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov esi, eax
test esi, esi
jns 0x4052d5
push str.Failed_to_initialize_COM.
jmp 0x405287
xor edi, edi
inc edi
call fcn.0043f58a
mov esi, eax
test esi, esi
jns 0x4052f5
push str.Failed_to_initialize_Cryputil.
push esi
call fcn.0043fb09
pop ecx
pop ecx
jmp 0x405511
mov dword [ebp - 0x144], edi
call fcn.004406c0
mov esi, eax
test esi, esi
jns 0x40530d
push str.Failed_to_initialize_Regutil.
jmp 0x4052e8
mov dword [ebp - 0x140], edi
call fcn.00442368
mov esi, eax
test esi, esi
jns 0x405325
push str.Failed_to_initialize_Wiutil.
jmp 0x4052e8
mov dword [ebp - 0x13c], edi
call fcn.00442dc7
mov esi, eax
test esi, esi
jns 0x40533d
push str.Failed_to_initialize_XML_util.
jmp 0x4052e8
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 0x405396
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x405375
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x40537c
mov esi, 0x80004005
push esi
push 0x95
push str.c:_agent_work66_s_src_burnengineengine.cpp
call fcn.004038ba
push str.Failed_to_get_OS_info.
jmp 0x4052e8
push 0
lea eax, [ebp - 0x124]
push eax
call fcn.004034c4
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.11.2.4516
push 0x20000001
push 2
call fcn.0040563d
add esp, 0x20
cmp dword [ebp - 0x124], ebx
je 0x4053ee
push dword [ebp - 0x124]
call fcn.00402762
and dword [ebp - 0x124], ebx
lea eax, [ebp - 0x630]
push eax
call fcn.0041741d
mov esi, eax
test esi, esi
jns 0x40540a
push str.Failed_to_initialize_core.
jmp 0x4052e8
mov eax, dword [ebp - 0x1a0]
sub eax, 0
je 0x4054db
sub eax, 1
je 0x4054b3
sub eax, 1
je 0x40548b
sub eax, 1
je 0x405463
sub eax, 1
je 0x405440
mov esi, 0x8000ffff
push str.Invalid_run_mode.
jmp 0x4052e8
push dword [ebp + 0x14]
lea eax, [ebp - 0x530]
push eax
call fcn.00404cc9
mov esi, eax
test esi, esi
jns 0x4054fd
push str.Failed_to_run_RunOnce_mode.
jmp 0x4052e8
lea eax, [ebp - 0x630]
mov dword [ebp - 0x130], edi
push eax
push dword [ebp - 0x12c]
call fcn.00404acd
mov esi, eax
test esi, esi
jns 0x4054fd
push str.Failed_to_run_embedded_mode.
jmp 0x4052e8
lea eax, [ebp - 0x630]
push eax
push dword [ebp - 0x134]
push dword [ebp - 0x12c]
call fcn.00404936
mov esi, eax
test esi, esi
jns 0x4054fd
push str.Failed_to_run_per_machine_mode.
jmp 0x4052e8
lea eax, [ebp - 0x630]
mov dword [ebp - 0x130], edi
push eax
push dword [ebp - 0x12c]
call fcn.00404b2a
mov esi, eax
test esi, esi
jns 0x4054fd
push str.Failed_to_run_per_user_mode.
jmp 0x4052e8
lea eax, [ebp - 0x630]
push eax
push dword [ebp - 0x134]
call fcn.00404d7a
mov esi, eax
test esi, esi
jns 0x4054fd
push str.Failed_to_run_untrusted_mode.
jmp 0x4052e8
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 0x405525
push dword [ebp - 0x124]
call fcn.00402762
test esi, esi
jns 0x405537
cmp dword [ebp - 0x23c], 0
jne 0x405537
call fcn.00414177
lea eax, [ebp - 0x578]
push eax
call fcn.0040d7dd
push dword [ebp - 0x520]
call fcn.0041a7b5
call fcn.0041a9ff
test ebx, ebx
je 0x405583
mov eax, dword [ebp - 0x5f8]
test eax, eax
je 0x405583
cmp eax, 6
je 0x405583
push eax
call fcn.004142d7
push eax
push 0xa0000008
push 2
call fcn.0040563d
add esp, 0xc
mov esi, 0x80070bc2
xor ebx, ebx
lea eax, [ebp - 0x630]
push eax
call fcn.00404fe1
cmp dword [ebp - 0x138], 0
je 0x40559d
call fcn.0044328f
cmp dword [ebp - 0x13c], 0
je 0x4055ab
call fcn.0044276e
cmp dword [ebp - 0x140], 0
je 0x4055b9
call fcn.00440d0c
cmp dword [ebp - 0x144], 0
je 0x4055c7
call fcn.0043f699
test edi, edi
je 0x4055d1
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x130], 0
je 0x405613
test esi, esi
jns 0x4055e2
mov edi, esi
jmp 0x4055ea
mov eax, dword [ebp - 0x148]
mov edi, dword [eax]
push ebx
call fcn.00413d0c
push eax
push edi
push 0x20000007
push 2
call fcn.0040563d
add esp, 0x10
test ebx, ebx
je 0x405613
push 0xa0000005
push 2
call fcn.0040563d
pop ecx
pop ecx
push 0
call fcn.0043f9e7
test ebx, ebx
je 0x405623
call fcn.00404639
push 0
call fcn.004400ca
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042dd1f
leave
ret 0x14