Function at 0x406ad2
Capabilities:
Accept command line arguments

Disassembly:
push ebp
sub esp, 0x2a8
lea ebp, [esp - 4]
mov eax, dword [0x48e104]
xor eax, ebp
mov dword [ebp + 0x2a8], eax
push 0x18
mov eax, 0x45ab93
call fcn.0042084a
mov edi, dword [ebp + 0x2b4]
xor eax, eax
mov dword [ebp - 0x14], eax
xor esi, esi
mov dword [ebp - 0x20], eax
mov byte [ebp - 0xd], al
mov byte [ebp - 0x15], al
xor al, al
push 0x48e018
mov dword [ebp - 0x14], esi
mov byte [ebp - 0x19], al
call fcn.004097aa
mov ebx, dword [ebp + 0x2b8]
pop ecx
test ebx, ebx
jle 0x406d22
cmp ebx, 2
jl 0x406bcb
push 0x4602b8
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406b75
push dword [edi + 4]
call fcn.00442e47
pop ecx
mov ecx, eax
mov edx, 0x4959a0
mov dword [0x495994], ecx
sub edx, ecx
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x406b60
add edi, 8
sub ebx, 2
jmp 0x406d17
push 0x4602bc
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406b9f
push dword [edi + 4]
call fcn.00442e47
mov dword [0x495998], eax
add edi, 8
sub ebx, 2
jmp 0x406d16
push 0x4602c0
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406bcb
mov eax, dword [edi + 4]
mov dword [0x495958], eax
push dword [edi]
call fcn.004049b4
push dword [edi + 4]
call fcn.004049b4
pop ecx
jmp 0x406b94
push str.portable
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406bf0
mov byte [0x49595c], 1
push dword [edi]
call fcn.004049b4
jmp 0x406d12
cmp ebx, 2
jl 0x406c1e
push str.installer_name
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406c1e
mov eax, dword [edi + 4]
push dword [edi]
mov dword [ebp - 0x14], eax
call fcn.004049d8
push dword [edi + 4]
call fcn.004049d8
jmp 0x406bc8
push str.update
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
jne 0x406d1f
push str.update_ontop
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406c53
add edi, 4
mov byte [ebp - 0x15], 1
dec ebx
jmp 0x406d17
push str.webinstall
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406c72
add edi, 4
mov byte [ebp - 0xd], 1
dec ebx
jmp 0x406d17
push str.silent
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406c92
mov al, 1
add edi, 4
dec ebx
mov byte [ebp - 0x19], al
jmp 0x406d17
push str.program_files
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406cc8
add edi, 4
dec ebx
call fcn.004067c6
test eax, eax
je 0x406cbf
call fcn.00406704
cmp eax, 1
je 0x406df4
mov byte [0x4959ed], 1
jmp 0x406d17
push str.oem_referrer
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406cec
push dword [edi + 4]
call fcn.00442e47
mov dword [0x49599c], eax
jmp 0x406b94
push str.noautostart
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406d0b
add edi, 4
mov byte [0x4959ee], 1
dec ebx
jmp 0x406d17
push dword [edi]
call fcn.004049d8
add edi, 4
dec ebx
pop ecx
test ebx, ebx
jg 0x406b2d
mov esi, dword [ebp - 0x14]
push dword [0x462a24]
push 0x467050
call fcn.0040e50c
pop ecx
pop ecx
push 0x45f514
lea ecx, [ebp + 0x48]
call fcn.00404554
and dword [ebp - 4], 0
lea eax, [ebp + 0x48]
push eax
call fcn.0040d481
or dword [ebp - 4], 0xffffffff
pop ecx
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00408e63
lea eax, [ebp + 0x18]
push 0x495c90
push eax
call fcn.0040d265
lea eax, [ebp + 0x18]
mov dword [ebp - 4], 1
push eax
call fcn.0040d717
mov ecx, dword [0x49599c]
add esp, 0xc
mov al, byte [0x4959ed]
test ecx, ecx
je 0x406d93
test al, al
je 0x406da8
cmp byte [0x4959ee], 0
je 0x406e22
test ecx, ecx
je 0x406da8
test al, al
jne 0x406e22
push 0x460338
lea ecx, [ebp + 0x48]
call fcn.00404554
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.0040d93e
push 0x10
push eax
mov byte [ebp - 4], 3
call fcn.004072e6
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00408e63
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00408e63
push 0x1c
jmp 0x40728b
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.00407ada
add esp, 0x10
xor eax, eax
jmp 0x4072c3
test esi, esi
jne 0x406e2d
call fcn.00406012
mov esi, eax
push 0
mov dword [0x48e090], esi
call dword [sym.imp.ole32.dll_CoInitialize]
push 0x49597c
call dword [sym.imp.KERNEL32.DLL_InitializeCriticalSection]
cmp dword [0x495994], 0
jne 0x406e54
call fcn.00404d11
call fcn.004033c7
mov esi, eax
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 4
push eax
push 0x4959e8
push 0x4959e4
push esi
call fcn.00403978
push esi
mov dword [0x4959e0], eax
mov byte [ebp - 4], 1
call fcn.0043bc57
add esp, 0x14
cmp ebx, 2
jl 0x406f3f
push str.update
push dword [edi]
call fcn.004049fc
pop ecx
pop ecx
test al, al
je 0x406f3f
mov byte [0x49595d], 1
mov eax, dword [edi + 4]
mov dword [ebp - 0x14], eax
cmp ebx, 3
jl 0x406ec6
push dword [edi + 8]
call fcn.0043c965
pop ecx
mov ebx, eax
jmp 0x406ec8
xor ebx, ebx
test bl, 8
je 0x406ee1
push ebx
push dword [edi + 4]
call fcn.004078f4
lea esi, [eax + 0x3e8]
jmp 0x4072b3
call fcn.00404d6e
mov edi, ebx
and edi, 2
push ebx
push dword [ebp - 0x14]
call fcn.004078f4
mov esi, eax
pop ecx
pop ecx
test edi, edi
jne 0x406f0f
test esi, esi
je 0x4072b5
push esi
call fcn.004056c5
pop ecx
test al, al
jne 0x406eeb
test esi, esi
je 0x4072b5
test bl, 1
je 0x4072b5
push esi
push dword [ebp - 0x14]
call fcn.00407d68
pop ecx
pop ecx
test al, al
jne 0x4072b5
push 0x11
call fcn.004056c5
jmp 0x4072b4
cmp byte [ebp - 0x15], 0
je 0x406f7e
xor ebx, ebx
mov esi, str.Spotify_Update_Started_Mutex
jmp 0x406f56
push 0x32
call dword [sym.imp.KERNEL32.DLL_Sleep]
push ebx
push esi
call fcn.004069f1
pop ecx
pop ecx
test al, al
je 0x406f4e
call fcn.00405f53
push ebx
push eax
mov dword [0x495954], 0x406370
call fcn.00407b06
jmp 0x406ed6
mov bh, byte [ebp - 0xd]
test bh, bh
jne 0x406f8e
test byte [0x4959ea], 1
je 0x406f95
xor bl, bl
mov byte [ebp - 0x19], bl
jmp 0x406f98
mov bl, byte [ebp - 0x19]
push 2
push 1
push 5
call fcn.0040681e
add esp, 0xc
test al, al
jne 0x406ffa
test bl, bl
jne 0x406ff3
push 0x4603b0
lea ecx, [ebp + 0x48]
call fcn.00404554
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.0040d93e
push 0x10
push eax
mov byte [ebp - 4], 6
call fcn.004072e6
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00408e63
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00408e63
push 0x16
jmp 0x40728b
push 0x495978
push str.Spotify_Update_Started_Interactive_Mutex
call fcn.004069f1
pop ecx
pop ecx
test al, al
jne 0x40705f
test bl, bl
jne 0x407058
push 0x460454
lea ecx, [ebp + 0x48]
call fcn.00404554
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.0040d93e
push 0x40
push eax
mov byte [ebp - 4], 8
call fcn.004072e6
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00408e63
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00408e63
push 0x14
jmp 0x40728b
call fcn.00408890
test al, al
jne 0x40706f
push 0x17
jmp 0x40728b
call fcn.00405f53
mov esi, eax
test bl, bl
jne 0x4070dd
test bh, bh
jne 0x4070dd
test byte [0x4959ea], 2
jne 0x4070dd
push esi
call fcn.00404b54
pop ecx
test al, al
je 0x4070dd
push 0x460488
lea ecx, [ebp + 0x48]
call fcn.00404554
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp + 0x30]
mov dword [ebp - 0x14], 1
push eax
call fcn.0040d93e
push 3
pop ebx
push 0x121
push eax
mov dword [ebp - 4], 0xa
mov dword [ebp - 0x14], ebx
call fcn.004072e6
add esp, 0x10
cmp eax, 2
jne 0x4070e0
mov byte [ebp - 0xd], 1
jmp 0x4070e4
mov ebx, dword [ebp - 0x20]
mov byte [ebp - 0xd], 0
test bl, 2
je 0x4070f8
push 0
push 1
lea ecx, [ebp + 0x30]
and ebx, 0xfffffffd
call fcn.00408e63
mov dword [ebp - 4], 1
test bl, 1
je 0x407113
push 0
push 1
lea ecx, [ebp + 0x48]
and ebx, 0xfffffffe
call fcn.00408e63
cmp byte [ebp - 0xd], 0
je 0x407120
push 0x19
jmp 0x40728b
test byte [0x4959ea], 1
je 0x407197
call fcn.00404d6e
call fcn.00407f04
mov esi, eax
test esi, esi
je 0x407149
cmp esi, 0x37
je 0x407149
push esi
call fcn.004056c5
pop ecx
test al, al
jne 0x40712e
mov eax, esi
cdq
mov dword [0x48e050], eax
mov dword [0x48e054], edx
call fcn.0040635a
lea eax, [ebp + 0x268]
mov dword [0x48e094], 0x4959a0
push eax
call fcn.004062e4
pop ecx
lea eax, [ebp + 0x268]
mov ecx, 0x48e018
mov dword [0x48e098], eax
call fcn.00404068
mov dword [0x48e098], 0x45f514
jmp 0x4072b5
push 0
push str.Spotify_Update_Started_Mutex
call fcn.004069f1
pop ecx
pop ecx
test al, al
jne 0x4071fc
mov al, byte [ebp - 0x19]
test al, al
jne 0x4071f5
push 0x460454
lea ecx, [ebp + 0x48]
call fcn.00404554
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.0040d93e
push 0x40
push eax
mov byte [ebp - 4], 0xc
call fcn.004072e6
add esp, 0x10
lea ecx, [ebp + 0x30]
push 0
push 1
call fcn.00408e63
push 0
push 1
lea ecx, [ebp + 0x48]
call fcn.00408e63
push 0x15
jmp 0x40728b
call fcn.004067b2
test al, al
mov al, byte [ebp - 0x19]
je 0x40729a
test al, al
jne 0x407255
push 0x4604d8
lea ecx, [ebp + 0x30]
call fcn.00404554
lea eax, [ebp + 0x30]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp]
or ebx, 4
push eax
mov dword [ebp - 0x14], ebx
call fcn.0040d93e
push 0x21
or ebx, 8
mov dword [ebp - 4], 0xe
push eax
mov dword [ebp - 0x14], ebx
call fcn.004072e6
add esp, 0x10
mov byte [ebp - 0xd], 0
cmp eax, 2
jne 0x407259
mov byte [ebp - 0xd], 1
test bl, 8
je 0x40726d
push 0
push 1
lea ecx, [ebp]
and ebx, 0xfffffff7
call fcn.00408e63
xor eax, eax
inc eax
mov dword [ebp - 4], eax
test bl, 4
je 0x407283
push 0
push eax
lea ecx, [ebp + 0x30]
call fcn.00408e63
cmp byte [ebp - 0xd], 0
je 0x40728e
push 0x1a
pop esi
jmp 0x4072b5
call fcn.00404d6e
call fcn.004068bb
jmp 0x4072a3
test al, al
jne 0x4072a3
call fcn.00404d6e
call fcn.0040698b
push dword [ebp - 0x19]
push esi
call fcn.00407b06
mov esi, eax
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp + 0x18]
call fcn.00408e63
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 + 0x2a8]
xor ecx, ebp
call fcn.00420802
lea esp, [ebp + 0x2ac]
pop ebp
ret