Function at 0x402f80
Capabilities:
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
mov eax, dword [0x43c040]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push edi
mov edi, ecx
push 0x321
push dword [edi + 8]
call ebx
push 0x5dd
push dword [edi + 8]
mov dword [ebp - 0x2f4], eax
call ebx
push 0x3b7
push dword [edi + 8]
mov dword [ebp - 0x300], eax
call ebx
push 0x322
push dword [edi + 8]
mov dword [ebp - 0x2fc], eax
call ebx
push 0x323
push dword [edi + 8]
mov dword [ebp - 0x304], eax
call ebx
push 0x326
push dword [edi + 8]
mov dword [ebp - 0x2f0], eax
call ebx
push 0x327
push dword [edi + 8]
mov esi, eax
call ebx
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2f8], ebx
cmp eax, 0x14
ja case.0x40301f.4
movzx ecx, byte [eax + 0x403b70]
jmp dword [ecx*4 + 0x403b50]
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
call esi
push 0
push ebx
call esi
mov ecx, dword [edi + 0x18]
push str.Loading_video_information...
call fcn.00411640
push eax
push 0x321
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 5
push dword [ebp - 0x2f4]
call esi
mov esi, dword [sym.imp.USER32.dll_SetMenuItemInfoW]
lea eax, [ebp - 0x3c]
push eax
push 0
push 0x5dc
push dword [edi + 0x1730]
mov dword [ebp - 0x3c], 0x30
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x30], 3
call esi
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0x30
push eax
push 0
push 0x70b
push dword [edi + 0x1730]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x30], 3
call esi
jmp case.0x40301f.4
mov eax, dword [edi + 0xa364]
test eax, eax
je 0x403b3a
cmp dword [edi + 0x88], 3
jge 0x403b3a
cmp eax, 1
jne 0x403498
mov ecx, edi
call fcn.00407520
mov eax, dword [edi + 0x9c]
cmp word [eax], 0
je 0x403242
push str.best
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x403242
mov esi, dword [sym.imp.SHLWAPI.dll_StrStrW]
xor eax, eax
push 0x434788
push dword [edi + 0x9c]
mov dword [edi + 0xa360], 0
mov dword [ebp - 0x308], eax
call esi
push str.audio
push dword [edi + 0x9c]
mov ebx, eax
mov dword [ebp - 0x2f0], ebx
call esi
mov dword [ebp - 0x30c], eax
test ebx, ebx
jne 0x403152
test eax, eax
je 0x403242
push ecx
push dword [edi + 0x9c]
mov edx, 0x40
push ecx
lea ecx, [ebp - 0x8c]
call fcn.00401190
mov esi, dword [sym.imp.SHLWAPI.dll_StrChrW]
lea eax, [ebp - 0x8c]
push 0x2b
push eax
call esi
test eax, eax
je 0x403242
add eax, 2
push 0x2b
push eax
mov dword [ebp - 0x2f8], eax
call esi
test eax, eax
je 0x4031aa
xor ecx, ecx
mov word [eax], cx
add eax, 2
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntW]
mov dword [ebp - 0x308], eax
xor ebx, ebx
cmp dword [edi + 0x1758], ebx
jbe 0x403242
mov ecx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
lea esi, [edi + 0x1960]
mov eax, dword [ebp - 0x2f0]
nop word [eax + eax]
test eax, eax
je 0x4031fb
test byte [esi], 2
je 0x4031fb
push dword [ebp - 0x2f8]
lea eax, [esi - 0x100]
push eax
call ecx
test eax, eax
jne 0x40321f
mov eax, dword [ebp - 0x308]
test eax, eax
je 0x40323c
cmp dword [esi + 4], eax
jmp 0x40321d
cmp dword [ebp - 0x30c], 0
je 0x40322b
mov eax, dword [esi]
and al, 3
cmp al, 1
jne 0x403225
push dword [ebp - 0x2f8]
lea eax, [esi - 0x100]
push eax
call ecx
test eax, eax
je 0x40323c
mov ecx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov eax, dword [ebp - 0x2f0]
inc ebx
add esi, 0x220
cmp ebx, dword [edi + 0x1758]
jb 0x4031d0
jmp 0x403242
mov dword [edi + 0xa360], ebx
mov ecx, edi
call fcn.00406540
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [ebp - 0x2f4]
call esi
push 5
push dword [ebp - 0x2fc]
call esi
push 5
push dword [ebp - 0x300]
call esi
push 5
push dword [ebp - 0x304]
call esi
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 5
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [edi + 0x1754]
push ecx
mov ecx, edi
call fcn.0040a0a0
test eax, eax
jne 0x4032d3
lea eax, [edi + 0x34]
push eax
push 0
push edi
push 0x402c80
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x28], eax
cmp dword [edi + 0xa36c], 0
mov eax, dword [edi + 8]
jne 0x4032f0
push dword [edi + 0x173c]
push 0x5dc
push eax
jmp 0x403492
push 0xffffffffffffffeb
push 0x5dc
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je 0x403327
cmp dword [eax + 0x3c], 1
je 0x403327
mov dword [eax + 0x3c], 1
mov eax, dword [eax]
test eax, eax
je 0x403327
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [edi + 0x18]
push str.Playlist
call fcn.00411640
push ecx
push eax
push ecx
mov esi, 0x104
lea ecx, [ebp - 0x2a4]
mov edx, esi
call fcn.00401190
mov ecx, esi
lea eax, [ebp - 0x2a4]
cmp word [eax], 0
je 0x40335f
add eax, 2
sub ecx, 1
jne 0x403351
mov eax, esi
mov ebx, ecx
sub eax, ecx
neg ebx
sbb ebx, ebx
and ebx, eax
test ecx, ecx
je 0x403388
push ecx
push 0x434140
push ecx
mov edx, esi
lea ecx, [ebp - 0x2a4]
sub edx, ebx
lea ecx, [ecx + ebx*2]
call fcn.00401190
push 0xa
push 0x20
lea eax, [ebp - 0x4c]
push eax
push dword [edi + 0xa36c]
call fcn.0041eff8
add esp, 0x10
lea eax, [ebp - 0x2a4]
mov ecx, esi
cmp word [eax], 0
je 0x4033b4
add eax, 2
sub ecx, 1
jne 0x4033a6
mov eax, esi
mov ebx, ecx
sub eax, ecx
neg ebx
sbb ebx, ebx
and ebx, eax
test ecx, ecx
je 0x4033dc
push ecx
lea eax, [ebp - 0x4c]
mov edx, esi
push eax
push ecx
lea ecx, [ebp - 0x2a4]
sub edx, ebx
lea ecx, [ecx + ebx*2]
call fcn.00401190
cmp dword [edi + 0x1740], 0
jne 0x4033f2
cmp dword [edi + 0x173c], 0
je 0x403483
mov ecx, esi
lea eax, [ebp - 0x2a4]
nop word [eax + eax]
cmp word [eax], 0
je 0x40340e
add eax, 2
sub ecx, 1
jne 0x403400
mov eax, esi
mov ebx, ecx
sub eax, ecx
neg ebx
sbb ebx, ebx
and ebx, eax
test ecx, ecx
je 0x403437
push ecx
push 0x434148
push ecx
mov edx, esi
lea ecx, [ebp - 0x2a4]
sub edx, ebx
lea ecx, [ecx + ebx*2]
call fcn.00401190
mov ebx, dword [edi + 0x1740]
test ebx, ebx
jne 0x403447
mov ebx, dword [edi + 0x173c]
mov ecx, esi
lea eax, [ebp - 0x2a4]
nop
cmp word [eax], 0
je 0x40345e
add eax, 2
sub ecx, 1
jne 0x403450
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x403483
push ecx
push ebx
push ecx
sub esi, edx
lea ecx, [ebp - 0x2a4]
lea ecx, [ecx + edx*2]
mov edx, esi
call fcn.00401190
lea eax, [ebp - 0x2a4]
push eax
push 0x5dc
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov eax, dword [edi + 0x8c]
cmp eax, 3
jl 0x403b3a
cmp eax, 5
jl 0x4034d5
cmp eax, 0x14
je 0x4034d5
push 0
push eax
push 0x8008
push dword [edi + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 4
push 0x322
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
push 0x322
push 0x111
push dword [edi + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 4
mov ecx, eax
cmp dword [edi + 0x88], ecx
jg 0x403b3a
cmp dword [edi + 0xa364], 0
jne 0x403570
cmp word [edi + 0x1530], 0
jne 0x40354b
mov ecx, dword [edi + 0x18]
push str.Unable_to_load_video_information
call fcn.00411640
push ecx
push eax
push ecx
mov edx, 0x100
lea ecx, [edi + 0x1530]
call fcn.00401190
push 0
push 0x14
push 0x8008
push dword [edi + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x30], 0
push eax
push 0
push 0x70b
jmp 0x403b17
cmp dword [edi + 0xa36c], 0
je 0x4035c9
push 0xffffffffffffffeb
push 0x5dc
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je 0x4035c9
cmp dword [eax + 0x3c], 0
je 0x4035c9
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je 0x4035c9
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
call esi
push 0
push ebx
call esi
push 0
push dword [ebp - 0x2fc]
call esi
push 0
push dword [ebp - 0x300]
call esi
push 5
push dword [ebp - 0x2f4]
call esi
push 5
push dword [ebp - 0x304]
call esi
cmp dword [edi + 0x1748], 0
jne 0x403628
cmp dword [edi + 0x1754], 0
jne 0x403649
push str.:stream
push dword [edi + 0x1738]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x403649
mov ecx, dword [edi + 0x18]
push str.Stop
call fcn.00411640
push eax
push 0x322
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
jmp case.0x40301f.4
push 5
push dword [ebp - 0x2f0]
call esi
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 5
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [edi + 0x18]
push str.Cancel
call fcn.00411640
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
push eax
push 0x323
push dword [edi + 8]
call esi
mov ecx, dword [edi + 0x18]
push str.Pause
call fcn.00411640
push eax
push 0x322
push dword [edi + 8]
call esi
jmp case.0x40301f.4
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [ebp - 0x2f4]
call ebx
cmp word [edi + 0x1530], 0
je 0x403718
cmp word [edi + 0x328], 0
lea eax, [edi + 0x328]
je 0x40354b
lea ecx, [ebp - 0x2ec]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x40354b
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
test byte [ebp - 0x2ec], 0x10
jne 0x40354b
cmp word [edi + 0x328], 0
lea eax, [edi + 0x328]
mov esi, dword [sym.imp.USER32.dll_GetWindowLongW]
je 0x403798
push ecx
push eax
push ecx
mov edx, 0x104
lea ecx, [ebp - 0x2a4]
call fcn.00401190
lea eax, [ebp - 0x2a4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
push 0xffffffffffffffeb
push 0x5dc
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call esi
test eax, eax
je 0x403783
cmp dword [eax + 0x3c], 1
je 0x403783
mov dword [eax + 0x3c], 1
mov eax, dword [eax]
test eax, eax
je 0x403783
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [ebp - 0x2a4]
push eax
push 0x5dc
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0xffffffffffffffeb
push 0x5dd
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call esi
mov esi, eax
test esi, esi
je 0x4037f4
cmp dword [esi + 0x3c], 0
mov dword [esi + 0x4c], 0x6c6c6c
je 0x4037d6
mov eax, dword [esi]
mov dword [esi + 0x3c], 0
test eax, eax
je 0x4037d6
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esi + 0x40], 0
je 0x4037f4
mov eax, dword [esi]
mov dword [esi + 0x40], 0
test eax, eax
je 0x4037f4
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push 5
push dword [ebp - 0x2fc]
call ebx
push 5
push dword [ebp - 0x300]
call ebx
push 0
push dword [ebp - 0x2f0]
call ebx
mov ecx, dword [edi + 0x18]
push str.Play
call fcn.00411640
push eax
push 0x322
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov esi, dword [ebp - 0x304]
push 1
push esi
call dword [sym.imp.USER32.dll_EnableWindow]
push 5
push esi
call ebx
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 5
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x30], 0
jmp 0x403b0c
mov ecx, dword [edi + 0x18]
push str.The_file_might_have_been_moved_or_deleted
call fcn.00411640
lea ecx, [edi + 0x1530]
mov edx, 0x100
push ecx
push eax
push ecx
call fcn.00401190
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [ebp - 0x2fc]
call ebx
push 0
push dword [ebp - 0x300]
call ebx
push 0
push dword [ebp - 0x304]
call ebx
push 0
push dword [ebp - 0x2f0]
call ebx
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 5
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0xffffffffffffffeb
push 0x5dc
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je 0x403937
cmp dword [eax + 0x3c], 0
je 0x403937
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je 0x403937
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp word [edi + 0x1530], 0
lea ebx, [edi + 0x1530]
je 0x403ae0
push str.ERROR:_This_video_is_only_available_for_registered_users.
push ebx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x4039e4
push ecx
push str.ERROR:_This_video_is_only_available_for_registered_users.
push ecx
mov edx, 0x100
mov ecx, ebx
call fcn.00401190
mov ecx, 0x200
lea eax, [edi + 0xf30]
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x403980
mov ecx, 0x200
lea eax, [edi + 0x1130]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x403996
push 5
push esi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
call esi
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
mov eax, dword [sym.imp.USER32.dll_GetClientRect]
call eax
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push ecx
push 0
push 5
push dword [edi + 8]
call eax
jmp 0x403ae6
push str.__video_password
push ebx
lea esi, [edi + 0x1130]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x403a65
push ecx
push str.ERROR:_Password_required
push ecx
mov edx, 0x100
mov ecx, ebx
call fcn.00401190
mov eax, 0x200
mov byte [esi], 0
lea esi, [esi + 1]
sub eax, 1
jne 0x403a12
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [ebp - 0x2f8]
call esi
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
mov eax, dword [sym.imp.USER32.dll_GetClientRect]
call eax
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push ecx
push 0
push 5
push dword [edi + 8]
call eax
jmp 0x403ae6
cmp word [esi], 0
je 0x403ae0
push str.ERROR:_Wrong
push ebx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x403ae0
push ecx
push ebx
push ecx
mov edx, 0x100
mov ecx, ebx
call fcn.00401190
mov eax, 0x200
nop
mov byte [esi], 0
lea esi, [esi + 1]
sub eax, 1
jne 0x403a90
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [ebp - 0x2f8]
call esi
lea eax, [ebp - 0x9c]
push eax
push dword [edi + 8]
mov eax, dword [sym.imp.USER32.dll_GetClientRect]
call eax
movzx ecx, word [ebp - 0x90]
movzx eax, word [ebp - 0x94]
shl ecx, 0x10
or ecx, eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push ecx
push 0
push 5
push dword [edi + 8]
call eax
jmp 0x403ae6
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [edi + 0x1530]
push eax
push 0x321
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 5
push dword [ebp - 0x2f4]
call esi
mov dword [ebp - 0x30], 3
lea eax, [ebp - 0x3c]
push eax
push 0
push 0x5dc
push dword [edi + 0x1730]
mov dword [ebp - 0x3c], 0x30
mov dword [ebp - 0x38], 1
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov ebx, dword [ebp + 8]
mov dword [edi + 0x88], ebx
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041bbdc
mov esp, ebp
pop ebp
ret 4