Function at 0x403f40
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45d4d8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
mov dword [ebp - 0x14], 0
push 0x461656
mov ecx, 0x4b0ca8
mov dword [ebp - 4], 0
call fcn.00428fd0
cmp byte [0x4af539], 0
jne 0x403f86
call fcn.004031f0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi]
mov ecx, dword [eax]
call fcn.00428750
mov ecx, dword [esi]
mov ebx, eax
lea eax, [ebp - 0x14]
push eax
push str.CurrentURI
call fcn.00408d60
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x4045ec
mov dword [section..data], 0
test ecx, ecx
je 0x403fc7
mov edi, ecx
mov dword [ebp + 8], ecx
jmp 0x403fcf
mov edi, 0x4b4542
mov dword [ebp + 8], edi
mov dword [0x4af520], 0
test edi, edi
je 0x4045ec
cmp byte [edi], 0
jne 0x403fed
xor esi, esi
jmp 0x4045ef
push 0x3e8
push dword [0x4b0a68]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 1
mov ecx, ebx
call fcn.0040c490
mov dword [ebp - 0x18], 0
mov ecx, dword [esi]
lea eax, [ebp - 0x18]
push eax
push str.CurrentURIMetaData
mov byte [ebp - 4], 1
call fcn.00408d60
push 0x461656
lea ecx, [ebp - 0x28]
call fcn.00428ee0
push 0
push 0
push 0xf0
push 0x70
push dword [0x4b0a74]
mov byte [ebp - 4], 2
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov ecx, dword [ebp - 0x18]
mov esi, eax
mov dword [ebp - 0x24], esi
test ecx, ecx
je 0x404380
cmp dword [ecx - 8], 0
je 0x404380
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x3c], 1
lea eax, [ebp - 0x48]
push eax
push ecx
mov byte [ebp - 4], 3
call fcn.0040f500
add esp, 8
test eax, eax
jne 0x404374
mov eax, dword [ebp - 0x48]
cmp dword [eax + 4], 0
mov edi, dword [eax + 8]
jbe 0x404371
mov edi, dword [edi + 8]
test edi, edi
je 0x404371
mov eax, dword [edi + 0xd4]
lea ecx, [ebp - 0x20]
mov eax, dword [eax + 0x3c]
imul eax, eax, 0x3e8
mov dword [0x4af520], eax
mov eax, dword [edi + 0xd4]
add eax, 0xc
push eax
call fcn.00428ea0
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 4
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x4040ec
mov dword [ebp - 0x1c], 0x4b4542
test esi, esi
je 0x40435c
cmp dword [edi + 0x9c], 0
jbe 0x404138
mov eax, dword [edi + 0xa0]
add eax, 8
push eax
lea ecx, [ebp - 0x30]
call fcn.004011d0
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x40411b
mov ecx, 0x4b4542
mov edx, 0x4b16c0
sub edx, ecx
mov al, byte [ecx]
mov byte [ecx + edx], al
lea ecx, [ecx + 1]
test al, al
jne 0x404122
lea ecx, [ebp - 0x30]
call fcn.004012c0
jmp 0x40413f
mov byte [0x4b16c0], 0
mov edx, dword [edi + 0x18]
test edx, edx
jne 0x40414b
mov edx, 0x4b4542
lea ecx, [ebp - 0x78]
call fcn.004056a0
push eax
mov ecx, 0x4a5164
call fcn.004012f0
lea ecx, [ebp - 0x78]
call fcn.00401290
push 0x4a5164
call fcn.00406380
mov edx, dword [edi + 0x20]
add esp, 4
test edx, edx
jne 0x40417f
mov edx, 0x4b4542
lea ecx, [ebp - 0x78]
call fcn.004056a0
push eax
mov ecx, 0x4a5194
call fcn.004012f0
lea ecx, [ebp - 0x78]
call fcn.00401290
push 4
push 0
lea eax, [ebp - 0x78]
push eax
mov ecx, 0x4a5194
call fcn.004063f0
push eax
mov ecx, 0x4a5194
call fcn.004012f0
lea ecx, [ebp - 0x78]
call fcn.00401290
push 0x4a5194
call fcn.00406380
mov edx, dword [edi + 0x64]
add esp, 4
test edx, edx
jne 0x4041d8
mov edx, 0x4b4542
lea ecx, [ebp - 0x78]
call fcn.004056a0
push eax
mov ecx, 0x4a517c
call fcn.004012f0
lea ecx, [ebp - 0x78]
call fcn.00401290
push 0x4a517c
call fcn.00406380
add esp, 4
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
push 0x461656
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.00428fd0
cmp dword [edi + 0x24], 0
mov esi, dword [edi + 0x28]
jbe 0x404240
add esi, 8
push esi
lea ecx, [ebp - 0x38]
call fcn.00428fa0
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x34]
call fcn.00428fa0
mov edx, dword [ebp - 0x38]
test edx, edx
jne 0x40424c
mov edx, 0x4b4542
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404251
sub ecx, esi
je 0x404286
lea ecx, [ebp - 0x78]
call fcn.004056a0
push eax
mov ecx, 0x4a51ac
call fcn.004012f0
lea ecx, [ebp - 0x78]
call fcn.00401290
push 0x4a51ac
call fcn.00406380
add esp, 4
jmp 0x404295
push 0x46b384
mov ecx, 0x4a51ac
call fcn.00401330
mov eax, dword [edi + 0xc0]
mov esi, dword [str.audio_mpegurl]
push 0x46b384
mov ecx, 0x4a51c4
mov dword [0x4b0eb8], eax
xor edi, edi
call fcn.00401330
test esi, esi
je 0x40430a
mov edx, dword [ebp - 0x1c]
mov edi, edi
mov eax, edx
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x4042e2
test cl, cl
je 0x4042de
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x4042e2
add eax, 2
add esi, 2
test cl, cl
jne 0x4042c2
xor eax, eax
jmp 0x4042e7
sbb eax, eax
or eax, 1
test eax, eax
je 0x4042f9
mov esi, dword [edi*4 + 0x4a5014]
inc edi
test esi, esi
jne 0x4042c0
jmp 0x40430a
push dword [edi*4 + 0x4a5098]
mov ecx, 0x4a51c4
call fcn.00401330
push 0x46b384
push 0x4a51c4
call section..text
add esp, 8
test al, al
je 0x40432f
push str..mp3
mov ecx, 0x4a51c4
call fcn.00401330
mov edi, dword [ebp + 8]
mov edx, 0x4b0ec0
mov ecx, edi
sub edx, edi
jmp 0x404340
mov al, byte [ecx]
mov byte [ecx + edx], al
lea ecx, [ecx + 1]
test al, al
jne 0x404340
lea ecx, [ebp - 0x38]
call fcn.004012c0
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
jmp 0x40435f
mov edi, dword [ebp + 8]
test eax, eax
je 0x404374
add eax, 0xfffffff8
push eax
call fcn.00447dbf
add esp, 4
jmp 0x404374
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00426db0
push edi
mov ecx, 0x4b0ca8
call fcn.00428fd0
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.0040f290
add esp, 8
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 6
test eax, eax
jne 0x4043a9
mov eax, 0x4b4542
push eax
push str.RelativeTimePosition
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4043c2
mov eax, 0x4b4542
push eax
push str.AbsoluteTimePosition
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4043db
mov eax, 0x4b4542
push eax
push str.CurrentTrackDuration
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4043f4
mov eax, 0x4b4542
push eax
push str.CurrentMediaDuration
mov ecx, ebx
call fcn.0040e570
push 0x46170c
push str.NumberOfTracks
mov ecx, ebx
call fcn.0040e570
push 0x46170c
push str.CurrentTrack
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x40442f
mov eax, 0x4b4542
push eax
push str.AVTransportURI
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x404448
mov eax, 0x4b4542
push eax
push str.CurrentTrackURI
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x404461
mov eax, 0x4b4542
push eax
push str.AVTransportURIMetaData
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x40447a
mov eax, 0x4b4542
push eax
push str.CurrentTrackMetadata
mov ecx, ebx
call fcn.0040e570
mov eax, 0x10624dd3
imul dword [0x4af520]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea eax, [ebp + 8]
push eax
call fcn.0040f290
add esp, 8
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 7
call fcn.00428fa0
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 6
test eax, eax
je 0x4044cd
add eax, 0xfffffff8
push eax
call fcn.00447dbf
add esp, 4
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4044d9
mov eax, 0x4b4542
push eax
push str.CurrentTrackDuration
mov ecx, ebx
call fcn.0040e570
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4044f2
mov eax, 0x4b4542
push eax
push str.CurrentMediaDuration
mov ecx, ebx
call fcn.0040e570
push 0x461656
push str.NextAVTransportURI
mov ecx, ebx
call fcn.0040e570
push 0x461656
push str.NextAVTransportURIMetaData
mov ecx, ebx
call fcn.0040e570
mov edx, dword [0x4b0ca8]
test edx, edx
jne 0x404530
mov edx, 0x4b4542
lea ecx, [ebp - 0x60]
call fcn.004056a0
mov eax, dword [0x4af520]
dec eax
mov byte [ebp - 4], 8
cmp eax, 0x112a87e
ja 0x40456b
test esi, esi
je 0x40456b
push 0
push 0
push 0
push 0x401fe0
push 0
push 0
call fcn.004487c4
add esp, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push reloc.WS2_32.dll_accept
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
push 0
mov ecx, ebx
call fcn.0040c490
push dword [0x4b0a68]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor esi, esi
cmp dword [ebp - 0x4c], 8
jb 0x40459e
push dword [ebp - 0x60]
call fcn.00447dbf
add esp, 4
xor eax, eax
mov word [ebp - 0x60], ax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x4c], 7
mov dword [ebp - 0x50], esi
test eax, eax
je 0x4045c1
add eax, 0xfffffff8
push eax
call fcn.00447dbf
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4045d4
add eax, 0xfffffff8
push eax
call fcn.00447dbf
add esp, 4
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4045e7
add eax, 0xfffffff8
push eax
call fcn.00447dbf
add esp, 4
mov ecx, dword [ebp - 0x14]
jmp 0x4045ef
or esi, 0xffffffff
test ecx, ecx
je 0x4045ff
add ecx, 0xfffffff8
push ecx
call fcn.00447dbf
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4