Function at 0x43b7a0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xed4
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0xed0], eax
push ebx
push esi
push edi
push str.Picasa2Installing
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x43b7df
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43bde1
mov edx, dword [ebp + 8]
lea eax, [esp + 0x40]
call fcn.0046b290
fldz
fst dword [esp + 0xc]
xor eax, eax
mov edi, 0x67b348
fstp dword [esp + 0x24]
lea ecx, [esp + 0x10]
mov dword [esp + 0x4c], str.GooglePicasa2
mov dword [esp + 0x50], str.SOFTWAREGooglePicasa_
mov dword [esp + 0x54], str.Picasa2
mov dword [esp + 0x10], 0
call fcn.00459750
lea eax, [esp + 0x10]
push eax
lea ebx, [esp + 0x28]
lea ecx, [esp + 0x10]
call fcn.0048e1c0
add esp, 4
test eax, eax
lea edi, [esp + 0x10]
sete bl
call fcn.00401700
test bl, bl
je 0x43b854
fld dword [esp + 0x24]
fstp dword [esp + 0x48]
and dword [esp + 0x44], 0xfffffeff
mov dword [str.RuntimeLoadImageCheck], 0x6a8ab4
call fcn.004394a0
test eax, eax
je 0x43b87f
call fcn.0043b410
cmp eax, 0xf4241
jne 0x43bde1
mov eax, str.runtime_slingshot_
lea edi, [esp + 0x4b0]
call fcn.00407270
xor ebx, ebx
push ebx
mov ecx, edi
call fcn.0046d7a0
add esp, 4
mov esi, edi
call fcn.00461930
mov ecx, edi
call fcn.00401770
lea esi, [esp + 0x40]
call fcn.0046bbd0
push 4
call fcn.00608276
add esp, 4
cmp eax, ebx
je 0x43b8ca
mov dword [eax], vtable.CrashReporterFactory.0
jmp 0x43b8cc
xor eax, eax
push eax
call fcn.004c2a80
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.004596c0
lea eax, [esp + 0x28]
call fcn.00496e30
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x43b901
add eax, 4
jmp 0x43b903
xor eax, eax
lea ecx, [esp + 0x28]
push ecx
call fcn.00496e50
test eax, eax
je 0x43b93f
lea esi, [esp + 0x28]
call fcn.004075e0
lea edi, [esp + 0x10]
call fcn.00401700
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xed0]
xor ecx, esp
call fcn.00607d6d
mov esp, ebp
pop ebp
ret 0x10
mov edi, 0x48
call fcn.00457990
mov esi, eax
cmp esi, ebx
je 0x43b966
call fcn.00457a30
mov dword [esi], vtable.FolderCache.0
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebx
mov dword [esp + 0x24], esi
jmp 0x43b96a
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x24]
mov eax, 7
mov edi, str._config
lea ecx, [esp + 0xc]
mov dword [0x6fa034], edx
mov dword [esp + 0xc], ebx
call fcn.00459750
lea edx, [esp + 0xc]
lea ecx, [esp + 0x30]
call fcn.0040cc40
cmp eax, 0xffffffff
setne bl
lea edi, [esp + 0xc]
mov byte [esp + 0x22], bl
call fcn.00401700
xor esi, esi
lea eax, [esi + 9]
mov edi, str._reconfig
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], esi
call fcn.00459750
lea edx, [esp + 0xc]
lea ecx, [esp + 0x30]
call fcn.0040cc40
cmp eax, 0xffffffff
lea edi, [esp + 0xc]
setne byte [esp + 0x23]
call fcn.00401700
lea eax, [esi + 0xa]
mov edi, str._uninstall
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], esi
call fcn.00459750
lea edx, [esp + 0xc]
lea ecx, [esp + 0x30]
call fcn.0040cc40
cmp eax, 0xffffffff
lea edi, [esp + 0xc]
setne byte [esp + 0x21]
call fcn.00401700
lea eax, [esi + 7]
mov edi, str._upload
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], esi
call fcn.00459750
lea edx, [esp + 0xc]
lea ecx, [esp + 0x30]
call fcn.0040cc40
cmp eax, 0xffffffff
lea edi, [esp + 0xc]
setne byte [esp + 0x20]
call fcn.00401700
test bl, bl
jne 0x43bc98
cmp byte [esp + 0x23], 0
jne 0x43bc98
cmp byte [esp + 0x21], 0
je 0x43ba6a
call fcn.00429840
jmp 0x43bd77
cmp byte [esp + 0x20], 0
je 0x43bc28
call fcn.004268d0
cmp eax, 7
jne 0x43bb52
call fcn.004bbe50
call fcn.004bcdf0
lea esi, [esp + 0x18]
call fcn.0043b6f0
mov eax, esi
call fcn.0043b780
test al, al
je 0x43bb03
mov edi, 0x2d8
call fcn.00457990
test eax, eax
je 0x43bb49
push 2
call fcn.00429c30
mov edi, eax
test edi, edi
je 0x43bb49
xor eax, eax
mov ecx, edi
call fcn.00429e40
lea esi, [esp + 0xc]
call fcn.00429810
mov eax, dword [eax]
test eax, eax
je 0x43bae1
add eax, 4
jmp 0x43bae3
xor eax, eax
mov esi, edi
push eax
lea edi, [esp + 0x18]
call fcn.004120f0
lea edi, [esp + 0xc]
call fcn.00401700
lea eax, [esp + 0x14]
call fcn.00412110
jmp 0x43bb49
xor ebx, ebx
mov eax, dword [esp + 0x18]
xor esi, esi
cmp eax, esi
je 0x43bb16
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x3e8
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
call fcn.00458210
mov edi, str.Slingshot_setup
lea esi, [esp + 0x18]
call fcn.0043b740
add ebx, 1
cmp ebx, 0x3c
jae 0x43bb49
mov eax, esi
call fcn.0043b780
test al, al
je 0x43bb05
lea esi, [esp + 0x18]
call fcn.0043b720
call fcn.00426880
test al, al
je 0x43bd77
lea eax, [esp + 0x160]
push eax
call fcn.004202a0
lea ecx, [esp + 0x160]
push ecx
lea edi, [esp + 0x7c]
call fcn.0042db50
mov eax, dword [esp + 0x34]
shr eax, 1
cmp eax, 1
jbe 0x43bbc7
fld qword [0x6a1f30]
mov ebx, dword [esp + 0x30]
fstp qword [esp + 0x18]
add ebx, 4
lea esi, [eax - 1]
lea esp, [esp]
lea edx, [esp + 0x18]
push edx
push ebx
lea eax, [esp + 0x168]
call fcn.00421820
test eax, eax
jne 0x43bbbf
lea eax, [esp + 0x78]
call fcn.0042dea0
add ebx, 4
sub esi, 1
jne 0x43bba0
lea esi, [esp + 0x18]
call fcn.00495ae0
lea eax, [esp + 0x78]
call fcn.0042df40
test eax, eax
je 0x43bc0e
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x18]
push eax
call fcn.004959f0
fcomp qword [0x6c1108]
fnstsw ax
test ah, 5
jp 0x43bc0e
push 0x1f4
call esi
lea eax, [esp + 0x78]
call fcn.0042df40
test eax, eax
jne 0x43bbe3
lea ecx, [esp + 0x78]
call fcn.0042dbe0
lea ebx, [esp + 0x160]
call fcn.00420540
jmp 0x43bd77
call fcn.004bbe50
call fcn.004bcdf0
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x18]
push edx
call fcn.0060914e
add esp, 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x64]
push ecx
mov eax, str.ViewerFullscreenStartup
mov dword [esp + 0x1c], 1
call fcn.00406220
lea eax, [esp + 0x60]
call fcn.004029c0
lea esi, [esp + 0x60]
mov byte [esp + 0x14], al
call fcn.00402a70
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.0043b1b0
add esp, 8
call fcn.0043afc0
jmp 0x43bd77
push str.Slingshot_setup
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
mov dword [esp + 0x18], esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
test esi, esi
je 0x43bd77
cmp eax, 0xb7
je 0x43bd70
cmp eax, 5
je 0x43bd70
call fcn.004bbe50
call fcn.004bcdf0
mov edi, 0x2d8
call fcn.00457990
test eax, eax
je 0x43bd70
xor ecx, ecx
test bl, bl
setne cl
push ecx
call fcn.00429c30
mov ebx, eax
test ebx, ebx
je 0x43bd70
xor eax, eax
mov ecx, ebx
call fcn.00429e40
cmp byte [esp + 0x22], 0
je 0x43bd38
mov edx, dword [ebx]
mov eax, dword [edx + 0x20]
mov ecx, ebx
call eax
test eax, eax
je 0x43bd38
mov edx, dword [ebx]
mov eax, dword [edx + 0x20]
mov ecx, ebx
call eax
mov eax, dword [eax + 0x5c]
call fcn.0045ec70
test eax, eax
je 0x43bd38
push 1
mov edi, eax
call fcn.0045ec20
lea esi, [esp + 0x14]
call fcn.004297e0
mov eax, dword [eax]
test eax, eax
je 0x43bd4c
add eax, 4
jmp 0x43bd4e
xor eax, eax
push eax
mov esi, ebx
lea edi, [esp + 0x10]
call fcn.004120f0
lea edi, [esp + 0x14]
call fcn.00401700
lea eax, [esp + 0xc]
call fcn.00412110
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x43bd91
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
mov dword [0x6fa034], 0
call eax
lea esi, [esp + 0x28]
call fcn.004075e0
lea edi, [esp + 0x10]
call fcn.00401700
mov ecx, dword [0x6fab68]
test ecx, ecx
je 0x43bdbf
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0x6fab68], 0
call fcn.0052c710
call fcn.0052a520
call fcn.004c2ae0
call fcn.00458200
lea edi, [esp + 0x40]
call fcn.0046c900
call fcn.004394d0
mov ecx, dword [esp + 0xedc]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00607d6d
mov esp, ebp
pop ebp
ret 0x10