Function at 0x407f60
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x504
push edi
mov dword [ebp - 0x504], ecx
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x45c], 0
je 0x407f92
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
movsx eax, byte [edx]
test eax, eax
jne 0x407f99
xor eax, eax
jmp 0x40a3b4
push 0x400
call fcn.00420da6
add esp, 4
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x4fc]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x407fc2
xor eax, eax
jmp 0x40a3b4
mov dword [ebp - 0x128], str.General
mov dword [ebp - 0x10], 0x42a244
mov dword [ebp - 0x14], 0x42a248
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
push 0x42a24c
push str.size
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.maximized
mov eax, dword [ebp - 8]
push eax
call fcn.00420120
add esp, 8
test eax, eax
jne 0x40802a
mov ecx, dword [ebp - 0x504]
mov dword [ecx], 1
jmp 0x408059
push str.hide
mov edx, dword [ebp - 8]
push edx
call fcn.00420120
add esp, 8
test eax, eax
jne 0x40804d
mov eax, dword [ebp - 0x504]
mov dword [eax], 0x10
jmp 0x408059
mov ecx, dword [ebp - 0x504]
mov dword [ecx], 2
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
push 0x42a270
push str.gradiant
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.vertical
mov eax, dword [ebp - 8]
push eax
call fcn.00420120
add esp, 8
test eax, eax
jne 0x4080b0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx]
or edx, 4
mov eax, dword [ebp - 0x504]
mov dword [eax], edx
jmp 0x4080c3
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx]
or edx, 8
mov eax, dword [ebp - 0x504]
mov dword [eax], edx
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
push str.DVR_Install
push str.title
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx edx, ax
and edx, 0x3ff
cmp edx, 0x12
jne 0x408192
push 0x42a2a8
mov eax, dword [ebp - 8]
push eax
call fcn.00420d20
add esp, 8
test eax, eax
je 0x40814e
mov ecx, dword [ebp - 8]
add ecx, 5
push ecx
lea edx, [ebp - 0x190]
push edx
call fcn.0041e1b0
add esp, 8
lea eax, [ebp - 0x190]
push eax
push 0x42a2b0
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x408192
push 0x42a2bc
mov edx, dword [ebp - 8]
push edx
call fcn.00420d20
add esp, 8
test eax, eax
je 0x408192
mov eax, dword [ebp - 8]
add eax, 4
push eax
lea ecx, [ebp - 0x190]
push ecx
call fcn.0041e1b0
add esp, 8
lea edx, [ebp - 0x190]
push edx
push 0x42a2c4
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
push 0x42a2cc
push str.tibetcode
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
push str.false
push str.add_folder
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x74], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.subtitle
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x408276
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
push str.DVR_Uninstall
push str.uninstall
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
and ecx, 0x3ff
cmp ecx, 0x12
jne 0x40841a
push 0x42a318
mov edx, dword [ebp - 8]
push edx
call fcn.00420d20
add esp, 8
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 0
je 0x40836d
mov byte [ebp - 0x1c8], 0
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x1c7]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov byte [ebp - 0x1fc], 0
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x1fb]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x194]
mov byte [eax], 0
mov ecx, dword [ebp - 8]
push ecx
lea edx, [ebp - 0x1c8]
push edx
call fcn.0041e1b0
add esp, 8
mov eax, dword [ebp - 0x194]
add eax, 5
push eax
push 0x42a320
lea ecx, [ebp - 0x1fc]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x1fc]
push edx
lea eax, [ebp - 0x1c8]
push eax
push 0x42a32c
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x40841a
push 0x42a334
mov edx, dword [ebp - 8]
push edx
call fcn.00420d20
add esp, 8
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 0
je 0x40841a
mov byte [ebp - 0x230], 0
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x22f]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov byte [ebp - 0x264], 0
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x263]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x194]
mov byte [eax], 0
mov ecx, dword [ebp - 8]
push ecx
lea edx, [ebp - 0x230]
push edx
call fcn.0041e1b0
add esp, 8
mov eax, dword [ebp - 0x194]
add eax, 4
push eax
push 0x42a33c
lea ecx, [ebp - 0x264]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x264]
push edx
lea eax, [ebp - 0x230]
push eax
push 0x42a344
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov edx, dword [ebp - 8]
push edx
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.version2
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40847c
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x24], eax
jmp 0x4084c7
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.version
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x4084c7
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.patch_ver
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x504]
mov byte [ecx + 0x3f4], 0
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x408523
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
add edx, 0x3f4
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.provider_url
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x40856e
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.product_update_url
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x4085b9
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0
push str.hide_bootlogo
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x70], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
push str.008096_000000
push str.bkcolor
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.00420859
add esp, 8
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x504]
mov dword [edx + 4], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 8], 0
cmp dword [ebp - 0x124], 0
je 0x408712
mov ecx, dword [ebp - 0x124]
push ecx
call fcn.0040f4e0
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 4]
shr ecx, 0x10
movzx edx, cl
mov eax, dword [ebp - 0x504]
movzx ecx, word [eax + 4]
sar ecx, 8
movzx eax, cl
shl eax, 8
or edx, eax
mov ecx, dword [ebp - 0x504]
movzx eax, byte [ecx + 4]
shl eax, 0x10
or edx, eax
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x14]
push edx
push 0
call fcn.00420859
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x408712
mov eax, dword [ebp - 0x124]
push eax
call fcn.0040f4e0
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 8]
shr eax, 0x10
movzx ecx, al
mov edx, dword [ebp - 0x504]
movzx eax, word [edx + 8]
sar eax, 8
movzx edx, al
shl edx, 8
or ecx, edx
mov eax, dword [ebp - 0x504]
movzx edx, byte [eax + 8]
shl edx, 0x10
or ecx, edx
mov eax, dword [ebp - 0x504]
mov dword [eax + 8], ecx
push 0x3c
push 0
mov ecx, dword [ebp - 0x504]
add ecx, 0x34
push ecx
call fcn.0041ecb0
add esp, 0xc
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
push str.Arial_24
push str.bkfont
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x34], 0x18
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x44], 0x2bc
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.00420859
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x4087dc
mov ecx, dword [ebp - 0x124]
push ecx
mov edx, dword [ebp - 0x504]
add edx, 0x50
push edx
call fcn.0041e1b0
add esp, 8
mov eax, dword [ebp - 0x14]
push eax
push 0
call fcn.00420859
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x4087dc
mov ecx, dword [ebp - 0x124]
push ecx
call fcn.0042076c
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.watermark
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0xc], 0
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.0041ea1b
add esp, 8
cmp eax, 0xffffffff
je 0x40883d
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.header
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x10], 0
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.0041ea1b
add esp, 8
cmp eax, 0xffffffff
je 0x40889e
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push 0x42a3e0
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x28], 0
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.0041ea1b
add esp, 8
cmp eax, 0xffffffff
je 0x4088ff
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.readme
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x464], 0
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.0041ea1b
add esp, 8
cmp eax, 0xffffffff
je 0x408966
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x464], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0
push 0x42a3f0
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4dc], eax
mov edx, dword [ebp - 0x504]
mov byte [edx + 0x390], 0
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x4dc], 0
je 0x408a65
mov ecx, dword [ebp - 0x504]
cmp dword [ecx + 0x14], 0
je 0x408a16
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x14]
push eax
lea ecx, [ebp - 0x368]
push ecx
call fcn.0041e1b0
add esp, 8
push str.__PATCH_
lea edx, [ebp - 0x368]
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x14]
push ecx
call fcn.0041f074
add esp, 4
lea edx, [ebp - 0x368]
push edx
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.patch_file
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x408a65
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x504]
add ecx, 0x390
push ecx
call fcn.0041e1b0
add esp, 8
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x474]
push edx
push str.OEM_ID
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x474], eax
mov dword [ebp - 0x128], 0x42a418
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
push str.C:dvr
push str.installpath
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
and eax, 0x3ff
cmp eax, 0x12
jne 0x408b75
push 0x42a438
mov ecx, dword [ebp - 8]
push ecx
call fcn.00420d20
add esp, 8
test eax, eax
je 0x408b31
mov edx, dword [ebp - 8]
add edx, 5
push edx
lea eax, [ebp - 0x3d0]
push eax
call fcn.0041e1b0
add esp, 8
lea ecx, [ebp - 0x3d0]
push ecx
push 0x42a440
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x408b75
push 0x42a44c
mov eax, dword [ebp - 8]
push eax
call fcn.00420d20
add esp, 8
test eax, eax
je 0x408b75
mov ecx, dword [ebp - 8]
add ecx, 4
push ecx
lea edx, [ebp - 0x3d0]
push edx
call fcn.0041e1b0
add esp, 8
lea eax, [ebp - 0x3d0]
push eax
push 0x42a454
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x474], 1
jne 0x408bc2
push str.Zone_DefenseZoneDefender_MkI
mov eax, dword [ebp - 0x504]
add eax, 0x188
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
mov ecx, dword [ebp - 0x504]
add ecx, 0x188
push ecx
mov edx, dword [ebp - 0x504]
add edx, 0x84
push edx
call fcn.0041e1b0
add esp, 8
jmp 0x408bf3
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x504]
add ecx, 0x188
push ecx
call fcn.0041e1b0
add esp, 8
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x504]
add eax, 0x84
push eax
call fcn.0041e1b0
add esp, 8
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
add edx, 0x28c
push edx
call fcn.0041e1b0
add esp, 8
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x4dc], 0
je 0x408c67
mov ecx, dword [ebp - 0x504]
movsx edx, byte [ecx + 0x390]
test edx, edx
je 0x408c67
push 0x42a47c
mov eax, dword [ebp - 0x504]
add eax, 0x28c
push eax
call fcn.0041e1c0
add esp, 8
mov ecx, dword [ebp - 0x504]
add ecx, 0x390
push ecx
mov edx, dword [ebp - 0x504]
add edx, 0x28c
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
push 0x42a480
push 0x42a484
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
and ecx, 0x3ff
cmp ecx, 0x12
jne 0x408d36
push 0x42a48c
mov edx, dword [ebp - 8]
push edx
call fcn.00420d20
add esp, 8
test eax, eax
je 0x408cf2
mov eax, dword [ebp - 8]
add eax, 5
push eax
lea ecx, [ebp - 0x438]
push ecx
call fcn.0041e1b0
add esp, 8
lea edx, [ebp - 0x438]
push edx
push 0x42a494
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x408d36
push 0x42a4a0
mov ecx, dword [ebp - 8]
push ecx
call fcn.00420d20
add esp, 8
test eax, eax
je 0x408d36
mov edx, dword [ebp - 8]
add edx, 4
push edx
lea eax, [ebp - 0x438]
push eax
call fcn.0041e1b0
add esp, 8
lea ecx, [ebp - 0x438]
push ecx
push 0x42a4a8
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x42a4b0
mov eax, dword [ebp - 8]
push eax
call fcn.00420d20
add esp, 8
mov dword [ebp - 0x43c], eax
cmp dword [ebp - 0x43c], 0
je 0x408d6e
mov ecx, dword [ebp - 0x43c]
sub ecx, 1
mov dword [ebp - 0x43c], ecx
mov edx, dword [ebp - 0x43c]
mov byte [edx], 0
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x458], eax
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x478], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x78], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.drivers
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x120]
push eax
call fcn.0040f660
add esp, 0xc
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0
jmp 0x408e26
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x124]
push edx
call fcn.0041e990
add esp, 4
mov ecx, dword [ebp - 0x124]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jge 0x40902e
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x440], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x42a4c0
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x408e98
mov edx, dword [ebp - 8]
push edx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push 0x42a4c8
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x408ee0
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x448], eax
cmp dword [ebp - 0x444], 0
je 0x408ff0
cmp dword [ebp - 0x448], 0
je 0x408ff0
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x78], 0
jne 0x408f1b
push 0x10
call fcn.0041f062
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x78], eax
jmp 0x408f49
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x478]
add eax, 1
shl eax, 4
push eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x78]
push edx
call fcn.00420b6d
add esp, 8
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x78], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x78], 0
je 0x408ff0
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x478]
shl ecx, 4
mov edx, dword [ebp - 0x504]
add ecx, dword [edx + 0x78]
mov dword [ebp - 0x44c], ecx
mov eax, dword [ebp - 0x44c]
mov dword [eax], 0
mov ecx, dword [ebp - 0x44c]
mov edx, dword [ebp - 0x444]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x44c]
mov ecx, dword [ebp - 0x448]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0
push 0x42a4cc
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x44c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x478]
add ecx, 1
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x478], ecx
mov dword [ebp - 0x440], 1
cmp dword [ebp - 0x440], 0
jne 0x409029
cmp dword [ebp - 0x444], 0
je 0x409011
mov eax, dword [ebp - 0x444]
push eax
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x448], 0
je 0x409029
mov ecx, dword [ebp - 0x448]
push ecx
call fcn.0041f074
add esp, 4
jmp 0x408dfe
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x47c], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x7c], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x42a4d4
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x120]
push eax
call fcn.0040f660
add esp, 0xc
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0
jmp 0x4090ce
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x124]
push edx
call fcn.0041e990
add esp, 4
mov ecx, dword [ebp - 0x124]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jge 0x409656
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x454], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x42a4dc
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4091fa
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx edx, ax
and edx, 0x3ff
cmp edx, 0x12
jne 0x4091e8
push str.JANUS
mov eax, dword [ebp - 8]
push eax
call fcn.00420d20
add esp, 8
test eax, eax
je 0x4091a4
mov ecx, dword [ebp - 8]
add ecx, 5
push ecx
lea edx, [ebp - 0x4c8]
push edx
call fcn.0041e1b0
add esp, 8
lea eax, [ebp - 0x4c8]
push eax
push 0x42a4ec
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4091e8
push str.GNET
mov edx, dword [ebp - 8]
push edx
call fcn.00420d20
add esp, 8
test eax, eax
je 0x4091e8
mov eax, dword [ebp - 8]
add eax, 4
push eax
lea ecx, [ebp - 0x4c8]
push ecx
call fcn.0041e1b0
add esp, 8
lea edx, [ebp - 0x4c8]
push edx
push 0x42a500
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x458], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a508
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x409242
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x45c], eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0x42a510
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40928a
mov edx, dword [ebp - 8]
push edx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x450], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push 0x42a518
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x4092d2
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x460], eax
cmp dword [ebp - 0x458], 0
je 0x409600
cmp dword [ebp - 0x45c], 0
je 0x409600
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x7c], 0
jne 0x40930d
push 0x1c
call fcn.0041f062
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x7c], eax
jmp 0x40933b
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x47c]
add eax, 1
imul eax, eax, 0x1c
push eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x7c]
push edx
call fcn.00420b6d
add esp, 8
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x7c], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x7c], 0
je 0x409600
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x47c]
imul ecx, ecx, 0x1c
mov edx, dword [ebp - 0x504]
add ecx, dword [edx + 0x7c]
mov dword [ebp - 0x4d0], ecx
mov eax, dword [ebp - 0x4d0]
mov dword [eax], 1
mov ecx, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x458]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x4d0]
mov ecx, dword [ebp - 0x45c]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x4d0]
mov eax, dword [ebp - 0x450]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x460]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0
push 0x42a520
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x4d0]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
push 0x42a527
push 0x42a528
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x4d0]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.00420859
add esp, 8
mov dword [ebp - 0x4cc], eax
cmp dword [ebp - 0x4cc], 0
je 0x4094dc
push 0x42a534
mov eax, dword [ebp - 0x4cc]
push eax
call fcn.0042828e
add esp, 8
test eax, eax
jne 0x409467
mov ecx, dword [ebp - 0x4d0]
mov edx, dword [ecx + 0x18]
or edx, 2
mov eax, dword [ebp - 0x4d0]
mov dword [eax + 0x18], edx
jmp 0x4094c3
push 0x42a53c
mov ecx, dword [ebp - 0x4cc]
push ecx
call fcn.0042828e
add esp, 8
test eax, eax
jne 0x409496
mov edx, dword [ebp - 0x4d0]
mov eax, dword [edx + 0x18]
or eax, 4
mov ecx, dword [ebp - 0x4d0]
mov dword [ecx + 0x18], eax
jmp 0x4094c3
push 0x42a544
mov edx, dword [ebp - 0x4cc]
push edx
call fcn.0042828e
add esp, 8
test eax, eax
jne 0x4094c3
mov eax, dword [ebp - 0x4d0]
mov ecx, dword [eax + 0x18]
or ecx, 1
mov edx, dword [ebp - 0x4d0]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0x14]
push eax
push 0
call fcn.00420859
add esp, 8
mov dword [ebp - 0x4cc], eax
jmp 0x40942b
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.postrun
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4095db
mov edx, dword [ebp - 8]
push edx
call fcn.0041e990
add esp, 4
add eax, 0xa
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x490], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x490], 0
je 0x409572
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x490]
push eax
call fcn.0040f660
add esp, 0xc
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4a0], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x4a0], 0
jg 0x4095c3
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x490], 0
je 0x4095b3
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x490]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x490], 0
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4a0], 0
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x47c]
mov dword [edx + 0x4a0], ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x47c]
add eax, 1
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x47c], eax
mov dword [ebp - 0x454], 1
cmp dword [ebp - 0x454], 0
jne 0x409651
cmp dword [ebp - 0x458], 0
je 0x409621
mov edx, dword [ebp - 0x458]
push edx
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x45c], 0
je 0x409639
mov eax, dword [ebp - 0x45c]
push eax
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x450], 0
je 0x409651
mov ecx, dword [ebp - 0x450]
push ecx
call fcn.0041f074
add esp, 4
jmp 0x4090a6
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x480], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x80], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.plugins
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x120]
push eax
call fcn.0040f660
add esp, 0xc
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0
jmp 0x4096f9
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x124]
push edx
call fcn.0041e990
add esp, 4
mov ecx, dword [ebp - 0x124]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jge 0x409c46
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4e8], 0
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4ec], 0
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d4], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.name
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40979d
mov edx, dword [ebp - 8]
push edx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x4e0], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push 0x42a564
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x4097e5
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x4e8], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.icon
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40982d
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.param
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x409875
mov edx, dword [ebp - 8]
push edx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x4ec], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0x400
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x10]
push eax
push str.type
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
test eax, eax
je 0x4098bd
mov ecx, dword [ebp - 8]
push ecx
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x4f0], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.class
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x409905
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov dword [ebp - 0x4e4], eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0
push str.property
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x4d4], eax
cmp dword [ebp - 0x4e0], 0
je 0x409bc0
cmp dword [ebp - 0x4e8], 0
je 0x409bc0
cmp dword [ebp - 0x4f0], 0
je 0x409bc0
cmp dword [ebp - 0x4e4], 0
je 0x409bc0
mov ecx, dword [ebp - 0x504]
cmp dword [ecx + 0x80], 0
jne 0x409987
push 0x28
call fcn.0041f062
add esp, 4
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x80], eax
jmp 0x4099bb
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x480]
add ecx, 1
imul ecx, ecx, 0x28
push ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x80]
push eax
call fcn.00420b6d
add esp, 8
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x80], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x80], 0
je 0x409bc0
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x480]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x504]
add ecx, dword [edx + 0x80]
mov dword [ebp - 0x4f8], ecx
mov eax, dword [ebp - 0x4f8]
mov dword [eax], 2
mov ecx, dword [ebp - 0x4f8]
mov edx, dword [ebp - 0x4e0]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x4f8]
mov ecx, dword [ebp - 0x4e8]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0x4d8]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x4f8]
mov edx, dword [ebp - 0x4ec]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x4f8]
mov ecx, dword [ebp - 0x4f0]
mov dword [eax + 0x1c], ecx
mov edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0x4e4]
mov dword [edx + 0x20], eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0
push str.select
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x4f8]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0x4d4]
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
push 0x42a59f
push str.shortcut
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 8]
push edx
call fcn.004287d4
add esp, 4
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.00420859
add esp, 8
mov dword [ebp - 0x4f4], eax
mov edx, dword [ebp - 0x4f8]
mov dword [edx + 0x18], 0
cmp dword [ebp - 0x4f4], 0
je 0x409b9b
push str.desktop
mov eax, dword [ebp - 0x4f4]
push eax
call fcn.0042828e
add esp, 8
test eax, eax
jne 0x409b26
mov ecx, dword [ebp - 0x4f8]
mov edx, dword [ecx + 0x18]
or edx, 2
mov eax, dword [ebp - 0x4f8]
mov dword [eax + 0x18], edx
jmp 0x409b82
push str.startup
mov ecx, dword [ebp - 0x4f4]
push ecx
call fcn.0042828e
add esp, 8
test eax, eax
jne 0x409b55
mov edx, dword [ebp - 0x4f8]
mov eax, dword [edx + 0x18]
or eax, 4
mov ecx, dword [ebp - 0x4f8]
mov dword [ecx + 0x18], eax
jmp 0x409b82
push 0x42a5bc
mov edx, dword [ebp - 0x4f4]
push edx
call fcn.0042828e
add esp, 8
test eax, eax
jne 0x409b82
mov eax, dword [ebp - 0x4f8]
mov ecx, dword [eax + 0x18]
or ecx, 1
mov edx, dword [ebp - 0x4f8]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0x14]
push eax
push 0
call fcn.00420859
add esp, 8
mov dword [ebp - 0x4f4], eax
jmp 0x409aea
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x480]
add edx, 1
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x480], edx
mov dword [ebp - 0x4dc], 1
cmp dword [ebp - 0x4dc], 0
jne 0x409c41
cmp dword [ebp - 0x4e0], 0
je 0x409be1
mov ecx, dword [ebp - 0x4e0]
push ecx
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x4e8], 0
je 0x409bf9
mov edx, dword [ebp - 0x4e8]
push edx
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x4d8], 0
je 0x409c11
mov eax, dword [ebp - 0x4d8]
push eax
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x4f0], 0
je 0x409c29
mov ecx, dword [ebp - 0x4f0]
push ecx
call fcn.0041f074
add esp, 4
cmp dword [ebp - 0x4e4], 0
je 0x409c41
mov edx, dword [ebp - 0x4e4]
push edx
call fcn.0041f074
add esp, 4
jmp 0x4096d1
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x49c], 0
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x48c], 0
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.prerun
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x409d4d
mov eax, dword [ebp - 8]
push eax
call fcn.0041e990
add esp, 4
add eax, 0xa
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x48c], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x48c], 0
je 0x409cfc
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x48c]
push eax
call fcn.0040f660
add esp, 0xc
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x49c], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x49c], 0
jg 0x409d4d
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x48c], 0
je 0x409d3d
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x48c]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x48c], 0
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x49c], 0
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x4a4], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x494], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.infinstall
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x409e54
mov edx, dword [ebp - 8]
push edx
call fcn.0041e990
add esp, 4
add eax, 0xa
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x494], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x494], 0
je 0x409e03
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x494]
push eax
call fcn.0040f660
add esp, 0xc
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4a4], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x4a4], 0
jg 0x409e54
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x494], 0
je 0x409e44
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x494]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x494], 0
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4a4], 0
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x4a8], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x498], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.infinstallex
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x409f5b
mov edx, dword [ebp - 8]
push edx
call fcn.0041e990
add esp, 4
add eax, 0xa
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x498], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x498], 0
je 0x409f0a
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x498]
push eax
call fcn.0040f660
add esp, 0xc
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4a8], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x4a8], 0
jg 0x409f5b
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x498], 0
je 0x409f4b
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x498]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x498], 0
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4a8], 0
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x484], 0
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x488], 0
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x45c]
push edx
push 0x400
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push str.shutdown_process
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40a062
mov edx, dword [ebp - 8]
push edx
call fcn.0041e990
add esp, 4
add eax, 0xa
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x488], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x488], 0
je 0x40a011
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x488]
push eax
call fcn.0040f660
add esp, 0xc
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x484], eax
mov edx, dword [ebp - 0x504]
cmp dword [edx + 0x484], 0
jg 0x40a062
mov eax, dword [ebp - 0x504]
cmp dword [eax + 0x488], 0
je 0x40a052
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx + 0x488]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x504]
mov dword [eax + 0x488], 0
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x484], 0
mov dword [ebp - 0x128], str.viewer
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a604
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a0ba
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4ac], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a608
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a108
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4b0], eax
mov dword [ebp - 0x128], str.management
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a61c
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a160
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4b4], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a630
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a1ae
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4b8], eax
mov dword [ebp - 0x128], 0x42a644
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a64c
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a206
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4bc], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0xffffffffffffffff
push 0x42a658
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x4c0], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0
push 0x42a660
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4c4], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0
push 0x42a66c
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x4c8], eax
mov eax, dword [ebp - 0x504]
mov ecx, dword [eax + 0x45c]
push ecx
push 0xffffffffffffffff
push 0x42a674
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4d0], eax
mov dword [ebp - 0x128], 0x42a684
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x42a68c
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a312
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4cc], eax
mov dword [ebp - 0x128], str.embed
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0x400
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str.file
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40a36a
mov eax, dword [ebp - 8]
push eax
call fcn.0042851d
add esp, 4
mov ecx, dword [ebp - 0x504]
mov dword [ecx + 0x4d4], eax
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x45c]
push eax
push 0
push str.policy
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x504]
mov dword [edx + 0x4d8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x500], eax
mov ecx, dword [ebp - 0x500]
push ecx
call fcn.00420b68
add esp, 4
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret