Function at 0x424230
Capabilities:
Get common file path
Read .ini file

Disassembly:
sub esp, 0x360
push ebx
push ebp
push esi
push edi
mov ecx, 0x54
xor eax, eax
lea edi, [esp + 0x220]
mov dword [esp + 0x21c], 0x154
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x21c]
push eax
lea eax, [esp + 0x220]
push eax
push ecx
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
test eax, eax
je 0x424285
lea edx, [esp + 0x2bc]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [0x43d840], eax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x43d1f0
stosb byte es:[edi], al
call fcn.00405350
test eax, eax
je 0x4243ef
mov ecx, 0x43d1f0
call fcn.00405650
test eax, eax
je 0x4243ef
push 0x43d504
mov ecx, 0x43be60
call fcn.004066e0
test eax, eax
je 0x4243ef
mov ecx, 0x43be60
call fcn.00408360
test eax, eax
je 0x4243ef
mov edi, 0x43d2fc
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, 0x43c316
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x43d1f8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x424340
mov edi, 0x43d1f8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x43c212
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x43c09c
lea eax, [esp + 0x18]
push str._s.ini
push eax
call fcn.00429590
mov ecx, dword [0x43d844]
add esp, 0xc
mov edx, dword [ecx]
push 0x43d594
call dword [edx + 0x14]
push eax
push str.CodePage
push str.LANGUAGE
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x43c08c], eax
mov eax, dword [0x43d848]
cmp eax, 5
je 0x4243a8
cmp eax, 1
je 0x4243a8
cmp eax, 2
je 0x4243a8
cmp eax, 6
je 0x4243a8
mov ecx, 0x43bc08
call fcn.0040f800
test eax, eax
je 0x4246f0
push 3
push 0x43d574
push 0x43cad4
call fcn.0042aab7
add esp, 0xc
test eax, eax
jne 0x4245c0
cmp dword [0x43d848], 4
jne 0x4243da
test byte [0x43d84c], 8
je 0x4245c0
push 0x43d400
push 0x43c92e
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4245c0
mov ecx, 0x43be60
mov dword [0x43d848], 3
call fcn.00408360
test eax, eax
je 0x4246f0
mov ecx, 0x43bc08
call fcn.0040fca0
test eax, eax
je 0x4246f0
mov ecx, 0x43bc08
call fcn.0040fa40
test eax, eax
je 0x4246f0
mov ecx, 0x43bc08
call fcn.00410000
test eax, eax
je 0x4246f0
mov al, byte [0x43caf5]
test al, al
je 0x424498
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x119]
mov byte [esp + 0x118], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x118]
push 0x104
push eax
push 0
push 0x43c09c
call fcn.00424700
push 0x10000000
lea ecx, [esp + 0x12c]
push str.Users
push ecx
call entry0
add esp, 0x1c
mov eax, dword [0x43d84c]
mov edx, eax
and edx, 4
test dl, dl
jne 0x4244b7
and eax, 8
test al, al
jne 0x4244b7
mov ecx, 0x43be60
call fcn.004092a0
xor ecx, ecx
lea eax, [esp + 0x14]
mov cl, byte [0x43caf5]
push 0x104
push eax
push ecx
push 0x43c09c
call fcn.00424700
mov edi, 0x437448
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x14]
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x14]
and ecx, 3
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
rep movsb byte es:[edi], byte [esi]
mov edi, 0x437648
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x14]
mov ecx, ebx
push eax
and ecx, 3
push 0
push str.CodePage
rep movsb byte es:[edi], byte [esi]
push str.LANGUAGE
call ebp
test eax, eax
mov dword [0x43c08c], eax
jne 0x4245c0
lea ecx, [esp + 0x14]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, 0x437648
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x14]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x43d844]
mov edx, dword [ecx]
call dword [edx + 0x14]
push eax
push str.CodePage
push str.LANGUAGE
call ebp
mov dword [0x43c08c], eax
lea eax, [esp + 0x14]
push eax
call fcn.00425b50
add esp, 4
mov ecx, dword [0x43d844]
mov eax, dword [0x43c08c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x10]
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
push 1
push ecx
call fcn.004249d0
mov edi, dword [0x43baf8]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ebp, eax
add esp, 0xc
mov esi, dword [ebp]
cmp edi, esi
je 0x4246ab
mov eax, dword [edi - 0xc]
lea ecx, [edi - 0xc]
test eax, eax
jge 0x424610
lea edx, [edi - 0xc]
cmp edx, dword [0x43734c]
jne 0x424617
mov edx, dword [esi - 0xc]
test edx, edx
jge 0x424668
mov ebp, dword [esi - 8]
cmp eax, 1
jg 0x424624
cmp ebp, dword [edi - 4]
jle 0x424643
mov ecx, 0x43baf8
call fcn.00402400
push ebp
mov ecx, 0x43baf8
call fcn.004023a0
test eax, eax
je 0x4246ab
mov edi, dword [0x43baf8]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x43baf8]
mov dword [ecx - 8], ebp
mov edx, dword [0x43baf8]
mov byte [edx + ebp], 0
jmp 0x4246ab
mov eax, dword [0x43734c]
add edi, 0xfffffff4
cmp edi, eax
je 0x424698
push ecx
call ebx
test eax, eax
jg 0x42468c
mov eax, dword [0x43baf8]
add eax, 0xfffffff4
push eax
call fcn.004292c0
add esp, 4
mov ecx, dword [0x437348]
mov dword [0x43baf8], ecx
mov ebp, dword [ebp]
mov dword [0x43baf8], ebp
add ebp, 0xfffffff4
push ebp
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x10]
mov ecx, dword [0x43734c]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4246d6
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4246d6
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004292c0
add esp, 4
mov ecx, 0x43be60
call fcn.00406940
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x360
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x360
ret