Function at 0x401d40
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x1104
call fcn.00404cd0
mov eax, dword [0x428510]
xor eax, esp
mov dword [esp + 0x1100], eax
push ebx
push esi
push edi
push 0x42fac0
lea eax, [esp + 0x110]
xor edi, edi
push str.INI_file____s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404470
push 0x42f9a0
lea eax, [esp + 0x120]
push str.INI_file2____s_
push eax
call fcn.004032d0
lea eax, [esp + 0x128]
push eax
call fcn.00404470
push 0x42fac0
call fcn.00403750
add esp, 0x24
test eax, eax
je 0x4022a0
call fcn.00403300
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0xc]
push 0x42fac0
push 0x100
push eax
push 0x41d26c
push str.Full
push str.Make
call esi
mov ecx, 0x41d280
lea eax, [esp + 0xc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401e10
test dl, dl
je 0x401e0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401e10
add eax, 2
add ecx, 2
test dl, dl
jne 0x401df0
xor ecx, ecx
jmp 0x401e15
sbb ecx, ecx
or ecx, 1
mov eax, dword [0x428e20]
test ecx, ecx
push 0x42fac0
push 0x104
push 0x42f880
push str.Default
mov ebx, 1
push str.BINDIR
cmove eax, ebx
push str.Make
mov dword [0x428e20], eax
call esi
mov ecx, str.Default
mov eax, 0x42f880
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401e73
test dl, dl
je 0x401e6f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401e73
add eax, 2
add ecx, 2
test dl, dl
jne 0x401e53
xor eax, eax
jmp 0x401e78
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401ee4
push 0x42f9a0
push 0x104
push 0x42f880
push str.Default
push str.BINDIR
push str.Make
call esi
mov ecx, str.Default
mov eax, 0x42f880
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401ec6
test dl, dl
je 0x401ec2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401ec6
add eax, 2
add ecx, 2
test dl, dl
jne 0x401ea6
xor eax, eax
jmp 0x401ecb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401ee4
xor ecx, ecx
mov al, byte [ecx + 0x429c80]
lea ecx, [ecx + 1]
mov byte [ecx + 0x42f87f], al
test al, al
jne 0x401ed1
push 0x42f880
call fcn.00404920
mov ecx, 0x42f880
add esp, 4
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401f00
sub ecx, edx
cmp byte [ecx + 0x42f87f], 0x5c
jne 0x401f25
dec ecx
cmp ecx, 0x104
jae 0x4023b6
mov byte [ecx + 0x42f880], al
push 0x42f880
lea eax, [esp + 0x110]
push str.BINDIR__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404470
add esp, 0x10
push 0x42fac0
push 0x104
push 0x42f760
push str.Default
push str.ELISPDIR
push str.Make
call esi
mov ecx, str.Default
mov eax, 0x42f760
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401f96
test dl, dl
je 0x401f92
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401f96
add eax, 2
add ecx, 2
test dl, dl
jne 0x401f76
xor eax, eax
jmp 0x401f9b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401fb4
xor ecx, ecx
mov al, byte [ecx + 0x429b60]
lea ecx, [ecx + 1]
mov byte [ecx + 0x42f75f], al
test al, al
jne 0x401fa1
push 0x42f760
lea eax, [esp + 0x110]
push str.ELISPDIR__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404470
add esp, 0x10
lea eax, [esp + 0xc]
push 0x42fac0
push 0x100
push eax
push str.Default
push str.INFOPATH
push str.Make
call esi
mov ecx, str.Default
lea eax, [esp + 0xc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402024
test dl, dl
je 0x402020
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402024
add eax, 2
add ecx, 2
test dl, dl
jne 0x402004
xor eax, eax
jmp 0x402029
sbb eax, eax
or eax, 1
test eax, eax
je 0x402041
xor ecx, ecx
nop
mov al, byte [esp + ecx + 0xc]
lea ecx, [ecx + 1]
mov byte [ecx + 0x429a3f], al
test al, al
jne 0x402030
push 0x429a40
lea eax, [esp + 0x110]
push str.INFOPATH__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404470
add esp, 0x10
push 0x42fac0
push 0x1000
push 0x42e760
push str.Default
push str.OBJS
push str.Make
call esi
push 0x42fac0
push 0x1000
push 0x42d760
push str.Default
push str.SRCS
push str.Make
call esi
push 0x42fac0
push 0x1000
push 0x42c760
push str.Default
push str.BINS
push str.Make
call esi
push 0x42fac0
push 0x104
push 0x42b640
push str.Default
push str.TEMPFILE
push str.Make
call esi
push 0x42fac0
push 0x1000
push 0x42a640
push str.Default
push str.INFOS
push str.Make
call esi
push 0x42fac0
push 0x1000
push 0x42b760
push str.Default
push str.CONTRIBS
push str.Make
call esi
call fcn.004010c0
mov ecx, str.Default
mov eax, 0x42e760
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402157
test dl, dl
je 0x402153
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402157
add eax, 2
add ecx, 2
test dl, dl
jne 0x402137
xor eax, eax
jmp 0x40215c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402189
push str.mew.ini
lea eax, [esp + 0x110]
push str.Error:_OBJS_is_not_found_in___s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404490
add esp, 0x10
mov edi, ebx
mov ecx, str.Default
mov eax, 0x42d760
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4021b3
test dl, dl
je 0x4021af
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4021b3
add eax, 2
add ecx, 2
test dl, dl
jne 0x402193
xor eax, eax
jmp 0x4021b8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4021e5
push str.mew.ini
lea eax, [esp + 0x110]
push str.Error:_SRCS_is_not_found_in___s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404490
add esp, 0x10
mov edi, ebx
mov ecx, str.Default
mov eax, 0x42b640
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402210
test dl, dl
je 0x40220c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402210
add eax, 2
add ecx, 2
test dl, dl
jne 0x4021f0
xor eax, eax
jmp 0x402215
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402242
push str.mew.ini
lea eax, [esp + 0x110]
push str.Error:_TEMPFILE_is_not_found_in___s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404490
add esp, 0x10
mov edi, ebx
mov ecx, str.Default
mov eax, 0x42a640
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402270
test dl, dl
je 0x40226c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402270
add eax, 2
add ecx, 2
test dl, dl
jne 0x402250
xor eax, eax
jmp 0x402275
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4022ba
push str.mew.ini
lea eax, [esp + 0x110]
push str.Error:_INFOS_is_not_found_in___s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404490
add esp, 0x10
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1100]
xor ecx, esp
call fcn.00404cba
add esp, 0x1104
ret
test edi, edi
jne 0x4022a0
push 0x42e760
lea eax, [esp + 0x110]
push str.Objs__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404470
push 0x42d760
lea eax, [esp + 0x120]
push str.Srcs__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x128]
push eax
call fcn.00404470
push 0x42c760
lea eax, [esp + 0x130]
push str.Bins__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x138]
push eax
call fcn.00404470
push 0x42b640
lea eax, [esp + 0x140]
push str.TempFile__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x148]
push eax
call fcn.00404470
add esp, 0x40
lea eax, [esp + 0x10c]
push 0x42a640
push str.Infos__s_
push eax
call fcn.004032d0
lea eax, [esp + 0x118]
push eax
call fcn.00404470
push 0x42b760
lea ecx, [esp + 0x120]
push str.Contribs__s_
push ecx
call fcn.004032d0
lea ecx, [esp + 0x128]
push ecx
call fcn.00404470
mov ecx, dword [esp + 0x112c]
add esp, 0x20
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00404cba
add esp, 0x1104
ret
call fcn.00404bdf
int3