Function at 0x40e260
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x43cb3b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x444
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x48]
push 0
push eax
push 0xc
mov esi, ecx
push 0x42
mov dword [esp + 0x58], 0xc
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov ecx, dword [esp + 0x4c]
and ecx, 1
cmp cl, 1
jne 0x40e5f6
mov edx, dword [esp + 0x50]
mov byte [esi + 0xa8], cl
push edx
lea ecx, [esp + 0x44]
call fcn.00431a55
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
push 8
mov dword [esp + 0x460], 0
call ebp
mov ebx, eax
mov eax, dword [0x44ed90]
mov dword [esp + 0x10], eax
mov ecx, ebx
lea edx, [esp + 0x10]
and ecx, 0xff
mov byte [esp + 0x45c], 1
push ecx
push 0x44d254
push edx
call fcn.0042ca77
mov eax, dword [0x44ed90]
add esp, 0xc
mov dword [esp + 0x14], eax
xor ecx, ecx
lea edx, [esp + 0x14]
mov cl, bh
mov byte [esp + 0x45c], 2
and ecx, 0xff
push ecx
push 0x44d254
push edx
call fcn.0042ca77
mov eax, dword [0x44ed90]
add esp, 0xc
mov dword [esp + 0x18], eax
shr ebx, 0x10
and ebx, 0xff
lea ecx, [esp + 0x18]
push ebx
push 0x44d254
push ecx
mov byte [esp + 0x468], 3
call fcn.0042ca77
mov edx, dword [esp + 0x1c]
push 0x44d270
push edx
call fcn.0041c3ea
add esp, 0x14
test eax, eax
jne 0x40e37d
push 0x44d26c
lea ecx, [esp + 0x14]
call fcn.00431b70
mov eax, dword [esp + 0x14]
push 0x44d270
push eax
call fcn.0041c3ea
add esp, 8
test eax, eax
jne 0x40e3a1
push 0x44d26c
lea ecx, [esp + 0x18]
call fcn.00431b70
mov ecx, dword [esp + 0x18]
push 0x44d270
push ecx
call fcn.0041c3ea
add esp, 8
test eax, eax
jne 0x40e3c5
push 0x44d26c
lea ecx, [esp + 0x1c]
call fcn.00431b70
lea edx, [esp + 0x10]
lea eax, [esp + 0x1c]
push edx
push 0x44d278
push eax
call fcn.00431cf0
lea ecx, [esp + 0x14]
lea edx, [esp + 0x24]
push ecx
push eax
push edx
mov byte [esp + 0x468], 4
call fcn.00431c16
lea ecx, [esp + 0x18]
lea edx, [esp + 0x30]
push ecx
push eax
push edx
mov byte [esp + 0x468], 5
call fcn.00431c16
lea ecx, [esp + 0x24]
mov byte [esp + 0x45c], 8
call fcn.004319e7
lea ecx, [esp + 0x1c]
mov byte [esp + 0x45c], 7
call fcn.004319e7
mov eax, dword [esp + 0x30]
lea edi, [esi + 0x144]
push eax
push str.__MENU_TEXT_COLOR__
mov ecx, edi
call fcn.0042c3e2
mov ecx, dword [esp + 0x30]
push ecx
push str.__REGULAR_TEXT_COLOR__
mov ecx, edi
call fcn.0042c3e2
push 0xe
call ebp
mov ebx, eax
lea eax, [esp + 0x10]
mov edx, ebx
and edx, 0xff
push edx
push 0x44d254
push eax
call fcn.0042ca77
xor ecx, ecx
add esp, 0xc
mov cl, bh
lea edx, [esp + 0x14]
and ecx, 0xff
push ecx
push 0x44d254
push edx
call fcn.0042ca77
shr ebx, 0x10
add esp, 0xc
and ebx, 0xff
lea eax, [esp + 0x18]
push ebx
push 0x44d254
push eax
call fcn.0042ca77
mov ecx, dword [esp + 0x1c]
push 0x44d270
push ecx
call fcn.0041c3ea
add esp, 0x14
test eax, eax
jne 0x40e4ce
push 0x44d26c
lea ecx, [esp + 0x14]
call fcn.00431b70
mov edx, dword [esp + 0x14]
push 0x44d270
push edx
call fcn.0041c3ea
add esp, 8
test eax, eax
jne 0x40e4f2
push 0x44d26c
lea ecx, [esp + 0x18]
call fcn.00431b70
mov eax, dword [esp + 0x18]
push 0x44d270
push eax
call fcn.0041c3ea
add esp, 8
test eax, eax
jne 0x40e516
push 0x44d26c
lea ecx, [esp + 0x1c]
call fcn.00431b70
lea ecx, [esp + 0x10]
lea edx, [esp + 0x3c]
push ecx
push 0x44d278
push edx
call fcn.00431cf0
lea ecx, [esp + 0x14]
lea edx, [esp + 0x44]
push ecx
push eax
push edx
mov byte [esp + 0x468], 9
call fcn.00431c16
lea ecx, [esp + 0x18]
lea edx, [esp + 0x34]
push ecx
push eax
push edx
mov byte [esp + 0x468], 0xa
call fcn.00431c16
lea ecx, [esp + 0x44]
mov byte [esp + 0x45c], 0xd
call fcn.004319e7
lea ecx, [esp + 0x3c]
mov byte [esp + 0x45c], 0xc
call fcn.004319e7
mov eax, dword [esp + 0x34]
mov ecx, edi
push eax
push str.__MOUSE_OVER_COLOR__
call fcn.0042c3e2
lea ecx, [esp + 0x34]
mov byte [esp + 0x45c], 7
call fcn.004319e7
lea ecx, [esp + 0x30]
mov byte [esp + 0x45c], 3
call fcn.004319e7
lea ecx, [esp + 0x18]
mov byte [esp + 0x45c], 2
call fcn.004319e7
lea ecx, [esp + 0x14]
mov byte [esp + 0x45c], 1
call fcn.004319e7
lea ecx, [esp + 0x10]
mov byte [esp + 0x45c], 0
call fcn.004319e7
lea ecx, [esp + 0x40]
mov dword [esp + 0x45c], 0xffffffff
call fcn.004319e7
mov eax, dword [esi + 0x13c]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
lea ecx, [esp + 0x58]
push 0x400
push ecx
push 0x452ac0
push str.MENU_TEXT_COLOR
push str.OTHER
mov byte [esp + 0x6c], 0
call ebp
test eax, eax
jle 0x40e63c
lea edx, [esp + 0x54]
lea ecx, [esi + 0x144]
push edx
push str.__MENU_TEXT_COLOR__
call fcn.0042c3e2
mov eax, dword [esi + 0x13c]
mov byte [esp + 0x54], 0
push eax
lea eax, [esp + 0x58]
push 0x400
push eax
push 0x452ac0
push str.MENU_HOVER_COLOR
push str.OTHER
call ebp
test eax, eax
jle 0x40e67c
lea ecx, [esp + 0x54]
push ecx
push str.__MENU_HOVER_COLOR__
lea ecx, [esi + 0x144]
call fcn.0042c3e2
mov eax, dword [esi + 0x13c]
lea edx, [esp + 0x54]
push eax
push 0x400
push edx
push 0x452ac0
push str.MOUSE_OVER_COLOR
push str.OTHER
mov byte [esp + 0x6c], 0
call ebp
test eax, eax
jle 0x40e6bc
lea eax, [esp + 0x54]
lea ecx, [esi + 0x144]
push eax
push str.__MOUSE_OVER_COLOR__
call fcn.0042c3e2
mov eax, dword [esi + 0x13c]
lea ecx, [esp + 0x54]
push eax
push 0x400
push ecx
push 0x452ac0
push str.REGULAR_TEXT_COLOR
push str.OTHER
mov byte [esp + 0x6c], 0
call ebp
test eax, eax
jle 0x40e6fc
lea edx, [esp + 0x54]
lea ecx, [esi + 0x144]
push edx
push str.__REGULAR_TEXT_COLOR__
call fcn.0042c3e2
mov eax, dword [esi + 0x13c]
mov byte [esp + 0x54], 0
push eax
lea eax, [esp + 0x58]
push 0x400
push eax
push 0x452ac0
push str.LAST_USED_MENU
push str.OTHER
call ebp
test eax, eax
jle 0x40e73c
lea ecx, [esp + 0x54]
push ecx
push str.__LAST_USED_MENU__
lea ecx, [esi + 0x144]
call fcn.0042c3e2
mov al, byte [esi + 0x65]
test al, al
jne 0x40e804
mov eax, dword [esi + 0x13c]
lea edx, [esp + 0x54]
push eax
push 0x400
push edx
push 0x452ac0
push str.SHOW_WELCOME
push str.OTHER
mov byte [esp + 0x6c], 0
call ebp
test eax, eax
jle 0x40e787
lea eax, [esp + 0x54]
lea ecx, [esi + 0x144]
push eax
push str.__SHOW_WELCOME__
call fcn.0042c3e2
mov eax, dword [esi + 0x13c]
lea ecx, [esp + 0x54]
push eax
push 0x400
push ecx
push 0x452ac0
push str.PLAY_SOUND
push str.OTHER
mov byte [esp + 0x6c], 0
call ebp
test eax, eax
jle 0x40e7c7
lea edx, [esp + 0x54]
lea ecx, [esi + 0x144]
push edx
push str.__PLAY_SOUND__
call fcn.0042c3e2
mov eax, dword [esi + 0x13c]
mov byte [esp + 0x54], 0
push eax
lea eax, [esp + 0x58]
push 0x400
push eax
push 0x452ac0
push str.SHOW_SPLASH
push str.OTHER
call ebp
test eax, eax
jle 0x40e83d
lea ecx, [esp + 0x54]
push ecx
push str.__SHOW_SPLASH__
lea ecx, [esi + 0x144]
jmp 0x40e838
lea edi, [esi + 0x144]
push str.false
push str.__SHOW_WELCOME__
mov ecx, edi
call fcn.0042c3e2
push str.false
push str.__PLAY_SOUND__
mov ecx, edi
call fcn.0042c3e2
push str.false
push str.__SHOW_SPLASH__
mov ecx, edi
call fcn.0042c3e2
mov al, byte [esi + 0x64]
test al, al
je 0x40e8d8
mov edx, dword [0x44ed90]
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0x60]
lea ecx, [esp + 0x10]
push eax
push 0x44d194
push ecx
mov dword [esp + 0x468], 0xe
call fcn.0042ca77
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea edi, [esi + 0x144]
push edx
push str.__DIFF_WIDTH__
mov ecx, edi
call fcn.0042c3e2
mov eax, dword [esi + 0x5c]
lea ecx, [esp + 0x10]
push eax
push 0x44d194
push ecx
call fcn.0042ca77
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, edi
push edx
push str.__DIFF_HEIGHT__
call fcn.0042c3e2
push str.true
push str.__TOO_BIG__
mov ecx, edi
call fcn.0042c3e2
lea ecx, [esp + 0x10]
mov dword [esp + 0x45c], 0xffffffff
call fcn.004319e7
jmp 0x40e911
lea edi, [esi + 0x144]
push 0x44d270
push str.__DIFF_WIDTH__
mov ecx, edi
call fcn.0042c3e2
push 0x44d270
push str.__DIFF_HEIGHT__
mov ecx, edi
call fcn.0042c3e2
push str.false
push str.__TOO_BIG__
mov ecx, edi
call fcn.0042c3e2
mov ecx, esi
call fcn.00411f90
mov ecx, esi
call fcn.00412460
push str.OPTION
lea ecx, [esp + 0x3c]
call fcn.00431a55
mov dword [esp + 0x45c], 0xf
mov ebx, 1
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [esp + 0x54]
rep stosd dword es:[edi], eax
mov eax, dword [0x44ed90]
mov dword [esp + 0x1c], eax
push ebx
lea ecx, [esp + 0x20]
push 0x44d194
push ecx
mov byte [esp + 0x468], 0x10
call fcn.0042ca77
add esp, 0xc
lea edx, [esp + 0x1c]
lea eax, [esp + 0x38]
lea ecx, [esp + 0x24]
push edx
push eax
push ecx
call fcn.00431c16
mov eax, dword [esi + 0x13c]
lea edx, [esp + 0x54]
push eax
mov eax, dword [esp + 0x28]
push 0x400
push edx
push 0x452ac0
push eax
push str.Global_Options
mov byte [esp + 0x474], 0x11
call ebp
test eax, eax
jle 0x40eaf8
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00431a55
push 0x44d12c
lea ecx, [esp + 0x2c]
mov byte [esp + 0x460], 0x12
call fcn.0042c6f1
mov edi, eax
cmp edi, 0xffffffff
jle 0x40eabf
lea edx, [esp + 0x2c]
push edi
push edx
lea ecx, [esp + 0x30]
call fcn.0042c657
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x20]
mov byte [esp + 0x45c], 0x13
mov eax, dword [eax - 8]
sub eax, edi
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.0042c5db
push 0x44d180
lea ecx, [esp + 0x24]
mov byte [esp + 0x460], 0x14
call fcn.0042cadd
push 0x44d128
lea ecx, [esp + 0x24]
call fcn.0042ca8a
mov edx, dword [esp + 0x2c]
push str.__SCROLL__
push edx
call fcn.0041c499
add esp, 8
test eax, eax
jne 0x40ea68
mov al, byte [esi + 0xa8]
test al, al
je 0x40ea68
lea eax, [esp + 0x20]
push 0x44d5d0
push eax
call fcn.0042ca77
add esp, 8
mov ecx, dword [esp + 0x2c]
push str.__SYSTEMDETAILS__
push ecx
call fcn.0041c499
add esp, 8
test eax, eax
jne 0x40ea88
mov al, byte [esi + 0x228]
test al, al
je 0x40ea9d
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
push edx
push eax
lea ecx, [esi + 0x144]
call fcn.0042c3e2
lea ecx, [esp + 0x20]
mov byte [esp + 0x45c], 0x13
call fcn.004319e7
lea ecx, [esp + 0x2c]
mov byte [esp + 0x45c], 0x12
call fcn.004319e7
lea ecx, [esp + 0x28]
mov byte [esp + 0x45c], 0x11
call fcn.004319e7
lea ecx, [esp + 0x24]
mov byte [esp + 0x45c], 0x10
call fcn.004319e7
lea ecx, [esp + 0x1c]
mov byte [esp + 0x45c], 0xf
call fcn.004319e7
inc ebx
jmp 0x40e93d
lea ecx, [esp + 0x24]
mov byte [esp + 0x45c], 0x10
call fcn.004319e7
lea ecx, [esp + 0x1c]
mov byte [esp + 0x45c], 0xf
call fcn.004319e7
lea ecx, [esp + 0x38]
mov dword [esp + 0x45c], 0xffffffff
call fcn.004319e7
mov ecx, dword [esp + 0x454]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x450
ret