Function at 0x1000f520
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x220
push ebx
push ebp
push esi
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x29]
mov byte [esp + 0x28], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov esi, dword [esp + 0x238]
mov dword [esp + 0x11], eax
mov edi, 0x100411e8
mov dword [esp + 0x15], eax
mov ecx, 5
mov dword [esp + 0x19], eax
mov byte [esp + 0x10], 0
mov word [esp + 0x1d], ax
mov byte [esp + 0x1f], al
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x1000f577
sbb eax, eax
sbb eax, 0xffffffff
mov ebp, dword [esp + 0x234]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x24], ecx
mov edi, 0x100411f0
mov esi, ebp
mov ecx, 0xa
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x1000f5a0
sbb eax, eax
sbb eax, 0xffffffff
mov ebx, dword [esp + 0x240]
test eax, eax
jne 0x1000f5d2
push str.TPISETUP.DAT
push 0x5c
push ebx
call dword [sym.imp.MSVCRT.dll_strrchr]
add esp, 8
push eax
call dword [sym.imp.MSVCRT.dll__strcmpi]
add esp, 8
mov dword [esp + 0x20], 1
test eax, eax
je 0x1000f5da
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x238]
push ebx
lea edx, [esp + 0x2c]
push 0x104
push edx
push 0x1004ccd4
push eax
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call ebp
test eax, eax
jne 0x1000f60a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x220
ret
mov edi, 0x1004120c
lea esi, [esp + 0x28]
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1000f62b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x220
ret
mov al, byte [esp + 0x28]
mov dl, 0x25
cmp al, dl
jne 0x1000f844
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x27], dl
jne 0x1000f844
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x24]
not ecx
dec ecx
test edi, edi
mov byte [esp + ecx + 0x27], al
jne 0x1000f677
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1000f72b
mov eax, dword [0x1004c1dc]
test eax, eax
je 0x1000f72b
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
and eax, 0xffff
push eax
lea eax, [esp + 0x14]
push 0x10041210
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x12c]
lea edx, [esp + 0x29]
lea eax, [esp + 0x10]
push ebx
push 0x104
push ecx
push 0x1004ccd8
push edx
push eax
call ebp
test eax, eax
jne 0x1000f7dd
mov ecx, dword [0x1004c1dc]
lea edx, [esp + 0x10]
and ecx, 0x3ff
push ecx
push 0x10041220
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x29]
lea edx, [esp + 0x10]
push ebx
push 0x104
push eax
push 0x1004ccdc
push ecx
push edx
call ebp
test eax, eax
jne 0x1000f7dd
push ebx
lea eax, [esp + 0x130]
push 0x104
push eax
lea ecx, [esp + 0x35]
push 0x1004cce0
push ecx
push 0x10041230
jmp 0x1000f7cc
mov edx, dword [0x1004c1d8]
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
and edx, 0xffff
lea eax, [esp + 0x10]
push edx
push 0x10041238
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x12c]
lea edx, [esp + 0x29]
lea eax, [esp + 0x10]
push ebx
push 0x104
push ecx
push 0x1004cce4
push edx
push eax
call ebp
test eax, eax
jne 0x1000f7dd
mov ecx, dword [0x1004c1d4]
lea edx, [esp + 0x10]
and ecx, 0xffff
push ecx
push str.STRINGS._04X
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x29]
lea edx, [esp + 0x10]
push ebx
push 0x104
push eax
push 0x1004cce8
push ecx
push edx
call ebp
test eax, eax
jne 0x1000f7dd
push ebx
lea eax, [esp + 0x130]
push 0x104
push eax
lea ecx, [esp + 0x35]
push 0x1004ccec
push ecx
push 0x10041258
call ebp
test eax, eax
jne 0x1000f7dd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x220
ret
test edi, edi
je 0x1000f81e
mov ecx, dword [0x1004c1dc]
mov edx, dword [esp + 0x23c]
neg ecx
push 0x82
push edx
lea eax, [esp + 0x134]
push 0xffffffffffffffff
sbb ecx, ecx
push eax
and ecx, 3
push 0
push ecx
call dword [0x1004c1bc]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x220
ret
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x23c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x1000f8a7
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1000f886
mov edx, dword [0x1004c1dc]
mov eax, dword [esp + 0x23c]
neg edx
push 0x82
push eax
lea ecx, [esp + 0x30]
push 0xffffffffffffffff
sbb edx, edx
push ecx
and edx, 3
push 0
push edx
call dword [0x1004c1bc]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x220
ret
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x23c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, 1
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x220
ret