Function at 0x401b3f
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d7b6d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c8
mov dword [ebp - 0x1d4], ecx
mov ecx, dword [ebp - 0x1d4]
call fcn.00404630
mov dword [ebp - 0x1cc], eax
lea ecx, [ebp - 0x38]
call fcn.004d231b
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1c0]
call fcn.004d231b
mov byte [ebp - 4], 1
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x38]
call fcn.00404450
mov ecx, dword [ebp - 0x1cc]
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.00404450
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x1964]
push ecx
lea ecx, [ebp - 0x38]
call fcn.004044e0
push 1
lea ecx, [ebp - 0x1c0]
call fcn.004d25db
lea ecx, [ebp - 0x1a0]
call fcn.00404130
mov byte [ebp - 4], 2
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x14144
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00404280
test eax, eax
je 0x401c28
lea ecx, [ebp - 0x1a0]
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.004d2566
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x98]
push edx
lea ecx, [ebp - 0x1a0]
call fcn.004042a0
push 0
lea ecx, [ebp - 0x1c0]
call fcn.004d2609
mov eax, dword [ebp - 0x1d4]
cmp dword [eax + 0x70], 0
je 0x401c63
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x70]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ecx + 0x70ddc]
sub ecx, dword [eax + 0x70dd4]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70dd8]
sub eax, dword [edx + 0x70dd0]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ecx, dword [ebp - 0x1d4]
mov dword [ecx + 0x70], eax
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x70]
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004044e0
push 0xcc0020
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70dd4]
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70dd0]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70ddc]
sub eax, dword [edx + 0x70dd4]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [edx + 0x70dd8]
sub edx, dword [ecx + 0x70dd0]
add edx, 1
push edx
push 0
push 0
lea ecx, [ebp - 0x1c0]
call fcn.00404520
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x70]
push ecx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0xd8
call fcn.00404790
push 0
mov ecx, dword [ebp - 0x1d4]
add ecx, 0xd8
call fcn.00404680
push 0xcc0020
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x70dd4]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x70dd0]
push ecx
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ecx + 0x70ddc]
sub ecx, dword [eax + 0x70dd4]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70dd8]
sub eax, dword [edx + 0x70dd0]
add eax, 1
push eax
push 0
push 0
lea ecx, [ebp - 0x1c0]
call fcn.00404520
push 0xcc0020
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70df4]
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70df0]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70e0c]
sub eax, dword [edx + 0x70e04]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [edx + 0x70e08]
sub edx, dword [ecx + 0x70e00]
add edx, 1
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ecx + 0x70e24]
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ecx + 0x70e20]
push edx
lea ecx, [ebp - 0x1c0]
call fcn.00404520
lea ecx, [ebp - 0x20]
call fcn.00404180
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ecx + 0x70e44]
add edx, 0x14
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ecx + 0x70e40]
sub edx, 0xa
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x1c]
add eax, 0x5a
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x20]
add eax, dword [edx + 0x70e38]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
sub eax, dword [edx + 0x70e30]
add eax, 0xa
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0xcb64
push ecx
lea edx, [ebp - 0x198]
push edx
call fcn.004ba79a
add esp, 8
push 0x10
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x198]
push ecx
call fcn.004ba753
add esp, 4
push eax
lea edx, [ebp - 0x198]
push edx
lea ecx, [ebp - 0x1c0]
call fcn.00404590
mov dword [ebp - 0x1c8], 5
mov dword [ebp - 0x1c4], 0xf
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ecx + 0x70e68]
sub ecx, dword [eax + 0x70e60]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70e6c]
sub eax, dword [edx + 0x70e64]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a4], 0
cmp dword [ebp - 0x1a4], 4
jae 0x40281c
push 2
mov ecx, dword [ebp - 0x1d4]
mov ecx, dword [ecx + 0x5c]
add ecx, 0x141fc
call fcn.004829b9
cmp dword [ebp - 0x1b0], eax
jb 0x401ff4
jmp 0x40281c
mov dword [ebp - 0x1ac], 0
cmp dword [ebp - 0x1ac], 2
jae 0x402808
push 2
mov edx, dword [ebp - 0x1d4]
mov ecx, dword [edx + 0x5c]
add ecx, 0x141fc
call fcn.004829b9
cmp dword [ebp - 0x1b0], eax
jb 0x40202e
jmp 0x402808
mov eax, dword [ebp - 0x1b0]
push eax
push 2
mov ecx, dword [ebp - 0x1d4]
mov ecx, dword [ecx + 0x5c]
add ecx, 0x141fc
call fcn.004829d6
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 9
jne 0x402154
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fdb4], 0
je 0x40213b
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fdb8], 0
je 0x40213b
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fda8], 1
jne 0x40213b
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fdbc], 0
jne 0x4020f7
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
add edx, 0x703f0
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x2820
push ecx
push 0x80
lea edx, [ebp - 0x198]
push edx
push 0x4e8bd4
push 0x4e8bec
push 0x4e8c1c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x402139
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x703b0
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x2820
push eax
push 0x80
lea ecx, [ebp - 0x198]
push ecx
push 0x4e8c30
push 0x4e8c58
push 0x4e8c98
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x40214f
mov edx, dword [ebp - 0x1b0]
add edx, 1
mov dword [ebp - 0x1b0], edx
jmp 0x401ffe
jmp 0x402470
cmp dword [ebp - 0x1d0], 6
jne 0x4021a4
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x70b90
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x2820
push eax
push 0x80
lea ecx, [ebp - 0x198]
push ecx
push str.CD_In
push str.middle_jack_cd_in
push 0x4e8cdc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x402470
cmp dword [ebp - 0x1d0], 8
jne 0x402244
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fddc], 0
je 0x40222b
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fde0], 0
je 0x40222b
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fdd0], 2
jne 0x40222b
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x703d0
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
add edx, 0x2820
push edx
push 0x80
lea eax, [ebp - 0x198]
push eax
push 0x4e8cf0
push 0x4e8d00
push 0x4e8d28
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x40223f
mov ecx, dword [ebp - 0x1b0]
add ecx, 1
mov dword [ebp - 0x1b0], ecx
jmp 0x401ffe
jmp 0x402470
cmp dword [ebp - 0x1d0], 7
jne 0x40242e
mov dword [ebp - 0x1a8], 1
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe54], 0
je 0x402291
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe58], 0
je 0x402291
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe48], 5
je 0x4022e9
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x928], 3
jne 0x402418
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe2c], 0
je 0x402418
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe30], 0
je 0x402418
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe20], 5
jne 0x402418
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe54], 0
je 0x402331
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe58], 0
je 0x402331
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe48], 5
jne 0x402331
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe5c], 0
je 0x40238f
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x928], 3
jne 0x4023d4
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe2c], 0
je 0x4023d4
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe30], 0
je 0x4023d4
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe20], 5
jne 0x4023d4
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe34], 0
jne 0x4023d4
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
add edx, 0x70410
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x2820
push ecx
push 0x80
lea edx, [ebp - 0x198]
push edx
push 0x4e8d3c
push 0x4e8d60
push 0x4e8d8c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x402416
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x703b0
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x2820
push eax
push 0x80
lea ecx, [ebp - 0x198]
push ecx
push 0x4e8da0
push 0x4e8dc8
push 0x4e8e08
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x40242c
mov edx, dword [ebp - 0x1b0]
add edx, 1
mov dword [ebp - 0x1b0], edx
jmp 0x401ffe
jmp 0x402470
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x70bb0
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x2820
push eax
push 0x80
lea ecx, [ebp - 0x198]
push ecx
push str.Stereo_Mixer
push str.middle_jack_stereo
push 0x4e8e60
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1ac]
lea ecx, [eax + edx*2 + 1]
push ecx
mov edx, dword [ebp - 0x1d4]
push edx
lea eax, [ebp - 0x198]
push eax
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004caa04
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
lea eax, [edx + ecx*2 + 9]
push eax
mov ecx, dword [ebp - 0x1d4]
push ecx
lea edx, [ebp - 0x198]
push edx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004caa04
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1ac]
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x1d4]
xor ecx, ecx
mov cl, byte [eax + edx + 0x74]
test ecx, ecx
je 0x4025b8
push 0xcc0020
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x70e74]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x70e70]
push ecx
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ecx + 0x70e7c]
sub ecx, dword [eax + 0x70e74]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70e78]
sub eax, dword [edx + 0x70e70]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1ac]
imul ecx, eax
mov edx, dword [edx + 0x70e84]
add edx, ecx
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x1a4]
imul eax, edx
mov ecx, dword [ecx + 0x70e80]
add ecx, eax
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.00404520
jmp 0x402678
push 0xcc0020
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x70e94]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0x70e90]
push ecx
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ecx + 0x70e9c]
sub ecx, dword [eax + 0x70e94]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70e98]
sub eax, dword [edx + 0x70e90]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1ac]
imul ecx, eax
mov edx, dword [edx + 0x70ea4]
add edx, ecx
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x1a4]
imul eax, edx
mov ecx, dword [ecx + 0x70ea0]
add ecx, eax
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.00404520
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x70e80
push eax
lea ecx, [ebp - 0x20]
call fcn.00404110
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1ac]
imul edx, ecx
push edx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x1a4]
imul ecx, eax
push ecx
lea ecx, [ebp - 0x20]
call fcn.004040f0
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1ac]
lea edx, [ecx + eax*2 + 1]
push edx
mov eax, dword [ebp - 0x1d4]
push eax
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004ca9c2
push 0xcc0020
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov edx, dword [eax + 0xc]
sub edx, dword [ecx + 4]
add edx, 1
push edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov edx, dword [eax + 8]
sub edx, dword [ecx]
add edx, 1
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1ac]
imul eax, edx
mov ecx, dword [ecx + 0x70e64]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1a4]
imul edx, ecx
mov eax, dword [eax + 0x70e60]
add eax, edx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.00404520
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
add edx, 0x70e60
push edx
lea ecx, [ebp - 0x20]
call fcn.00404110
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1ac]
imul ecx, eax
push ecx
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x1a4]
imul eax, edx
push eax
lea ecx, [ebp - 0x20]
call fcn.004040f0
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1ac]
lea ecx, [eax + edx*2 + 9]
push ecx
mov edx, dword [ebp - 0x1d4]
push edx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004ca9c2
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x1ac]
add ecx, 1
mov dword [ebp - 0x1ac], ecx
jmp 0x401ffe
mov edx, dword [ebp - 0x1a4]
add edx, 1
mov dword [ebp - 0x1a4], edx
jmp 0x401fc4
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6e78c], 0
jne 0x402da4
push 3
mov edx, dword [ebp - 0x1d4]
mov ecx, dword [edx + 0x5c]
add ecx, 0x141fc
call fcn.00482917
test eax, eax
je 0x402da4
cmp dword [ebp - 0x1ac], 1
jbe 0x402865
mov dword [ebp - 0x1ac], 0
jmp 0x402874
mov eax, dword [ebp - 0x1a4]
sub eax, 1
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe54], 0
je 0x4028aa
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe58], 0
je 0x4028aa
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe48], 5
je 0x402902
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x928], 3
jne 0x402da4
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe2c], 0
je 0x402da4
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe30], 0
je 0x402da4
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe20], 5
jne 0x402da4
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe54], 0
je 0x40294a
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe58], 0
je 0x40294a
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe48], 5
jne 0x40294a
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe5c], 0
je 0x4029a8
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x928], 3
jne 0x4029ec
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe2c], 0
je 0x4029ec
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x6fe30], 0
je 0x4029ec
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
cmp dword [eax + 0x6fe20], 5
jne 0x4029ec
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
cmp dword [edx + 0x6fe34], 0
jne 0x4029ec
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x70410
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x2820
push eax
push 0x80
lea ecx, [ebp - 0x198]
push ecx
push 0x4e8e74
push 0x4e8e98
push 0x4e8ec4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x402a2e
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
add eax, 0x703b0
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
add edx, 0x2820
push edx
push 0x80
lea eax, [ebp - 0x198]
push eax
push 0x4e8ed8
push 0x4e8f00
push 0x4e8f40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
lea eax, [edx + ecx*2 + 1]
push eax
mov ecx, dword [ebp - 0x1d4]
push ecx
lea edx, [ebp - 0x198]
push edx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004caa04
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1ac]
lea edx, [ecx + eax*2 + 9]
push edx
mov eax, dword [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x198]
push ecx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004caa04
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1ac]
lea ecx, [eax + edx*2]
mov edx, dword [ebp - 0x1d4]
xor eax, eax
mov al, byte [edx + ecx + 0x74]
test eax, eax
je 0x402b76
push 0xcc0020
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70e74]
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70e70]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70e7c]
sub eax, dword [edx + 0x70e74]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [edx + 0x70e78]
sub edx, dword [ecx + 0x70e70]
add edx, 1
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1ac]
imul eax, edx
mov ecx, dword [ecx + 0x70e84]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1a4]
imul edx, ecx
mov eax, dword [eax + 0x70e80]
add eax, edx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.00404520
jmp 0x402c36
push 0xcc0020
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70e94]
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [edx + 0x70e90]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [eax + 0x70e9c]
sub eax, dword [edx + 0x70e94]
add eax, 1
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [edx + 0x70e98]
sub edx, dword [ecx + 0x70e90]
add edx, 1
push edx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1ac]
imul eax, edx
mov ecx, dword [ecx + 0x70ea4]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1a4]
imul edx, ecx
mov eax, dword [eax + 0x70ea0]
add eax, edx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.00404520
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
add edx, 0x70e80
push edx
lea ecx, [ebp - 0x20]
call fcn.00404110
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1ac]
imul ecx, eax
push ecx
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x1a4]
imul eax, edx
push eax
lea ecx, [ebp - 0x20]
call fcn.004040f0
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1ac]
lea ecx, [eax + edx*2 + 1]
push ecx
mov edx, dword [ebp - 0x1d4]
push edx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004ca9c2
push 0xcc0020
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov ecx, dword [edx + 0xc]
sub ecx, dword [eax + 4]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov ecx, dword [edx + 8]
sub ecx, dword [eax]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x1d4]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1ac]
imul edx, ecx
mov eax, dword [eax + 0x70e64]
add eax, edx
push eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x1a4]
imul ecx, eax
mov edx, dword [edx + 0x70e60]
add edx, ecx
push edx
lea ecx, [ebp - 0x1c0]
call fcn.00404520
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [eax + 0x5c]
add ecx, 0x70e60
push ecx
lea ecx, [ebp - 0x20]
call fcn.00404110
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1ac]
imul eax, edx
push eax
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1a4]
imul edx, ecx
push edx
lea ecx, [ebp - 0x20]
call fcn.004040f0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
lea eax, [edx + ecx*2 + 9]
push eax
mov ecx, dword [ebp - 0x1d4]
push ecx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x80
call fcn.004ca9c2
cmp dword [ebp - 0x24], 0
je 0x402db9
mov edx, dword [ebp - 0x24]
push edx
lea ecx, [ebp - 0x1c0]
call fcn.004d2566
mov eax, dword [ebp - 0x1cc]
push eax
mov ecx, dword [ebp - 0x1d4]
call fcn.00404650
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1a0]
call fcn.00404260
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c0]
call fcn.004d2450
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.004d2450
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret