Function at 0x5ba94a45
Capabilities:
Check os version
Hide graphical window

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c4
mov eax, dword [0x5bb70c3c]
and dword [ebp - 0x1ac], 0
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0x24c], 0
mov dword [ebp - 4], eax
push edi
je 0x5ba94a95
xor ebx, ebx
inc ebx
push ebx
push ebx
push 3
push dword [esi + 0x98]
call fcn.5ba6f8bc
mov edi, eax
cmp edi, ebx
jne 0x5ba94a8a
mov edi, 0x80040113
test edi, edi
jl 0x5ba94dbb
mov dword [esi + 0x2c], ebx
lea eax, [ebp - 0x1ac]
push eax
call fcn.5ba7b92f
mov edi, eax
test edi, edi
jl 0x5ba94dbb
lea ebx, [esi + 0x250]
cmp dword [ebx], 0
jne 0x5ba94aff
cmp dword [esi + 0x48], 0
push 1
sete al
dec al
push 1
and eax, 3
push eax
push dword [esi + 0x98]
call fcn.5ba6f8bc
mov edi, eax
test edi, edi
jl 0x5ba94dbb
mov eax, dword [0x5bb73820]
mov ecx, dword [eax]
xor edx, edx
cmp dword [esi + 0x48], edx
push ebx
setne dl
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x5ba94aff
mov edi, 0x80041084
jmp 0x5ba94dbb
mov ecx, esi
call fcn.5ba94e9b
mov edi, eax
test edi, edi
jl 0x5ba94dbb
push dword [ebp - 0x1ac]
mov ecx, esi
call fcn.5ba951fc
mov edi, eax
test edi, edi
jl 0x5ba94dbb
mov eax, dword [esi + 0x248]
xor ebx, ebx
cmp eax, ebx
je 0x5ba94c84
lea edx, [ebp - 0x1b0]
push edx
push 0x5ba51ef4
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1b0], ebx
mov ecx, dword [eax]
push eax
call dword [ecx]
mov edi, eax
cmp edi, ebx
jl 0x5ba94dbb
mov ecx, dword [ebp - 0x1b0]
mov edx, dword [ecx]
lea eax, [ebp - 0x1a8]
push eax
mov eax, 0x5ba516e8
push eax
push eax
push ecx
call dword [edx + 0xc]
mov edi, eax
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test edi, edi
jl 0x5ba94dbb
cmp dword [esi + 0x48], ebx
jne 0x5ba94c5c
mov ecx, esi
call fcn.5ba8afe0
test eax, eax
je 0x5ba94c5c
mov ebx, 0x5ba4e14c
push ebx
call fcn.5babcf32
test eax, eax
jne 0x5ba94c5c
push 0x26
pop ecx
lea edi, [ebp - 0x1a0]
rep stosd dword es:[edi], eax
mov byte [ebp - 0x108], al
lea eax, [ebp - 0x1a4]
push eax
mov dword [ebp - 0x1a4], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x5ba94c31
cmp dword [ebp - 0x194], 2
jne 0x5ba94c31
cmp dword [ebp - 0x1a0], 5
jne 0x5ba94c31
cmp dword [ebp - 0x19c], 1
jne 0x5ba94c31
cmp word [ebp - 0x198], 0xa28
jne 0x5ba94c31
call fcn.5babcc7f
test eax, eax
je 0x5ba94c31
push 0x104
lea eax, [ebp - 0x108]
push eax
push 0x1088
call fcn.5babcc7f
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 4
lea eax, [ebp - 0x108]
push eax
push 0x1087
push ebx
push dword [esi + 0x98]
call fcn.5babed20
cmp eax, 7
je 0x5ba94c55
cmp eax, 2
jne 0x5ba94c5c
mov edi, 0x8004100a
jmp 0x5ba94c79
push dword [esi + 0x248]
mov eax, dword [ebp - 0x1a8]
push dword [esi + 0x2c]
mov ecx, dword [eax]
push dword [ebp - 0x1ac]
push eax
call dword [ecx + 0x28]
mov edi, eax
mov eax, dword [ebp - 0x1a8]
jmp 0x5ba94dad
push 0x288
call fcn.5ba5615b
cmp eax, ebx
pop ecx
je 0x5ba94c9c
mov ecx, eax
call fcn.5ba8d44e
mov ebx, eax
test ebx, ebx
jne 0x5ba94ca5
mov edi, 0x8007000e
push 0x3c
call fcn.5ba5615b
test eax, eax
pop ecx
je 0x5ba94cc0
mov ecx, eax
call fcn.5baf8266
mov dword [ebp - 0x1a8], eax
jmp 0x5ba94cc7
and dword [ebp - 0x1a8], 0
mov ecx, dword [ebp - 0x1a8]
test ecx, ecx
jne 0x5ba94cd6
mov edi, 0x8007000e
test edi, edi
jl 0x5ba94d93
push 1
push 0x1860
push dword [esi + 0x9c]
call fcn.5baf815e
mov edi, eax
test edi, edi
jl 0x5ba94d93
mov eax, dword [ebp - 0x1ac]
or dword [ebp - 0x1c0], 0xffffffff
lea ecx, [ebp - 0x1c4]
push ecx
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebx]
push ebx
mov dword [ebp - 0x1c4], 4
call dword [eax + 0xc]
mov edi, eax
test edi, edi
jl 0x5ba94d93
push dword [ebp - 0x1a8]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x40]
mov edi, eax
test edi, edi
jl 0x5ba94d93
push dword [esi + 0x248]
mov eax, dword [ebx]
push dword [esi + 0x2c]
push dword [ebp - 0x1ac]
push ebx
call dword [eax + 0x28]
mov edi, eax
cmp edi, reloc.ATL.DLL_AtlAdvise
jne 0x5ba94d68
mov ecx, dword [ebp - 0x1a8]
call fcn.5baf7bf8
mov edi, eax
mov ecx, dword [ebp - 0x1a8]
call fcn.5baf7c5a
test edi, edi
jl 0x5ba94d93
mov eax, dword [esi + 0x24c]
mov ecx, dword [eax]
push 2
push eax
call dword [ecx + 0x10]
push 0
push dword [esi + 0x98]
call dword [sym.imp.USER32.dll_ShowWindow]
test ebx, ebx
je 0x5ba94da3
mov eax, dword [ebx]
push ebx
call dword [eax + 0x3c]
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp - 0x1a8]
test eax, eax
je 0x5ba94db3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test edi, edi
jge 0x5ba94e77
and dword [esi + 0x4c], 0
cmp edi, 0x80040113
je 0x5ba94e77
cmp edi, 0x8004100a
je 0x5ba94e77
mov ebx, 0x80041016
cmp edi, ebx
je 0x5ba94e3f
cmp edi, 0x80041084
je 0x5ba94e32
cmp edi, 0x80041190
je 0x5ba94e00
cmp edi, 0x80041192
je 0x5ba94e77
cmp edi, 0x800ccee2
jne 0x5ba94e4a
push 0
push 0x5babcd84
push dword [esi + 0x98]
push 0x9b
push dword [0x5bb73708]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 0x4d3
jne 0x5ba94e77
push dword [esi + 0x250]
call fcn.5babd965
jmp 0x5ba94e77
cmp dword [esi + 0x48], 0
jne 0x5ba94e4a
mov edi, 0x8004109a
jmp 0x5ba94e4a
cmp dword [esi + 0x48], 0
jne 0x5ba94e4a
mov edi, 0x8004109b
push edi
push 0x1244
push 0x1073
push dword [esi + 0x98]
call fcn.5babe36d
cmp edi, ebx
je 0x5ba94e6c
cmp edi, 0x8004109b
jne 0x5ba94e77
add esi, 8
mov eax, dword [esi]
push 0
push esi
call dword [eax + 0x34]
mov eax, dword [ebp - 0x1ac]
test eax, eax
je 0x5ba94e87
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.5bb3f314
leave
ret