Function at 0x41d6f0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50c
mov eax, dword [0x4bc410]
push ebx
push esi
push edi
xor eax, ebp
push str.sqlite3.dll
mov dword [esp + 0x518], eax
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [ebx + 0x4c], eax
je 0x41d784
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.sqlite3_open
push eax
call esi
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x4c]
push str.sqlite3_exec
push eax
call esi
mov ecx, dword [ebx + 0x4c]
push str.sqlite3_free
push ecx
mov dword [ebx + 0x58], eax
call esi
mov edx, dword [ebx + 0x4c]
push str.sqlite3_close
push edx
mov dword [ebx + 0x5c], eax
call esi
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0x4c]
push str.sqlite3_errmsg
push eax
call esi
mov dword [ebx + 0x64], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x508]
xor ecx, ebp
call fcn.00496ace
mov esp, ebp
pop ebp
ret
xor eax, eax
mov byte [esp + 0x210], 0
mov ecx, 0x3f
lea edi, [esp + 0x211]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x310], 0
mov ecx, 0x3f
lea edi, [esp + 0x311]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x410], 0
mov ecx, 0x3f
lea edi, [esp + 0x411]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x110], 0
mov ecx, 0x3f
lea edi, [esp + 0x111]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x3f
lea edi, [esp + 0x11]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x210]
push ecx
stosw word es:[edi], ax
push str.CurrentVersion
push str.SOFTWAREMozillaMinefield
mov ecx, ebx
stosb byte es:[edi], al
call fcn.0041d240
test eax, eax
je 0x41d920
mov ecx, 7
mov esi, str.SOFTWAREMozillaMinefield_
lea edi, [esp + 0x10]
lea eax, [esp + 0x210]
rep movsd dword es:[edi], dword [esi]
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d840
lea edi, [esp + 0x10]
sub eax, edx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x41d850
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x10]
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x41d870
mov edx, dword [str.Main]
mov ax, word [0x4a3a8c]
lea ecx, [esp + 0x310]
push ecx
mov dword [edi], edx
push str.Install_Directory
lea edx, [esp + 0x18]
push edx
mov ecx, ebx
mov word [edi + 4], ax
call fcn.0041d240
test eax, eax
je 0x41d920
lea eax, [esp + 0x310]
push eax
mov ecx, ebx
call fcn.0041d3b0
test eax, eax
je 0x41d920
mov ecx, dword [ebx + 0x4c]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.sqlite3_open
push ecx
call esi
mov edx, dword [ebx + 0x4c]
push str.sqlite3_exec
push edx
mov dword [ebx + 0x54], eax
call esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x4c]
push str.sqlite3_free
push eax
call esi
mov ecx, dword [ebx + 0x4c]
push str.sqlite3_close
push ecx
mov dword [ebx + 0x5c], eax
call esi
mov edx, dword [ebx + 0x4c]
push str.sqlite3_errmsg
push edx
mov dword [ebx + 0x60], eax
call esi
mov dword [ebx + 0x64], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x508]
xor ecx, ebp
call fcn.00496ace
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x410]
push eax
push str.CurrentVersion
push str.SOFTWAREMozillaMozilla_Firefox
mov ecx, ebx
call fcn.0041d240
test eax, eax
je 0x41da6a
mov ecx, 8
mov esi, str.SOFTWAREMozillaMozilla_Firefox_
lea edi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x410]
movsw word es:[edi], word [esi]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d970
lea edi, [esp + 0x10]
sub eax, edx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x41d980
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x10]
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x41d9a0
mov ecx, dword [str.Main]
mov dx, word [0x4a3a8c]
lea eax, [esp + 0x110]
mov dword [edi], ecx
push eax
push str.Install_Directory
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
mov word [edi + 4], dx
call fcn.0041d240
lea edx, [esp + 0x110]
push edx
push str.Install_Directory
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
call fcn.0041d240
test eax, eax
je 0x41da6a
lea ecx, [esp + 0x110]
push ecx
mov ecx, ebx
call fcn.0041d3b0
test eax, eax
je 0x41da6a
mov edx, dword [ebx + 0x4c]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.sqlite3_open
push edx
call esi
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x4c]
push str.sqlite3_exec
push eax
call esi
mov ecx, dword [ebx + 0x4c]
push str.sqlite3_free
push ecx
mov dword [ebx + 0x58], eax
call esi
mov edx, dword [ebx + 0x4c]
push str.sqlite3_close
push edx
mov dword [ebx + 0x5c], eax
call esi
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0x4c]
push str.sqlite3_errmsg
push eax
call esi
mov dword [ebx + 0x64], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x508]
xor ecx, ebp
call fcn.00496ace
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x514]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00496ace
mov esp, ebp
pop ebp
ret