Function at 0x5aa820
Capabilities:
Read .ini file

Disassembly:
sub esp, 0xd0c
push ebx
push ebp
mov ebp, dword [esp + 0xd18]
push esi
push edi
mov ecx, ebp
call fcn.004039f0
mov esi, dword [esp + 0xd24]
mov ecx, esi
mov dword [ebp], 0
call fcn.004039f0
lea eax, [esp + 0x14]
push 0x1a
push eax
mov dword [esi], 0
call fcn.004b84e0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x5aa87b
mov esi, dword [eax]
shr esi, 8
test esi, esi
je 0x5aa87b
lea edx, [eax + 4]
cmp byte [edx], 0
jne 0x5aa892
lea ecx, [esp + 0x14]
call fcn.004039f0
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xd0c
ret
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx - 1]
cmp eax, esi
jae 0x5aa8b0
cmp byte [edx + eax], 0x5c
sete al
test al, al
jne 0x5aa8bb
push 0x5c
lea ecx, [esp + 0x18]
call fcn.0049d660
push str.MozillaFirefox_
lea ecx, [esp + 0x18]
call fcn.0049d460
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x10], eax
je 0x5aa8ec
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x5aa8ec
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push str.profiles.ini
lea ecx, [esp + 0x14]
call fcn.0049d460
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aa907
add eax, 4
jmp 0x5aa909
xor eax, eax
push eax
call fcn.004b5740
add esp, 4
test al, al
jne 0x5aa93e
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x14]
mov dword [esp + 0x10], 0
call fcn.004039f0
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xd0c
ret
xor eax, eax
mov byte [esp + 0x51c], 0
mov ecx, 0x1ff
lea edi, [esp + 0x51d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aa966
add eax, 4
jmp 0x5aa968
xor eax, eax
push eax
push 0x800
lea edx, [esp + 0x524]
push edx
lea esi, [esp + 0x528]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea edi, [esp + eax + 0x51c]
lea eax, [esp + 0x51c]
cmp eax, edi
jae 0x5aa9d6
nop
lea esp, [esp]
cmp byte [esi], 0
je 0x5aa9d6
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aa9b2
add eax, 4
jmp 0x5aa9b4
xor eax, eax
push eax
push 0
push str.Default
push esi
call ebx
test eax, eax
jne 0x5aa9db
cmp esi, edi
jae 0x5aa9d1
cmp byte [esi], 0
je 0x5aa9d1
inc esi
cmp esi, edi
jb 0x5aa9c7
inc esi
cmp esi, edi
jb 0x5aa9a0
mov esi, str.Profile0
xor eax, eax
mov byte [esp + 0x1c], 0
mov ecx, 0x3f
lea edi, [esp + 0x1d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x11c], 0
mov ecx, 0xff
lea edi, [esp + 0x11d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aaa18
add eax, 4
jmp 0x5aaa1a
xor eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push pe_nt_image_headers32
lea ecx, [esp + 0x24]
push ecx
push 0x6b6e10
push str.Name
push esi
call edi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aaa45
add eax, 4
jmp 0x5aaa47
xor eax, eax
push eax
push 0x400
lea edx, [esp + 0x124]
push edx
push 0x6b6e10
push str.Path
push esi
call edi
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0
call fcn.0049d9d0
mov ecx, dword [ebp]
cmp ecx, dword [esp + 0x18]
je 0x5aaacc
mov ecx, ebp
call fcn.004039f0
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [ebp], eax
je 0x5aaacc
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
jae 0x5aaac5
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x5aaacc
mov ecx, ebp
call fcn.0049d350
lea ecx, [esp + 0x18]
call fcn.004039f0
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x11c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0
call fcn.0049d9d0
mov ecx, dword [esp + 0xd24]
mov eax, dword [esp + 0x18]
cmp dword [ecx], eax
je 0x5aab57
mov edi, ecx
call fcn.004039f0
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [edi], eax
je 0x5aabb2
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
jae 0x5aab47
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x5aab53
mov ecx, dword [esp + 0xd24]
call fcn.0049d350
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5aabb2
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
mov edi, eax
jae 0x5aabb2
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x5aaba1
mov edx, dword [edi]
and edx, 0xff
cmp edx, 0x80
jae 0x5aab9c
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x5aaba1
mov eax, 0xff
test eax, eax
jne 0x5aabb2
mov eax, dword [esp + 0x18]
push eax
call fcn.00499410
add esp, 4
mov eax, dword [ebp]
test eax, eax
je 0x5aae71
mov ecx, dword [eax]
shr ecx, 8
test ecx, ecx
je 0x5aae71
test eax, eax
je 0x5aabd3
add eax, 4
jmp 0x5aabd5
xor eax, eax
cmp byte [eax], 0
je 0x5aae71
mov edi, dword [esp + 0xd24]
mov eax, dword [edi]
test eax, eax
je 0x5aae71
mov ecx, dword [eax]
shr ecx, 8
test ecx, ecx
je 0x5aae71
test eax, eax
je 0x5aac05
add eax, 4
jmp 0x5aac07
xor eax, eax
cmp byte [eax], 0
je 0x5aae71
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aac1d
add eax, 4
jmp 0x5aac1f
xor eax, eax
push eax
push 0
push str.IsRelative
push esi
call ebx
test eax, eax
je 0x5aacff
mov esi, dword [edi]
test esi, esi
je 0x5aacff
mov eax, dword [esi]
shr eax, 8
test eax, eax
je 0x5aacff
test esi, esi
je 0x5aac52
lea eax, [esi + 4]
jmp 0x5aac54
xor eax, eax
cmp byte [eax], 0
je 0x5aacff
mov eax, dword [esp + 0x14]
cmp esi, eax
je 0x5aacf0
mov ecx, dword [esi]
and ecx, 0xff
cmp ecx, 0x80
jae 0x5aacc0
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x5aacad
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x5aaca8
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x5aacad
mov eax, 0xff
test eax, eax
jne 0x5aacbc
mov eax, dword [edi]
push eax
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [edi], eax
je 0x5aacf0
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x5aace9
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x5aacf0
mov ecx, edi
call fcn.0049d350
lea edx, [esp + 0x11c]
push edx
mov ecx, edi
call fcn.0049d460
mov ecx, edi
call fcn.0049d350
mov eax, dword [edi]
test eax, eax
je 0x5aad11
lea esi, [eax + 4]
jmp 0x5aad13
xor esi, esi
test eax, eax
je 0x5aad26
lea edi, [eax + 4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jmp 0x5aad28
xor ecx, ecx
xor eax, eax
test ecx, ecx
jbe 0x5aad8d
mov edi, edi
mov dl, byte [eax + esi]
test dl, dl
je 0x5aad8d
cmp dl, 0x80
jb 0x5aad78
cmp dl, 0xe0
jae 0x5aad54
mov dl, byte [eax + esi + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x5aad8d
mov edx, 2
jmp 0x5aad87
cmp dl, 0xf0
jae 0x5aad78
mov dl, byte [eax + esi + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x5aad8d
mov dl, byte [eax + esi + 2]
and dl, 0xc0
cmp dl, 0x80
jne 0x5aad8d
mov edx, 3
jmp 0x5aad87
cmp byte [eax + esi], 0x2f
mov edx, 1
jne 0x5aad87
mov byte [eax + esi], 0x5c
add eax, edx
cmp eax, ecx
jb 0x5aad30
mov ecx, dword [esp + 0xd24]
push str.prefs.js
call fcn.0049d460
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aadfd
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
mov esi, eax
jae 0x5aadfd
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x5aadec
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x5aade7
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x5aadec
mov eax, 0xff
test eax, eax
jne 0x5aadfd
mov eax, dword [esp + 0x10]
push eax
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x10], 0
je 0x5aae64
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
mov esi, eax
jae 0x5aae64
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x5aae53
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x5aae4e
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x5aae53
mov eax, 0xff
test eax, eax
jne 0x5aae64
mov eax, dword [esp + 0x14]
push eax
call fcn.00499410
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd0c
ret
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5aaed0
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
mov esi, eax
jae 0x5aaed0
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x5aaebf
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x5aaeba
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x5aaebf
mov eax, 0xff
test eax, eax
jne 0x5aaed0
mov eax, dword [esp + 0x10]
push eax
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x10], 0
je 0x5aaf37
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
mov esi, eax
jae 0x5aaf37
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x5aaf26
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x5aaf21
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x5aaf26
mov eax, 0xff
test eax, eax
jne 0x5aaf37
mov eax, dword [esp + 0x14]
push eax
call fcn.00499410
add esp, 4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xd0c
ret