Function at 0x403189
Capabilities:
Accept command line arguments

Disassembly:
push ebp
sub esp, 0x268
lea ebp, [esp - 4]
mov eax, dword [0x48d0e4]
xor eax, ebp
mov dword [ebp + 0x268], eax
push 0x18
mov eax, 0x458f9a
call fcn.00434ba0
mov edi, dword [ebp + 0x274]
xor ecx, ecx
mov ebx, dword [ebp + 0x278]
mov eax, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], ecx
mov byte [ebp - 0xe], cl
mov byte [ebp - 0xf], cl
mov byte [ebp - 0xd], cl
mov byte [ebp - 0x18], cl
jmp 0x403324
cmp ebx, 2
jl 0x403235
push 0x45dac4
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x403209
push dword [edi + 4]
call fcn.004481e3
mov dword [0x494860], eax
add edi, 8
sub ebx, 2
jmp 0x403323
push 0x45dac8
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x403235
mov eax, dword [edi + 4]
mov dword [0x494850], eax
push dword [edi]
call fcn.00401f17
push dword [edi + 4]
call fcn.00401f17
pop ecx
jmp 0x4031fe
push str.update
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x403276
add edi, 4
dec ebx
cmp ebx, 1
jl 0x403324
mov eax, dword [edi]
mov byte [ebp - 0xf], 1
mov dword [ebp - 0x14], eax
cmp ebx, 2
jl 0x40332c
push dword [edi + 4]
call fcn.0043ad7d
pop ecx
mov ebx, eax
jmp 0x40332f
push str.webinstall
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x403295
add edi, 4
mov byte [ebp - 0xd], 1
dec ebx
jmp 0x403324
push str.silent
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x4032b2
mov al, 1
add edi, 4
dec ebx
mov byte [ebp - 0x18], al
jmp 0x403324
push str.program_files
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x4032d5
add edi, 4
mov byte [ebp - 0xe], 1
dec ebx
mov byte [0x494874], 1
jmp 0x403324
push str.oem_referrer
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x4032f9
push dword [edi + 4]
call fcn.004481e3
mov dword [0x494864], eax
jmp 0x4031fe
push str.noautostart
push dword [edi]
call fcn.00401f5f
pop ecx
pop ecx
test al, al
je 0x403318
add edi, 4
mov byte [0x494875], 1
dec ebx
jmp 0x403324
push dword [edi]
call fcn.00401f3b
add edi, 4
dec ebx
pop ecx
test ebx, ebx
jg 0x4031da
mov ebx, dword [ebp - 0x20]
push dword [0x460764]
push 0x461a70
call fcn.00407a02
pop ecx
pop ecx
push 0x45d534
lea ecx, [ebp + 0x48]
call fcn.00401b8b
lea eax, [ebp + 0x48]
xor esi, esi
push eax
mov dword [ebp - 4], esi
call fcn.004069f9
or dword [ebp - 4], 0xffffffff
pop ecx
push esi
push 1
lea ecx, [ebp + 0x48]
call fcn.00404938
lea eax, [ebp + 0x18]
push 0x494b40
push eax
call fcn.004067dd
lea eax, [ebp + 0x18]
mov dword [ebp - 4], 1
push eax
call fcn.00406c8f
mov edi, dword [ebp - 0x18]
push edi
call fcn.00402eee
add esp, 0x10
test al, al
jne 0x4033a1
push 0x16
jmp 0x403784
cmp byte [ebp - 0xe], 0
je 0x4033df
call fcn.00402e2c
cmp eax, 1
jne 0x4033df
push 0x104
lea eax, [ebp + 0x60]
xor ebx, ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
push ebx
call dword [sym.imp.KERNEL32.DLL_GetCommandLineW]
push eax
lea eax, [ebp + 0x60]
push eax
push ebx
call fcn.00403c49
add esp, 0x10
mov esi, ebx
jmp 0x4037b2
mov ecx, dword [0x494864]
mov al, byte [0x494874]
test ecx, ecx
je 0x4033f2
test al, al
je 0x403403
cmp byte [0x494875], 0
je 0x40344f
test ecx, ecx
je 0x403403
test al, al
jne 0x40344f
push 0x45db18
lea ecx, [ebp + 0x48]
call fcn.00401b8b
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.00406eb6
push 0x10
push eax
mov byte [ebp - 4], 3
call fcn.0040593e
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00404938
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00404938
push 0x1c
jmp 0x403784
push 6
push esi
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0x494898
call dword [sym.imp.KERNEL32.DLL_InitializeCriticalSection]
call fcn.00416b97
mov esi, eax
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 4
push eax
push 0x494870
push 0x49486c
push esi
call fcn.00416fc3
push esi
mov dword [0x494868], eax
mov byte [ebp - 4], 1
call fcn.0043a29c
add esp, 0x14
cmp byte [ebp - 0xf], 0
je 0x403517
test bl, 8
je 0x4034b6
push ebx
push dword [ebp - 0x14]
call fcn.00403a6c
lea esi, [eax + 0x3e8]
jmp 0x4037b0
push 0
call fcn.0040516b
mov edi, ebx
pop ecx
and edi, 2
push ebx
push dword [ebp - 0x14]
call fcn.00403a6c
mov esi, eax
pop ecx
pop ecx
test edi, edi
jne 0x4034e7
test esi, esi
je 0x4037b2
push esi
call fcn.004053d9
pop ecx
test al, al
jne 0x4034c3
test esi, esi
je 0x4037b2
test bl, 1
je 0x4037b2
push esi
push dword [ebp - 0x14]
call fcn.00403ecf
pop ecx
pop ecx
test al, al
jne 0x4037b2
push 0x11
call fcn.004053d9
jmp 0x4037b1
mov bh, byte [ebp - 0xd]
test bh, bh
jne 0x403527
test byte [0x494872], 1
je 0x403531
xor bl, bl
mov byte [ebp - 0x18], bl
mov edi, dword [ebp - 0x18]
jmp 0x403534
mov bl, byte [ebp - 0x18]
push 0x49485c
push str.Spotify_Update_Started_Interactive_Mutex
call fcn.0040314e
pop ecx
pop ecx
test al, al
jne 0x403599
test bl, bl
jne 0x403592
push 0x45dbe4
lea ecx, [ebp + 0x48]
call fcn.00401b8b
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.00406eb6
push 0x40
push eax
mov byte [ebp - 4], 6
call fcn.0040593e
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00404938
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00404938
push 0x14
jmp 0x403784
call fcn.004043d4
test al, al
jne 0x4035a9
push 0x17
jmp 0x403784
call fcn.00402a68
mov esi, eax
test bl, bl
jne 0x403617
test bh, bh
jne 0x403617
test byte [0x494872], 2
jne 0x403617
push esi
call fcn.004020da
pop ecx
test al, al
je 0x403617
push 0x45dc18
lea ecx, [ebp + 0x48]
call fcn.00401b8b
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp + 0x30]
mov dword [ebp - 0x14], 1
push eax
call fcn.00406eb6
push 3
pop ebx
push 0x121
push eax
mov dword [ebp - 4], 8
mov dword [ebp - 0x14], ebx
call fcn.0040593e
add esp, 0x10
cmp eax, 2
jne 0x40361a
mov byte [ebp - 0xd], 1
jmp 0x40361e
mov ebx, dword [ebp - 0x1c]
mov byte [ebp - 0xd], 0
test bl, 2
je 0x403632
push 0
push 1
lea ecx, [ebp + 0x30]
and ebx, 0xfffffffd
call fcn.00404938
xor eax, eax
inc eax
mov dword [ebp - 4], eax
test al, bl
je 0x40364d
push 0
push eax
lea ecx, [ebp + 0x48]
and ebx, 0xfffffffe
call fcn.00404938
xor eax, eax
inc eax
cmp byte [ebp - 0xd], 0
je 0x40365a
push 0x19
jmp 0x403784
test byte [0x494872], al
je 0x40368e
push eax
call fcn.0040516b
pop ecx
call fcn.00404006
mov esi, eax
test esi, esi
je 0x403684
cmp esi, 0x37
je 0x403684
push esi
call fcn.004053d9
pop ecx
test al, al
jne 0x403669
call fcn.00405928
jmp 0x4037b2
push 0
push str.Spotify_Update_Started_Mutex
call fcn.0040314e
pop ecx
pop ecx
test al, al
jne 0x4036f3
mov al, byte [ebp - 0x18]
test al, al
jne 0x4036ec
push 0x45dbe4
lea ecx, [ebp + 0x48]
call fcn.00401b8b
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.00406eb6
push 0x40
push eax
mov byte [ebp - 4], 0xa
call fcn.0040593e
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00404938
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00404938
push 0x15
jmp 0x403784
call fcn.00402eda
test al, al
mov al, byte [ebp - 0x18]
je 0x403796
test al, al
jne 0x40374c
push 0x45dc68
lea ecx, [ebp + 0x30]
call fcn.00401b8b
lea eax, [ebp + 0x30]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp]
or ebx, 4
push eax
mov dword [ebp - 0x14], ebx
call fcn.00406eb6
push 0x21
or ebx, 8
mov dword [ebp - 4], 0xc
push eax
mov dword [ebp - 0x14], ebx
call fcn.0040593e
add esp, 0x10
mov byte [ebp - 0xd], 0
cmp eax, 2
jne 0x403750
mov byte [ebp - 0xd], 1
test bl, 8
je 0x403764
push 0
push 1
lea ecx, [ebp]
and ebx, 0xfffffff7
call fcn.00404938
mov dword [ebp - 4], 1
test bl, 4
je 0x40377c
push 0
push 1
lea ecx, [ebp + 0x30]
call fcn.00404938
cmp byte [ebp - 0xd], 0
je 0x403787
push 0x1a
pop esi
jmp 0x4037b2
push 1
call fcn.0040516b
pop ecx
call fcn.00403018
jmp 0x4037a2
test al, al
jne 0x4037a2
push 1
call fcn.0040516b
pop ecx
call fcn.004030e8
push edi
push esi
call fcn.00403c75
mov esi, eax
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp + 0x18]
call fcn.00404938
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x268]
xor ecx, ebp
call fcn.00434b58
lea esp, [ebp + 0x26c]
pop ebp
ret