Function at 0x412b94
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push edi
push esi
push ebx
mov eax, dword [ebp + 8]
test eax, eax
je 0x412a57
push 0x10
push 0x41299d
push eax
mov eax, dword [0x41d3a0]
push eax
call sub.user32.dll_MessageBoxA
call sym._save_prefs
mov dword [ebp - 4], 7
mov esi, 0x41d8e0
mov edi, 0x41d880
mov ebx, 0x540
mov esi, esi
push 0
push edi
call sym._term_force_font
mov eax, dword [ebx + 0x41d3e4]
add esp, 8
test eax, eax
je 0x412a92
push eax
call sym._string_free
add esp, 4
mov eax, dword [ebx + 0x41d3e8]
test eax, eax
je 0x412aa5
push eax
call sym._string_free
add esp, 4
mov eax, dword [esi]
test eax, eax
je 0x412ab1
push eax
call sub.user32.dll_DestroyWindow
mov dword [esi], 0
add esi, 0xffffff40
add edi, 0xffffff40
add ebx, 0xffffff40
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x412a74
push 0
push 0x41d340
call sym._term_force_font
mov eax, dword [0x41d3e4]
add esp, 8
test eax, eax
je 0x412af3
push eax
call sym._string_free
add esp, 4
mov eax, dword [0x41d3e8]
test eax, eax
je 0x412b05
push eax
call sym._string_free
add esp, 4
mov eax, dword [0x41d3a0]
test eax, eax
je 0x412b14
push eax
call sub.user32.dll_DestroyWindow
mov eax, dword [0x41d960]
mov dword [0x41d3a0], 0
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [0x41d980]
test eax, eax
je 0x412b38
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [0x41d950]
push eax
mov eax, dword [0x41c88c]
push eax
call sub.user32.dll_UnregisterClassA
mov eax, dword [0x41d970]
test eax, eax
je 0x412b58
push eax
call sub.user32.dll_DestroyIcon
call sub.wsock32.dll_WSACleanup
push 0
call sym._exit
dec ecx
dec esi
dec ecx
add byte [ebx + 0x3a], ah
pop esp
popal
outsb dx, byte [esi]
bound esp, qword [bx + di + 0x6e]
pop esp
insb byte es:[edi], dx
imul esp, dword [edx], 0x5062694c
popal
je 0x412be7
add byte [ecx + 0x6e], al
bound esp, qword [bx + di + 0x6e]
add byte fs:[ebp + 0xb6], cl
add byte [ebp + 0xbf], cl
add byte [ecx + ebp*2 + 0x62], cl
push eax
popal
je 0x412c03
and byte [ebx + 0x68], dh
outsd dx, dword [esi]
jne 0x412c0d
outsb dx, byte fs:[esi]
daa
je 0x412bc6
bound esp, qword [ebp + 0x20]
insd dword es:[edi], dx
jo 0x412c21
jns 0x412bcf
imul ebp, dword [esi + 0x20], 0x42474e41
inc ecx
dec esi
inc esp
dec ecx
dec esi
dec ecx
add byte [esi + 0x6f], ah
outsb dx, byte [esi]
je 0x412bc3
nop
in eax, 0x81
in al, dx
add byte [eax + eax], al
add byte [edi + 0x56], dl
push ebx
push 0x200
lea ebx, [ebp - 0x400]
push ebx
mov eax, dword [0x41d950]
push eax
call sub.kernel32.dll_GetModuleFileNameA
mov eax, ebx
mov edx, dword [0x412b64]
mov ecx, esi
mov ecx, dword [eax]
test cl, ch
jne 0x412bff
test cl, cl
je 0x412c17
test ch, ch
je 0x412c16
test ecx, 0xff0000
inc dword [eax]
je 0x412c15
add eax, 4
test ecx, 0xff000000
jne 0x412bf1
add byte [eax], al
push dword [ebp - 0x21]
sub eax, 3
inc eax
inc eax
sub eax, ebx
mov dword [eax + ebp - 0x404], edx
mov dl, byte [0x412b68]
adc eax, 0x412b68
mov byte [eax + ebp - 0x400], dl
push ebx
call sym._string_make
mov dword [0x41c888], eax
push eax
call sym._validate_file
mov eax, dword [0x41c888]
push eax
push 0x3e8
push ebx
push 0x412b69
push 0x412b78
push 0x412b80
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, ebx
mov ecx, edi
add esp, 8
mov ecx, dword [eax]
test cl, ch
jne 0x412c73
test cl, cl
je 0x412c8b
test ch, ch
je 0x412c8a
test ecx, 0xff0000
je 0x412c89
add eax, 4
test ecx, 0xff000000
jne 0x412c65
sub eax, 3
inc eax
inc eax
sub eax, ebx
jne 0x412ca4
push 0x412b94
call sym._quit
add esp, 4
jmp 0x412cb4
cmp byte [ebx + eax - 1], 0x5c
je 0x412cb4
mov byte [eax + ebx], 0x5c
mov byte [ebx + eax + 1], 0
push ebx
call sym._validate_dir
push ebx
call sym._init_file_paths
mov eax, dword [0x441390]
push eax
call sym._validate_dir
mov eax, dword [0x441320]
push eax
call sym._validate_dir
mov eax, dword [0x445db0]
push eax
call sym._validate_dir
mov eax, dword [0x443950]
push eax
call sym._validate_dir
push 0x412bbe
mov eax, dword [0x443950]
push eax
push 0x400
push ebx
call sym._path_build
add esp, 0x28
push ebx
call sym._string_make
mov dword [0x41d9b0], eax
push eax
call sym._validate_dir
push 0x410d76
mov eax, dword [0x41d9b0]
push eax
push 0x400
push ebx
call sym._path_build
push ebx
call sym._validate_file
lea esp, [ebp - 0x40c]
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret