Function at 0x405ba0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42cc29
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x298
mov eax, dword [0x438ca8]
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], eax
lea ecx, [esi + 0x2f0]
mov byte [ebp - 4], 1
push ecx
lea ecx, [ebp - 0x14]
call fcn.00421152
mov eax, dword [0x438ca8]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x40], eax
lea edx, [esi + 0x1f0]
lea ecx, [ebp - 0x1c]
push edx
mov byte [ebp - 4], 8
call fcn.0042126d
push 0
lea ecx, [ebp - 0xa4]
call fcn.004089c0
push 0x67
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 9
call fcn.00422b5b
push 0x6f
lea ecx, [ebp - 0x3c]
call fcn.00422b5b
push 0x70
lea ecx, [ebp - 0x20]
call fcn.00422b5b
mov ecx, dword [esi + 0xd0]
lea eax, [ebp - 0x2a4]
push 0xa
push eax
push ecx
call fcn.00411cfc
mov eax, dword [esi + 0xd0]
add esp, 0xc
dec eax
cmp eax, 7
ja case.default.0x405c68
jmp dword [eax*4 + 0x4066d8]
push 0x83
jmp 0x405cac
push 0x84
jmp 0x405cac
push 0x85
jmp 0x405cac
push 0x86
jmp 0x405cac
push 0x87
jmp 0x405cac
push 0x88
jmp 0x405cac
push 0x89
jmp 0x405cac
push 0x8a
jmp 0x405cac
push 0x82
lea ecx, [ebp - 0x18]
call fcn.00422b5b
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x34]
push eax
push ecx
call fcn.00421313
lea edx, [ebp - 0x20]
mov byte [ebp - 4], 0xa
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00421313
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xb
call fcn.0042121d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xa
call fcn.004210e4
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 9
call fcn.004210e4
mov esi, dword [ebp - 0x28]
mov ecx, dword [esi + 0xcc]
mov eax, dword [esi + 0xd0]
cmp ecx, eax
je 0x406347
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x44]
push edx
call fcn.0042121d
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x48]
push eax
call fcn.0042121d
lea ecx, [ebp - 0xa4]
call fcn.0042276f
cmp eax, 2
je 0x406347
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0042121d
lea edx, [ebp - 0x34]
push 1
push edx
lea ecx, [ebp - 0x1c]
call fcn.0041ffeb
mov eax, dword [eax]
push 0x4380d8
push eax
call fcn.0041179e
add esp, 8
lea ecx, [ebp - 0x34]
test eax, eax
setne bl
call fcn.004210e4
test bl, bl
je 0x405da5
lea eax, [ebp - 0x1c]
push 0x4380d8
lea ecx, [ebp - 0x2c]
push eax
push ecx
call fcn.00421379
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xc
call fcn.0042121d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call fcn.004210e4
lea edx, [ebp - 0x1c]
push str.SETUP.LST
lea eax, [ebp - 0x30]
push edx
push eax
call fcn.00421379
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042121d
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 9
call fcn.004210e4
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x1a4]
push ecx
push 0xff
push edx
push 0x43d5f0
push str.NUMBER
push str.CDROM
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov al, byte [ebp - 0x1a4]
test al, al
je 0x406328
lea eax, [ebp - 0x1a4]
push eax
call fcn.0041fe02
add esp, 4
mov esi, str.CD.1
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405e47
test cl, cl
je 0x405e43
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405e47
add eax, 2
add esi, 2
test cl, cl
jne 0x405e1f
xor eax, eax
jmp 0x405e4c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405e55
mov edi, 1
mov esi, str.CD.2
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405e88
test cl, cl
je 0x405e84
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405e88
add eax, 2
add esi, 2
test cl, cl
jne 0x405e60
xor eax, eax
jmp 0x405e8d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405e96
mov edi, 2
mov esi, str.CD.3
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405ec9
test cl, cl
je 0x405ec5
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405ec9
add eax, 2
add esi, 2
test cl, cl
jne 0x405ea1
xor eax, eax
jmp 0x405ece
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405ed7
mov edi, 3
mov esi, str.CD.4
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405f0a
test cl, cl
je 0x405f06
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405f0a
add eax, 2
add esi, 2
test cl, cl
jne 0x405ee2
xor eax, eax
jmp 0x405f0f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405f18
mov edi, 4
mov esi, str.CD.5
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405f4b
test cl, cl
je 0x405f47
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405f4b
add eax, 2
add esi, 2
test cl, cl
jne 0x405f23
xor eax, eax
jmp 0x405f50
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405f59
mov edi, 5
mov esi, str.CD.6
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405f8c
test cl, cl
je 0x405f88
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405f8c
add eax, 2
add esi, 2
test cl, cl
jne 0x405f64
xor eax, eax
jmp 0x405f91
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405f9a
mov edi, 6
mov esi, str.CD.7
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x405fcd
test cl, cl
je 0x405fc9
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x405fcd
add eax, 2
add esi, 2
test cl, cl
jne 0x405fa5
xor eax, eax
jmp 0x405fd2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405fdb
mov edi, 7
mov esi, str.CD.8
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40600e
test cl, cl
je 0x40600a
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40600e
add eax, 2
add esi, 2
test cl, cl
jne 0x405fe6
xor eax, eax
jmp 0x406013
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40601c
mov edi, 8
mov esi, str.CD.9
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40604f
test cl, cl
je 0x40604b
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40604f
add eax, 2
add esi, 2
test cl, cl
jne 0x406027
xor eax, eax
jmp 0x406054
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40605d
mov edi, 9
mov esi, str.CD.10
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406090
test cl, cl
je 0x40608c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406090
add eax, 2
add esi, 2
test cl, cl
jne 0x406068
xor eax, eax
jmp 0x406095
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40609e
mov edi, 0xa
mov esi, str.CD.11
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4060d1
test cl, cl
je 0x4060cd
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4060d1
add eax, 2
add esi, 2
test cl, cl
jne 0x4060a9
xor eax, eax
jmp 0x4060d6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4060df
mov edi, 0xb
mov esi, str.CD.12
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406112
test cl, cl
je 0x40610e
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406112
add eax, 2
add esi, 2
test cl, cl
jne 0x4060ea
xor eax, eax
jmp 0x406117
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406120
mov edi, 0xc
mov esi, str.CD.13
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406153
test cl, cl
je 0x40614f
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406153
add eax, 2
add esi, 2
test cl, cl
jne 0x40612b
xor eax, eax
jmp 0x406158
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406161
mov edi, 0xd
mov esi, str.CD.14
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406194
test cl, cl
je 0x406190
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406194
add eax, 2
add esi, 2
test cl, cl
jne 0x40616c
xor eax, eax
jmp 0x406199
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4061a2
mov edi, 0xe
mov esi, str.CD.15
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4061d5
test cl, cl
je 0x4061d1
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4061d5
add eax, 2
add esi, 2
test cl, cl
jne 0x4061ad
xor eax, eax
jmp 0x4061da
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4061e3
mov edi, 0xf
mov esi, str.CD.16
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406216
test cl, cl
je 0x406212
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406216
add eax, 2
add esi, 2
test cl, cl
jne 0x4061ee
xor eax, eax
jmp 0x40621b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406224
mov edi, 0x10
mov esi, str.CD.17
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406257
test cl, cl
je 0x406253
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406257
add eax, 2
add esi, 2
test cl, cl
jne 0x40622f
xor eax, eax
jmp 0x40625c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406265
mov edi, 0x11
mov esi, str.CD.18
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406298
test cl, cl
je 0x406294
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406298
add eax, 2
add esi, 2
test cl, cl
jne 0x406270
xor eax, eax
jmp 0x40629d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4062a6
mov edi, 0x12
mov esi, str.CD.19
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4062d9
test cl, cl
je 0x4062d5
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4062d9
add eax, 2
add esi, 2
test cl, cl
jne 0x4062b1
xor eax, eax
jmp 0x4062de
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4062e7
mov edi, 0x13
mov esi, str.CD.20
lea eax, [ebp - 0x1a4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40631a
test cl, cl
je 0x406316
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40631a
add eax, 2
add esi, 2
test cl, cl
jne 0x4062f2
xor eax, eax
jmp 0x40631f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406328
mov edi, 0x14
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xd0]
cmp edi, eax
jne 0x405cfc
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0xcc], eax
jmp 0x405cfc
lea edx, [ebp - 0x30]
push 1
push edx
lea ecx, [ebp - 0x14]
call fcn.0041ffeb
mov eax, dword [eax]
push 0x4380d8
push eax
call fcn.0041179e
add esp, 8
lea ecx, [ebp - 0x30]
test eax, eax
setne bl
call fcn.004210e4
test bl, bl
je 0x406383
push 0x4380d8
lea ecx, [ebp - 0x14]
call fcn.0042144c
lea eax, [esi + 0x3f0]
lea ecx, [ebp - 0x2a4]
push eax
push 0xff
push ecx
push 0x43d5f0
push str.Shell
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov al, byte [ebp - 0x2a4]
test al, al
je 0x406411
lea edx, [ebp - 0x2a4]
push edx
call fcn.0041fe02
mov al, byte [ebp - 0x2a4]
add esp, 4
cmp al, 0x2e
jne 0x4063fd
mov al, byte [ebp - 0x2a3]
cmp al, 0x5c
jne 0x4063e4
lea eax, [ebp - 0x2a2]
push eax
jmp 0x4064c1
cmp al, 0x2e
jne 0x4063fd
cmp byte [ebp - 0x2a2], 0x5c
jne 0x4063fd
lea ecx, [ebp - 0x2a1]
push ecx
jmp 0x4064c1
lea edx, [ebp - 0x2a4]
lea ecx, [ebp - 0x14]
push edx
call fcn.0042126d
jmp 0x4064c9
mov eax, dword [esi + 0x9d4]
test eax, eax
je 0x406428
push str.KDSERVERSETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9d0]
test eax, eax
je 0x40643f
push str.KDMTSSETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9cc]
test eax, eax
je 0x406456
push str.KDPRODUCTSETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9d8]
test eax, eax
je 0x40646d
push str.KDWEBSETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9e8]
test eax, eax
je 0x406484
push str.KDWAREHOUSESETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9e4]
test eax, eax
je 0x40649b
push str.KDCOMSHOPSETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9e0]
test eax, eax
je 0x4064b2
push str.KDSDKSETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [esi + 0x9dc]
test eax, eax
je 0x4064c9
push str.KDWEBSERVICESETUPSETUP.EXE
lea ecx, [ebp - 0x14]
call fcn.0042144c
mov eax, dword [ebp - 0x14]
mov ecx, esi
push eax
call fcn.00403eb0
test eax, eax
je 0x40658a
mov eax, dword [ebp - 0x14]
push 0
push eax
push eax
push 0
call fcn.00411ce6
add esp, 0x10
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xf
call fcn.004210e4
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xe
call fcn.004210e4
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 8
call fcn.004223b0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 7
call fcn.004210e4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.004210e4
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 5
call fcn.004210e4
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004210e4
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.004210e4
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
call fcn.004210e4
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.004210e4
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.004210e4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x77
lea ecx, [ebp - 0x20]
call fcn.00422b5b
push 0x78
lea ecx, [ebp - 0x24]
call fcn.00422b5b
lea ecx, [ebp - 0x20]
push 0x438a84
lea edx, [ebp - 0x28]
push ecx
push edx
call fcn.00421379
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x2c]
push ecx
push eax
push edx
mov byte [ebp - 4], 0x10
call fcn.00421313
push str.____r_n_r_n
push eax
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x11
push eax
call fcn.00421379
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x30]
push ecx
push eax
push edx
mov byte [ebp - 4], 0x12
call fcn.00421313
mov ecx, dword [ebp - 0x38]
mov eax, dword [eax]
push 0x30
push ecx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x30]
call fcn.004210e4
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x11
call fcn.004210e4
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x10
call fcn.004210e4
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.004210e4
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x14
call fcn.004210e4
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.004210e4
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 8
call fcn.004223b0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 7
call fcn.004210e4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.004210e4
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 5
call fcn.004210e4
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004210e4
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.004210e4
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
call fcn.004210e4
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.004210e4
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.004210e4
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret