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

Disassembly:
mov eax, 0x2279afd9
call fcn.2279a2e0
sub esp, 0x9a4
mov eax, dword [0x227a16b0]
and dword [ebp - 0x994], 0
xor eax, ebp
push ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x990], eax
mov eax, dword [ebp + 0x10]
push 0x2279cc10
lea ecx, [ebp - 0x984]
mov dword [ebp - 0x98c], eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
xor edx, edx
inc edx
cmp dword [ebp + 0xc], 0
mov dword [ebp - 4], edx
jne 0x22799259
xor eax, eax
mov byte [ebp - 0x914], 0
mov ecx, 0x1ff
lea edi, [ebp - 0x913]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push edx
lea eax, [ebp - 0x94c]
push eax
call fcn.22793016
pop ecx
pop ecx
push str.pub_store.dat
lea ecx, [ebp - 0x94c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
cmp dword [ebp - 0x934], 0x10
mov eax, dword [ebp - 0x948]
jae 0x22798f2b
lea eax, [ebp - 0x948]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
mov edi, 0x800
push edi
lea eax, [ebp - 0x914]
push eax
mov ebx, 0x2279cba0
push ebx
push 0x2279cb98
push 0x2279cb90
call esi
test eax, eax
je 0x227993c8
lea eax, [ebp - 0x914]
push eax
lea ecx, [ebp - 0x930]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea eax, [ebp - 0x930]
push ebx
push eax
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_bool___cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
test al, al
pop ecx
pop ecx
jne 0x22798f91
cmp dword [ebp - 0x91c], 3
je 0x22799037
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call sub.MSVCR71.dll_memset
add esp, 0xc
push 0x104
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x22799037
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x968]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push str.pub_store.dat
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
cmp dword [ebp - 0x950], 0x10
mov eax, dword [ebp - 0x964]
jae 0x22798ffa
lea eax, [ebp - 0x964]
push eax
push edi
lea eax, [ebp - 0x914]
push eax
push ebx
push 0x2279cb98
push 0x2279cb90
call esi
test eax, eax
je 0x22799027
lea eax, [ebp - 0x914]
push eax
lea ecx, [ebp - 0x930]
call dword [0x2279c108]
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [ebp - 0x930]
push ebx
push eax
call dword [sym.imp.MSVCP71.dll_bool___cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
test al, al
pop ecx
pop ecx
jne 0x22799058
cmp dword [ebp - 0x91c], 3
je 0x22799195
mov eax, dword [ebp - 0x98c]
mov eax, dword [eax + 0x14]
xor esi, esi
cmp eax, esi
je 0x22799195
mov dword [ebp - 0x988], esi
jbe 0x22799195
mov edi, dword [ebp - 0x98c]
add edi, 4
mov eax, dword [ebp - 0x98c]
imul esi, esi, 0x24
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x22799095
mov eax, dword [edi]
jmp 0x22799097
mov eax, edi
mov ecx, dword [ebp - 0x988]
cmp byte [eax + ecx], 0x30
jl 0x227990c9
cmp edx, 0x10
jb 0x227990ac
mov eax, dword [edi]
jmp 0x227990ae
mov eax, edi
cmp byte [eax + ecx], 0x39
jg 0x227990c9
cmp edx, 0x10
jb 0x227990bd
mov eax, dword [edi]
jmp 0x227990bf
mov eax, edi
movsx eax, byte [eax + ecx]
lea esi, [esi + eax - 0x30]
jmp 0x2279913a
cmp edx, 0x10
jb 0x227990d2
mov eax, dword [edi]
jmp 0x227990d4
mov eax, edi
cmp byte [eax + ecx], 0x41
jl 0x22799100
cmp edx, 0x10
jb 0x227990e3
mov eax, dword [edi]
jmp 0x227990e5
mov eax, edi
cmp byte [eax + ecx], 0x5a
jg 0x22799100
cmp edx, 0x10
jb 0x227990f4
mov eax, dword [edi]
jmp 0x227990f6
mov eax, edi
movsx eax, byte [eax + ecx]
lea esi, [esi + eax - 0x37]
jmp 0x2279913a
cmp edx, 0x10
jb 0x22799109
mov eax, dword [edi]
jmp 0x2279910b
mov eax, edi
cmp byte [eax + ecx], 0x61
jl 0x22799137
cmp edx, 0x10
jb 0x2279911a
mov eax, dword [edi]
jmp 0x2279911c
mov eax, edi
cmp byte [eax + ecx], 0x7a
jg 0x22799137
cmp edx, 0x10
jb 0x2279912b
mov eax, dword [edi]
jmp 0x2279912d
mov eax, edi
movsx eax, byte [eax + ecx]
lea esi, [esi + eax - 0x57]
jmp 0x2279913a
add esi, 0xd
mov eax, esi
xor edx, edx
mov ecx, 0xb63e
div ecx
mov esi, edx
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x968]
push eax
call fcn.22798dd3
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 5
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
inc dword [ebp - 0x988]
mov eax, dword [ebp - 0x98c]
mov ecx, dword [ebp - 0x988]
cmp ecx, dword [eax + 0x14]
jb 0x22799080
mov esi, dword [sym.imp.MSVCP71.dll_bool___cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
lea eax, [ebp - 0x930]
push ebx
push eax
call esi
test al, al
pop ecx
pop ecx
jne 0x227991b8
cmp dword [ebp - 0x91c], 3
je 0x2279923d
call fcn.22798e2b
push eax
lea eax, [ebp - 0x968]
push eax
call fcn.22798dd3
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [ebp - 0x930]
push ebx
push eax
call esi
test al, al
pop ecx
pop ecx
jne 0x227991b8
cmp dword [ebp - 0x934], 0x10
mov ecx, dword [ebp - 0x948]
jae 0x22799212
lea ecx, [ebp - 0x948]
cmp dword [ebp - 0x918], 0x10
mov eax, dword [ebp - 0x92c]
jae 0x22799227
lea eax, [ebp - 0x92c]
push ecx
push eax
push 0x2279cb98
push 0x2279cb90
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
je 0x22799250
lea eax, [ebp - 0x930]
lea ecx, [ebp - 0x984]
push eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 2
jmp 0x227993bc
lea eax, [ebp - 0x968]
push eax
call fcn.22792f7a
mov dword [esp], str.pub_store.dat
push eax
lea eax, [ebp - 0x94c]
push eax
mov byte [ebp - 4], 7
call fcn.22791335
add esp, 0xc
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 9
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor eax, eax
cmp dword [ebp - 0x934], 0x10
mov byte [ebp - 0x914], 0
mov ecx, 0x1ff
lea edi, [ebp - 0x913]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x948]
jae 0x227992be
lea eax, [ebp - 0x948]
push eax
push 0x800
lea eax, [ebp - 0x914]
push eax
mov ebx, 0x2279cba0
push ebx
push 0x2279cb98
mov edi, 0x2279cb90
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x227993c8
lea eax, [ebp - 0x914]
push eax
lea ecx, [ebp - 0x930]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov esi, dword [sym.imp.MSVCP71.dll_bool___cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
lea eax, [ebp - 0x930]
push ebx
push eax
mov byte [ebp - 4], 0xa
call esi
test al, al
pop ecx
pop ecx
jne 0x22799324
cmp dword [ebp - 0x91c], 3
je 0x227993a5
call fcn.22798e2b
push eax
lea eax, [ebp - 0x9b0]
push eax
call fcn.22798dd3
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x9b0]
mov byte [ebp - 4], 0xa
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [ebp - 0x930]
push ebx
push eax
call esi
test al, al
pop ecx
pop ecx
jne 0x22799324
cmp dword [ebp - 0x934], 0x10
mov ecx, dword [ebp - 0x948]
jae 0x2279937e
lea ecx, [ebp - 0x948]
cmp dword [ebp - 0x918], 0x10
mov eax, dword [ebp - 0x92c]
jae 0x22799393
lea eax, [ebp - 0x92c]
push ecx
push eax
push 0x2279cb98
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
je 0x227993b8
lea eax, [ebp - 0x930]
lea ecx, [ebp - 0x984]
push eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x930]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x94c]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [ebp - 0x990]
lea eax, [ebp - 0x984]
push eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x984]
mov dword [ebp - 0x994], 1
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x990]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
xor ecx, ebp
pop ebx
call fcn.2279a349
leave
ret 0xc