Function at 0x5830a9
Capabilities:
Create process on windows
Delete file
Write and execute a file
Write file on windows

Disassembly:
push 0xac
mov eax, 0x60abfe
call fcn.004db48b
mov edi, ecx
mov dword [ebp - 0x18], edi
mov esi, dword [ebp + 0xc]
cmp esi, 2
jne 0x5830fe
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x584108
push dword [ebx + 0x14]
call fcn.00597240
test eax, eax
js 0x584108
push 0
push dword [ebx + 0x14]
lea esi, [edi + 0x3a18]
mov ecx, esi
call fcn.005a5af5
mov ecx, esi
call fcn.005a595a
jmp 0x584108
xor ecx, ecx
inc ecx
cmp esi, ecx
jne 0x5831b9
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x584108
lea ecx, [ebp - 0x44]
call fcn.00435fbf
xor ebx, ebx
lea ecx, [ebp + 0xc]
push str.Artist
mov dword [ebp - 4], ebx
call fcn.0041ddcb
push esi
lea eax, [ebp + 0xc]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x44]
call fcn.00421da7
mov ecx, dword [ebp + 0xc]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583153
call fcn.00407965
push str.Title
lea ecx, [ebp + 0xc]
call fcn.0041ddcb
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
mov eax, dword [ebp + 0x10]
add eax, 4
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00421da7
mov byte [ebp - 4], bl
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583189
call fcn.00407965
push ebx
mov ebx, dword [ebp + 0x10]
lea esi, [edi + 0x3a18]
mov ecx, esi
push dword [ebx + 0x14]
call fcn.005a5af5
push ecx
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
push dword [ebx + 8]
call fcn.005a493f
lea ecx, [ebp - 0x44]
call fcn.0042b585
jmp 0x584108
cmp esi, 4
jne 0x5831e4
mov eax, dword [ebp + 0x10]
lea ecx, [edi + 0x4040]
test eax, eax
je 0x5831da
push dword [eax + 4]
push dword [eax]
call fcn.005499d9
jmp 0x584108
call fcn.005499c6
jmp 0x584108
cmp esi, 5
jne 0x5834ad
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.00588ef6
push 0x67476c
lea ecx, [ebp + 0xc]
call fcn.0040d2ee
mov esi, str.updater.exe
push esi
call fcn.00505bb3
pop ecx
push esi
push eax
lea ecx, [ebp + 0xc]
call fcn.0040f454
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0059076d
xor ebx, ebx
test eax, eax
jne 0x583239
mov dword [edi + 0xc], 0x80004005
jmp 0x583417
mov edi, dword [ebp - 0x18]
cmp dword [edi - 8], ebx
je 0x58341a
push 0x67476c
lea ecx, [ebp - 0x10]
call fcn.0040d2ee
push str.packs_
mov edx, eax
lea ecx, [ebp - 0x20]
call fcn.0040ce1d
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x583274
call fcn.00407965
mov edi, dword [ebp - 0x20]
mov ecx, edi
call fcn.00590f81
mov eax, dword [0x668294]
mov dword [ebp - 0x14], eax
call fcn.0051687d
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [ebp - 0x14]
push str._u_u.dat
push eax
call fcn.0040cefd
mov eax, dword [0x668294]
lea ecx, [ebp - 0x1c]
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
push eax
push dword [eax - 8]
push edi
push dword [edi - 8]
call fcn.0040f4c7
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.00414841
lea ecx, [esi - 0xc]
mov dword [ebp - 0x10], eax
cmp ecx, 0x668010
je 0x5832df
call fcn.00407965
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x583286
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x20]
push eax
push dword [eax - 8]
call fcn.0040f454
mov esi, dword [ebp - 0x20]
push ebx
push 0x80
push 2
push ebx
push ebx
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
cmp eax, 0xffffffff
je 0x58333e
push ebx
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], ebx
push eax
push dword [edi - 8]
lea ecx, [ebp - 0x18]
push dword [edi - 8]
call fcn.0040cccd
mov edi, dword [ebp - 0x24]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, 0x6366e4
push edi
call fcn.00505bb3
pop ecx
push edi
push eax
lea ecx, [ebp + 0xc]
call fcn.0040f454
push esi
push dword [esi - 8]
lea ecx, [ebp + 0xc]
call fcn.0040f454
push 0x44
pop edi
push edi
lea eax, [ebp - 0xb8]
push ebx
push eax
call fcn.004e0bc0
add esp, 0xc
mov dword [ebp - 0xb8], edi
lea edi, [ebp - 0x44]
mov dword [ebp - 0x8c], 1
lea ecx, [ebp - 0x44]
push 0xa
pop eax
mov word [ebp - 0x88], ax
xor eax, eax
push ecx
stosd dword es:[edi], eax
lea ecx, [ebp - 0xb8]
push ecx
push ebx
push ebx
stosd dword es:[edi], eax
lea ecx, [ebp + 0xc]
push ebx
push ebx
push ebx
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
push dword [eax - 8]
call fcn.0040ceb7
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x5833d7
push dword [ebp - 0x40]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push dword [ebp - 0x44]
call edi
jmp 0x5833de
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor ecx, ecx
mov eax, 0x80004005
cmp dword [ebp - 0x10], ecx
cmovne eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x583404
call fcn.00407965
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x583414
call fcn.00407965
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0xc], ebx
jge 0x583495
mov eax, dword [0x668294]
push 0x82a1
push ecx
lea ecx, [ebp + 0x10]
mov dword [ebp + 0x10], eax
call fcn.0041129f
mov eax, dword [0x668294]
push 0x82a2
push ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
call fcn.0041129f
mov esi, dword [ebp - 0x1c]
push 0x30
push esi
push dword [ebp + 0x10]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esi - 0xc]
mov ebx, 0x668010
cmp ecx, ebx
je 0x58346f
call fcn.00407965
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x58347e
call fcn.00407965
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x58348d
call fcn.00407965
lea ecx, [edi - 0xc]
jmp 0x583f08
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x5834a5
call fcn.00407965
lea ecx, [edi - 0xc]
jmp 0x58409b
push 3
pop edx
cmp esi, edx
jne 0x5839e2
cmp dword [ebp + 0x10], 0
je 0x584108
cmp dword [0x676d40], 0
jne 0x584108
mov eax, dword [ebp + 0x10]
xor ebx, ebx
mov dword [0x676d40], ecx
mov esi, 0x668010
mov dword [ebp - 0x14], ebx
cmp dword [eax], ebx
je 0x58366c
mov edi, ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], edx
cmp dword [0x673514], ecx
jne 0x583516
push ebx
mov ecx, 0x673510
call fcn.0042b6f7
mov ecx, dword [eax]
test ecx, ecx
je 0x58350f
lock inc dword [ecx + 0x34]
mov edi, dword [eax]
mov dword [ebp - 0x20], edi
jmp 0x583574
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x60], 0x639934
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x60]
push dword [eax + 4]
call fcn.004591a7
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x583569
mov edi, dword [ebp - 0x38]
test edi, edi
je 0x583564
lock inc dword [edi + 0x34]
lock inc dword [edi + 0x34]
mov ecx, edi
mov dword [ebp - 0x20], edi
call fcn.00422d15
jmp 0x58356c
mov dword [ebp - 0x20], edi
jmp 0x58356c
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x60]
call fcn.00458f33
or eax, 0xffffffff
cmp dword [ebp - 0x14], 0
jne 0x58363d
mov eax, dword [0x668294]
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 5
test edi, edi
jne 0x5835ba
mov esi, dword [0x673514]
inc esi
push esi
lea eax, [ebp + 0xc]
push 0x8192
push eax
call fcn.0041c926
add esp, 0xc
lea eax, [ebp + 0xc]
inc esi
push eax
call fcn.005a5284
test eax, eax
jne 0x583598
jmp 0x583616
cmp dword [edi + 0x2c], ebx
jne 0x5835ef
lea eax, [edi + 0x14]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040d36e
mov byte [ebp - 4], 6
mov ecx, edi
mov esi, dword [ebp - 0x10]
push esi
call fcn.00596eb0
lea ecx, [esi - 0xc]
mov byte [ebp - 4], 5
mov esi, 0x668010
cmp ecx, esi
je 0x5835ef
call fcn.00407965
lea eax, [edi + 0x10]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040d36e
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
call fcn.0040d242
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583616
call fcn.00407965
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp + 0xc]
push 0xffffffffffffffff
push esi
lea ecx, [ecx + 0x3a18]
call fcn.005a5af5
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x58363a
call fcn.00407965
or eax, 0xffffffff
mov dword [ebp - 4], eax
test edi, edi
je 0x58365d
lock xadd dword [edi + 0x34], eax
dec eax
jne 0x58365d
mov ecx, edi
call fcn.0041bf3f
push 0x38
push edi
call fcn.004dadca
pop ecx
pop ecx
cmp dword [ebp - 0x14], 0
jne 0x5839d7
mov edi, dword [ebp - 0x18]
jmp 0x583687
cmp dword [0x673c90], ebx
je 0x58368c
cmp dword [0x673bdc], ebx
je 0x58368c
lea ecx, [edi + 0x3a18]
call fcn.005a595a
mov esi, dword [ebp + 0x10]
jmp 0x5836c0
lea eax, [edi + 0x3a18]
cmp dword [0x6737ec], ebx
je 0x5836a9
push ebx
push ebx
mov ecx, eax
call fcn.005a5af5
lea eax, [edi + 0x3a18]
mov esi, dword [ebp + 0x10]
cmp dword [esi + 8], ebx
je 0x5836c0
cmp dword [0x6737e8], ebx
je 0x5836c0
mov ecx, eax
call fcn.005a595a
push ecx
add esi, 0x14
lea ecx, [ebp - 0x6c]
mov dword [ebp + 0xc], esi
call fcn.0041bf00
mov dword [ebp - 4], 7
mov ecx, dword [esi + 4]
mov dword [ebp - 0x30], ecx
test ecx, ecx
jle 0x583972
mov edi, ebx
push edi
mov ecx, esi
call fcn.0046f365
mov eax, dword [eax + 8]
cmp dword [eax - 8], ebx
je 0x583965
push edi
mov ecx, esi
call fcn.0046f365
mov ecx, dword [ebp + 0xc]
mov esi, eax
push edi
call fcn.0046f365
lea ecx, [eax + 8]
mov eax, dword [esi + 0x10]
push eax
push dword [eax - 8]
call fcn.0040f454
mov esi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0046f365
push 2
lea ecx, [ebp - 0x6c]
push dword [eax + 8]
call fcn.00472f2f
test eax, eax
je 0x583965
mov eax, dword [ebp + 0x10]
mov ecx, esi
push edi
cmp dword [eax + 0xc], ebx
je 0x583854
call fcn.0046f365
mov ecx, dword [eax + 8]
call fcn.00414841
test eax, eax
jne 0x583965
push edi
mov ecx, esi
call fcn.0046f365
push eax
lea ecx, [ebp - 0x34]
call fcn.0040d36e
push edi
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.0046f365
add eax, 4
lea ecx, [ebp - 0x14]
push eax
call fcn.0040d36e
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
dec eax
push eax
call fcn.0042b614
mov esi, dword [eax]
mov dword [ebp - 0x70], esi
test esi, esi
je 0x5837a7
lock inc dword [esi + 4]
push str.Artist
lea ecx, [ebp - 0x1c]
call fcn.0041ddcb
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.00421f8b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x5837da
call fcn.00407965
push str.Title
lea ecx, [ebp - 0x20]
call fcn.0041ddcb
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.00421f8b
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x583811
call fcn.00407965
mov ecx, dword [ebp + 0xc]
push edi
call fcn.0046f365
add eax, 0x10
lea ecx, [esi + 0x8c]
push eax
call fcn.0040d242
test esi, esi
je 0x583834
mov ecx, esi
call fcn.00416ed3
mov ecx, dword [ebp - 0x14]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583848
call fcn.00407965
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x34]
jmp 0x583956
call fcn.0046f365
push eax
lea ecx, [ebp - 0x10]
call fcn.0040d36e
push edi
mov ecx, esi
mov byte [ebp - 4], 0xd
call fcn.0046f365
add eax, 4
lea ecx, [ebp - 0x24]
push eax
call fcn.0040d36e
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
dec eax
push eax
call fcn.0042b614
mov esi, dword [eax]
mov dword [ebp - 0x70], esi
test esi, esi
je 0x583898
lock inc dword [esi + 4]
push str.Artist
lea ecx, [ebp - 0x28]
mov dword [esi + 0x28], 1
call fcn.0041ddcb
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00421f8b
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x5838d2
call fcn.00407965
push str.Title
lea ecx, [ebp - 0x2c]
call fcn.0041ddcb
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.00421f8b
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x583909
call fcn.00407965
mov ecx, dword [ebp + 0xc]
push edi
call fcn.0046f365
mov ecx, esi
push dword [eax + 0xc]
call fcn.0044e4d1
mov ecx, dword [ebp + 0xc]
push edi
call fcn.0046f365
add eax, 0x10
lea ecx, [esi + 0x8c]
push eax
call fcn.0040d242
mov ecx, esi
call fcn.00416ed3
mov ecx, dword [ebp - 0x24]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58394f
call fcn.00407965
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583962
call fcn.00407965
mov esi, dword [ebp + 0xc]
inc edi
cmp edi, dword [ebp - 0x30]
jl 0x5836e6
mov edi, dword [ebp - 0x18]
cmp dword [ebp - 0x68], 0
jbe 0x5839cf
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x583991
mov esi, dword [edi + 0x3ba0]
test esi, esi
je 0x583991
mov esi, dword [esi + 4]
jmp 0x583993
mov esi, ebx
xor eax, eax
test ecx, ecx
push ebx
setne al
lea ecx, [edi + 0x3a18]
push ebx
dec eax
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.005a4f82
push dword [edi + 0x3a1c]
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov eax, dword [ebp + 0x10]
cmp dword [eax + 8], ebx
je 0x5839cf
push 1
push esi
lea ecx, [edi + 0x3a18]
call fcn.005a52f4
lea ecx, [ebp - 0x6c]
call fcn.0041bf3f
mov dword [0x676d40], ebx
jmp 0x584108
cmp esi, 6
jne 0x583a33
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x584108
xor ebx, ebx
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x584108
mov eax, dword [eax + 0x10]
cmp dword [eax - 8], ebx
je 0x583a15
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x14]
cmp dword [eax - 8], ebx
je 0x584108
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi + 4], eax
jmp 0x584108
cmp esi, 0xd
jne 0x583a9b
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x584108
push dword [edi + 0x5654]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x583a65
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x583a7d
push 0xffffffffffffffff
push 0x8cab
push 0x111
push dword [0x674760]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [esi]
lea ecx, [edi + 0x421c]
call fcn.00552dfc
push esi
lea ecx, [edi + 0x5650]
call fcn.0057ddef
jmp 0x584108
cmp esi, 0xe
jne 0x583ad7
cmp dword [ebp + 0x10], 0
je 0x584108
cmp dword [0x676d3c], 0
jne 0x584108
push dword [ebp + 0x10]
mov dword [0x676d3c], ecx
lea ecx, [edi + 0x5650]
call fcn.0057dcea
and dword [0x676d3c], 0
jmp 0x584108
cmp esi, 7
je 0x584108
cmp esi, 8
jne 0x583b43
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x584108
xor ebx, ebx
mov dword [edi + 4], ebx
cmp dword [edi], ecx
jne 0x583b18
mov eax, dword [0x668294]
push ebx
push ebx
push 6
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push str._d._d._d
push eax
call fcn.0040cefd
add esp, 0x14
jmp 0x583b2e
cmp dword [edi], 2
jne 0x584108
push 0x673e70
lea ecx, [ebp + 0x10]
call fcn.0040d36e
mov esi, dword [ebp + 0x10]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi + 4], eax
lea ecx, [esi - 0xc]
jmp 0x58409b
cmp esi, 9
je 0x5840aa
cmp esi, 0xc
je 0x5840aa
cmp esi, 0xa
jne 0x583ea6
call fcn.00583020
test eax, eax
je 0x584108
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x584108
cmp dword [0x676d70], 0
jne 0x584108
push ecx
add edx, 0x14
mov dword [0x676d70], 1
lea ecx, [ebp - 0x6c]
mov dword [ebp + 0x10], edx
call fcn.0041bf00
mov dword [ebp - 4], 0x14
xor ebx, ebx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp + 0xc], ebx
test ecx, ecx
jle 0x583d78
mov edi, ebx
mov esi, edx
push edi
mov ecx, esi
call fcn.0046f365
mov eax, dword [eax + 8]
cmp dword [eax - 8], ebx
je 0x583d68
push edi
mov ecx, esi
call fcn.0046f365
mov ecx, dword [ebp + 0x10]
mov esi, eax
push edi
call fcn.0046f365
lea ecx, [eax + 8]
mov eax, dword [esi + 0x10]
push eax
push dword [eax - 8]
call fcn.0040f454
mov ecx, dword [ebp + 0x10]
push edi
call fcn.0046f365
push 0x634970
mov esi, eax
call fcn.00505bb3
mov dword [esp], 0x634970
lea ecx, [esi + 8]
push eax
call fcn.0040f454
mov esi, dword [ebp + 0x10]
mov ecx, esi
push edi
call fcn.0046f365
push 2
lea ecx, [ebp - 0x6c]
push dword [eax + 8]
call fcn.00472f2f
test eax, eax
je 0x583d68
push edi
mov ecx, esi
call fcn.0046f365
push eax
lea ecx, [ebp - 0x28]
call fcn.0040d36e
push edi
mov ecx, esi
mov byte [ebp - 4], 0x15
call fcn.0046f365
add eax, 4
lea ecx, [ebp - 0x2c]
push eax
call fcn.0040d36e
push edi
mov ecx, esi
mov byte [ebp - 4], 0x16
call fcn.0046f365
add eax, 0xc
lea ecx, [ebp - 0x30]
push eax
call fcn.0040d36e
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
dec eax
push eax
call fcn.0042b614
mov edi, dword [eax]
mov dword [ebp - 0x70], edi
test edi, edi
je 0x583c94
lock inc dword [edi + 4]
push str.Artist
lea ecx, [ebp - 0x10]
mov dword [edi + 0x28], 1
call fcn.0041ddcb
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00421f8b
mov ecx, dword [ebp - 0x10]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583ccf
call fcn.00407965
push str.Title
lea ecx, [ebp - 0x24]
call fcn.0041ddcb
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
call fcn.00421f8b
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583d02
call fcn.00407965
mov esi, dword [ebp - 0x30]
mov ecx, edi
push esi
call fcn.0044e4d1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push eax
call fcn.0046f365
add eax, 0x10
lea ecx, [edi + 0x8c]
push eax
call fcn.0040d242
mov ecx, edi
call fcn.00416ed3
lea ecx, [esi - 0xc]
mov esi, 0x668010
cmp ecx, esi
je 0x583d40
call fcn.00407965
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583d4f
call fcn.00407965
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x583d62
call fcn.00407965
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
inc edi
mov dword [ebp + 0xc], edi
cmp edi, dword [ebp - 0x34]
jl 0x583bba
mov edi, dword [ebp - 0x18]
cmp dword [ebp - 0x68], 0
jbe 0x583e93
push ebx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [edi + 0x421c]
call fcn.0055ca05
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [edi + 0x4040]
call fcn.005499aa
test eax, eax
jle 0x583e93
mov ecx, dword [0x668294]
push eax
lea eax, [ebp + 0x10]
mov dword [ebp + 0x10], ecx
push 0x88bc
push eax
call fcn.0041c926
add esp, 0xc
lea eax, [edi + 0x6390]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x669f74], 0
je 0x583e12
mov esi, dword [ebp + 0x10]
push ecx
push ecx
push ebx
push esi
lea ecx, [edi + 0x5e5c]
call fcn.0044df71
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebx
push 0x32
push 0x18
push dword [edi + 4]
mov dword [edi + 0x638c], eax
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [0x669f74], ebx
jmp 0x583e70
mov eax, dword [edi + 0x6388]
test eax, eax
je 0x583e2c
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [edi + 0x6388], ebx
lea eax, [edi + 0x5e5c]
cmp word [edi + 0x5f7c], bx
je 0x583e48
mov ecx, eax
call fcn.0044dff1
lea eax, [edi + 0x5e5c]
mov esi, dword [ebp + 0x10]
push ecx
push ecx
push ebx
push esi
mov ecx, eax
call fcn.0044df71
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebx
push 0x32
push 0x18
push dword [edi + 4]
mov dword [edi + 0x638c], eax
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [edi + 0x6388], eax
lea eax, [edi + 0x6390]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x583e93
call fcn.00407965
lea ecx, [ebp - 0x6c]
mov dword [0x676d70], ebx
call fcn.0041bf3f
jmp 0x584108
cmp esi, 0xb
jne 0x583f0f
mov eax, dword [0x668294]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0x1b
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0x1c
xor ebx, ebx
jmp 0x583ed6
mov ecx, dword [ebp + 0x10]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0046facc
inc ebx
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
lea ecx, [edi + 0x421c]
call fcn.00552d3f
test al, al
jne 0x583ec5
mov ecx, dword [ebp + 0xc]
mov ebx, 0x668010
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x583f02
call fcn.00407965
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff4
cmp ecx, ebx
jmp 0x5840a1
cmp esi, 0xf
jne 0x584061
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x10]
add eax, 8
push eax
mov dword [ebp - 0x30], eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp - 4], 0x1d
mov ecx, esp
push eax
call fcn.0040d36e
call fcn.004566a0
pop ecx
mov ecx, eax
call fcn.00456635
inc dword [0x67560c]
xor ebx, ebx
cmp dword [0x6727d4], ebx
je 0x583fa5
mov eax, dword [0x668294]
push 0xea9e
push ecx
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0041129f
mov esi, dword [ebp + 0xc]
push 0x40021
push dword [0x674764]
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esi - 0xc]
mov dword [ebp + 0xc], eax
cmp ecx, 0x668010
je 0x583f9c
call fcn.00407965
mov eax, dword [ebp + 0xc]
cmp eax, 1
jne 0x58405c
lea esi, [edi + 0x63d0]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp - 0x50]
call fcn.00458f89
mov byte [ebp - 4], 0x1e
push dword [ebp + 0x10]
call fcn.0040d242
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x4c]
add eax, 4
push eax
call fcn.0040d242
push dword [ebp - 0x30]
lea ecx, [ebp - 0x48]
call fcn.0040d242
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x44]
add eax, 0xc
push eax
call fcn.0040d242
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x40]
add eax, 0x10
push eax
call fcn.0040d242
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x3c]
add eax, 0x14
push eax
call fcn.0040d242
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x38]
add eax, 0x18
push eax
call fcn.0040d242
lea eax, [ebp - 0x50]
push eax
lea ecx, [edi + 0x63c0]
call fcn.0046f914
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsIconic]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push ebx
push ebx
push 0x806
push dword [edi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
lea ecx, [ebp - 0x50]
call fcn.00458fc3
mov ecx, dword [ebp - 0x10]
jmp 0x584098
cmp esi, 0x10
jne 0x584108
push dword [ebp + 0x10]
lea ecx, [ebp + 0x10]
call fcn.0040d2ee
push ecx
lea eax, [ebp + 0x10]
mov dword [ebp - 4], 0x1f
mov ecx, esp
push eax
call fcn.0040d36e
call fcn.004566a0
pop ecx
mov ecx, eax
call fcn.00456635
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x584108
call fcn.00407965
jmp 0x584108
call fcn.00583020
test eax, eax
je 0x584108
xor ebx, ebx
cmp esi, 0xc
mov esi, dword [ebp + 0x10]
sete bl
mov dword [ebp + 0x10], esi
test esi, esi
je 0x5840c9
lock inc dword [esi + 4]
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 0x12
call fcn.0041d42a
lea eax, [ebp + 0x10]
mov byte [ebp - 4], 0x13
push eax
call fcn.0042b636
push ebx
lea eax, [ebp - 0x44]
push eax
lea ecx, [edi + 0x421c]
call fcn.0055ca05
lea ecx, [ebp - 0x44]
call fcn.0041d45d
test esi, esi
je 0x584108
mov ecx, esi
call fcn.00416ed3
xor eax, eax
call fcn.004db459
ret 0x10