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

Disassembly:
sub esp, 0xe8
mov eax, dword [esp + 0xec]
push ebx
push ebp
push esi
push edi
push 0x41bff0
mov dword [0x423ed4], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea ecx, [esp + 0x64]
xor ebx, ebx
push ecx
mov dword [0x424020], ebx
mov dword [0x41e524], 1
mov dword [esp + 0x68], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x74], 2
jne 0x401b90
cmp dword [esp + 0x68], 5
jb 0x401b90
push str.Msimg32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [0x41e538], eax
je 0x401ba2
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GradientFill
push eax
call esi
mov edx, dword [0x41e538]
push str.AlphaBlend
push edx
mov dword [0x41d47c], eax
call esi
mov dword [0x423edc], eax
jmp 0x401ba2
mov dword [0x41e538], ebx
mov dword [0x41d47c], ebx
mov dword [0x423edc], ebx
mov eax, dword [0x423ed4]
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x97
push eax
call esi
mov ecx, dword [0x423ed4]
push 0x96
push ecx
mov dword [0x423ed0], eax
call esi
mov edx, dword [0x423ed4]
push 0x95
push edx
mov dword [0x41bee8], eax
call esi
mov dword [0x41bfdc], eax
mov eax, dword [0x423ed4]
push 0x94
push eax
call esi
mov ecx, dword [0x423ed4]
push 0x92
push ecx
mov dword [0x41befc], eax
call esi
mov edx, dword [0x423ed4]
push 0x93
push edx
mov dword [0x41d3c0], eax
call esi
mov dword [0x41d3ac], eax
mov eax, dword [0x423ed4]
push 0x91
push eax
call esi
mov ecx, dword [0x423ed4]
push 0x90
push ecx
mov dword [0x41d474], eax
call esi
mov edx, dword [0x423ed4]
push 0x8f
push edx
mov dword [0x423e94], eax
call esi
mov dword [0x423e8c], eax
mov eax, dword [0x423ed4]
push 0x8e
push eax
call esi
mov ecx, dword [0x423ed4]
push 0x8c
push ecx
mov dword [0x41e534], eax
call esi
mov edx, dword [0x423ed4]
push 0x98
push edx
mov dword [0x41d210], eax
call esi
mov dword [0x423e90], eax
mov eax, dword [0x423ed4]
push 0x99
push eax
call esi
mov ecx, dword [0x423ed4]
push 0x9a
push ecx
mov dword [0x41af3c], eax
call esi
mov edx, dword [0x423ed4]
push 0x9b
push edx
mov dword [0x41e518], eax
call esi
mov dword [0x41c07c], eax
mov eax, dword [0x423ed4]
push 0x9c
push eax
call esi
mov dword [0x41c0c4], eax
mov ecx, dword [0x423ed4]
push 0x9d
push ecx
call esi
mov edx, dword [0x423ed4]
push 0x9e
push edx
mov dword [0x41d3d0], eax
call esi
mov dword [0x41e52c], eax
mov eax, dword [0x423ed4]
push 0x9f
push eax
call esi
mov ecx, dword [0x423ed4]
push 0xa1
push ecx
mov dword [0x41beec], eax
call esi
mov edx, dword [0x423ed4]
push 0x8d
push edx
mov dword [0x41d470], eax
call esi
push 0x190
push 0x41d218
push ebx
mov dword [0x41c000], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push 0x41d218
call fcn.0040a730
add esp, 8
mov byte [eax], 0
xor eax, eax
mov cl, byte [eax + 0x41d218]
mov byte [eax + 0x41d080], cl
inc eax
test cl, cl
jne 0x401d55
mov eax, dword [0x423ed4]
push 0x4164c4
push eax
mov dword [esp + 0x20], 0x30
mov dword [esp + 0x24], 0xb
mov dword [esp + 0x28], 0x4021f0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0x1e
mov dword [esp + 0x34], eax
call esi
push 0x7f00
push ebx
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0x4164c4
mov dword [esp + 0x3c], 0x10
mov dword [esp + 0x38], eax
mov eax, dword [0x423ed4]
push eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x4164c4
call esi
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x48], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
mov edx, dword [esp + 0x104]
push edx
call fcn.00409030
mov ecx, 0x32
xor eax, eax
mov edi, 0x41bf08
add esp, 4
rep stosd dword es:[edi], eax
mov ecx, 0x32
mov edi, 0x41d4b0
rep stosd dword es:[edi], eax
mov ecx, 0x32
mov edi, 0x41ae70
rep stosd dword es:[edi], eax
mov dword [0x41c004], eax
lea ecx, [esp + 0x10]
mov dword [0x41c008], eax
push ecx
mov dword [0x41c00c], eax
mov dword [0x423ed8], ebx
mov dword [0x41c010], eax
mov dword [0x41c0c0], ebx
mov dword [esp + 0x14], 8
mov dword [esp + 0x18], 0x20
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov edx, dword [0x423ed4]
push ebx
push ebx
push ebx
push 0x4164c4
push edx
call dword [sym.imp.USER32.dll_CreateDialogParamA]
push eax
mov dword [0x41c090], eax
call fcn.004038a0
mov edi, dword [esp + 0x10c]
mov eax, dword [0x41c090]
mov ebp, dword [sym.imp.USER32.dll_ShowWindow]
add esp, 4
push edi
push eax
call ebp
mov ecx, dword [0x423ed4]
push 0x14
push ebx
push ebx
push ebx
push ebx
push 9
push 0x416410
push ebx
push ecx
push 9
push ebx
push 0x40000100
mov edx, dword [0x41c090]
push edx
call dword [sym.imp.COMCTL32.dll_CreateToolbarEx]
push edi
push eax
mov dword [0x41c0d4], eax
call ebp
mov ebx, dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 1
push 8
push 0x21
push 0x10
push 0x10
call ebx
mov ebp, eax
mov eax, dword [0x423ed4]
push 0x7d
push eax
call esi
mov edi, dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
push eax
push 0xffffffffffffffff
push ebp
call edi
mov ecx, dword [0x423ed4]
push 0x7c
push ecx
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov edx, dword [0x423ed4]
push 0x7b
push edx
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov eax, dword [0x423ed4]
push 0x80
push eax
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov ecx, dword [0x423ed4]
push 0x7f
push ecx
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov edx, dword [0x423ed4]
push 0x81
push edx
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov eax, dword [0x423ed4]
push 0x84
push eax
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov ecx, dword [0x423ed4]
push 0x87
push ecx
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
push 0x7e
mov edx, dword [0x423ed4]
push edx
call esi
push eax
push 0xffffffffffffffff
push ebp
call edi
mov eax, dword [0x41c0d4]
push ebp
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0x430
push eax
call ebp
mov ecx, dword [0x41c0d4]
push 0x10
push 0x9c42
push 0x411
push ecx
call ebp
push 1
push 4
push 0x21
push 0x10
push 0x10
call ebx
mov edx, dword [0x423ed4]
push str.SMALLSLOT1
push edx
mov dword [0x41bff8], eax
call esi
push eax
mov eax, dword [0x41bff8]
push 0xffffffffffffffff
push eax
call edi
mov ecx, dword [0x423ed4]
push str.SMALLSLOT2
push ecx
call esi
mov edx, dword [0x41bff8]
push eax
push 0xffffffffffffffff
push edx
call edi
mov eax, dword [0x423ed4]
push str.SMALLSLOT3
push eax
call esi
mov ecx, dword [0x41bff8]
push eax
push 0xffffffffffffffff
push ecx
call edi
mov edx, dword [0x423ed4]
push str.SMALLSLOT4
push edx
call esi
push eax
mov eax, dword [0x41bff8]
push 0xffffffffffffffff
push eax
call edi
push 0x41c09c
push 0x41c0a0
push 0x41c018
call fcn.004011d0
mov esi, dword [sym.imp.USER32.dll_PostQuitMessage]
add esp, 0xc
test eax, eax
jne 0x40203e
push 0
call esi
mov eax, dword [0x41e524]
test eax, eax
je 0x40207f
mov ecx, dword [0x41c090]
push ecx
call fcn.00401300
add esp, 4
test eax, eax
jne 0x40207f
mov edx, dword [0x41c090]
push eax
mov eax, dword [0x423ed4]
push 0x409900
push edx
push str.WELCOME
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test eax, eax
jne 0x40207f
push eax
call esi
call fcn.00408f80
mov ecx, dword [0x41c090]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, 0x4223c0
call fcn.00406870
cmp byte [0x424024], 1
je 0x4020ae
cmp byte [0x4224dc], 1
jne 0x4020c4
mov edx, dword [0x41c090]
mov byte [0x424024], 0
push edx
call fcn.004033a0
add esp, 4
cmp byte [0x424025], 1
je 0x4020d6
cmp byte [0x4224dd], 1
jne 0x4020ee
mov eax, dword [0x41c090]
push 0
push 0
push 0x203
push eax
mov byte [0x424025], 0
call ebp
mov ebp, dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
push 0
call ebp
mov dword [0x424030], eax
mov al, byte [0x4224df]
cmp al, 1
jne 0x40210d
push closesocket
call ebp
cmp byte [0x423e84], 1
jne 0x402136
mov ecx, dword [0x423ed0]
mov edx, dword [0x41c090]
push str.BatteryMon_n
push ecx
push 0x3039
push edx
call fcn.00405d60
add esp, 0x10
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea eax, [esp + 0x50]
push 0
push eax
call esi
test eax, eax
je 0x402178
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [esp + 0x48]
push ecx
call edi
lea edx, [esp + 0x48]
push edx
call ebx
push 0
push 0
lea eax, [esp + 0x50]
push 0
push eax
call esi
test eax, eax
jne 0x402159
cmp byte [0x4224df], 1
jne 0x40218a
mov ecx, dword [0x424030]
push ecx
call ebp
mov ecx, 0x41d488
call fcn.00409560
mov eax, dword [0x41e538]
pop edi
pop esi
pop ebp
test eax, eax
pop ebx
je 0x4021b2
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x41e538], 0
mov edx, dword [0x41bff8]
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
mov eax, dword [0x41d478]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [0x41c090]
push 0x3039
push ecx
call fcn.00405e90
mov eax, dword [esp + 0x48]
add esp, 0xf0
ret 0x10