Function at 0x4559a0
Capabilities:
Delete registry key
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x619108
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x80
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
push 0x62cef0
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.0051a06d
call fcn.00416f80
lea eax, [ebp - 0x54]
push eax
call fcn.0051ef2f
mov eax, dword [eax]
push eax
mov dword [ebp - 4], ebx
call fcn.0046aa10
mov eax, dword [ebp - 0x54]
or edi, 0xffffffff
add esp, 0x10
cmp eax, 0x6575cc
mov dword [ebp - 4], edi
je 0x455a0f
push eax
call fcn.005f7371
add esp, 4
call fcn.0046a490
push eax
call fcn.00419070
mov ecx, dword [ebp + 0x10]
add esp, 4
push 0x631760
call fcn.005243fc
test al, al
jne 0x455a3e
push 0x4195b0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
call fcn.004182e0
call fcn.00455430
push 0x4557e0
call fcn.005faf2a
call fcn.00462080
call fcn.004f8930
mov ecx, dword [ebp + 8]
push 0x418870
mov dword [0x6b48a8], ecx
call fcn.00524315
push str.Main_thread
call fcn.005242ef
add esp, 0xc
call fcn.0052a613
push 0x627b24
push 0x6b
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
cmp esi, ebx
je 0x455abe
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
je 0x455abe
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
test ebx, ebx
je 0x455abe
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push eax
push ebx
push 0
call fcn.0052a9b3
add esp, 0xc
mov ecx, dword [ebp + 0x10]
push str.console
call fcn.005243fc
test al, al
je 0x455b68
push 1
push 0
push 0x6af32c
mov byte [0x6b3f04], 1
call fcn.00520f3a
add esp, 0xc
mov esi, 0x6575cc
push str.VirtualDub_CLI_Video_Processor_Version__v_s__build__b__c__for__p
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
call fcn.004039e0
lea edx, [ebp - 0x3c]
push edx
mov dword [ebp - 4], 1
call fcn.0046a750
lea eax, [ebp - 0x3c]
push eax
push 0
call fcn.00520d92
push section..const
push 1
lea ecx, [ebp - 0x54]
push str.Copyright__C__Avery_Lee_1998_2009._Licensed_under_GNU_General_Public_License_n
push ecx
call fcn.0051c148
push eax
push 0
mov byte [ebp - 4], 2
call fcn.00520d92
mov eax, dword [ebp - 0x54]
add esp, 0x24
cmp eax, esi
je 0x455b55
push eax
call fcn.005f7371
add esp, 4
mov eax, dword [ebp - 0x3c]
cmp eax, esi
mov dword [ebp - 4], edi
je 0x455b68
push eax
call fcn.005f7371
add esp, 4
mov edx, dword fs:[0x2c]
mov eax, dword [0x6d2d2c]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0xa4]
mov edx, ecx
and edx, 0xf
lea edx, [eax + edx*8 + 0x24]
add ecx, 1
mov dword [eax + 0xa4], ecx
mov dword [edx], str.._sourceInit.cpp
mov dword [edx + 4], 0x1a5
call sub.AVIFIL32.dll_AVIFileInit
mov edi, dword [ebp + 0x10]
push str.resetall
mov ecx, edi
call fcn.005243fc
mov bl, al
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 0x11], bl
call fcn.0051ef2f
mov eax, dword [eax]
push str.VirtualDub.ini
push eax
lea ecx, [ebp - 0x30]
push ecx
mov dword [ebp - 4], 3
call fcn.0051ed82
add esp, 0x10
mov eax, dword [ebp - 0x60]
cmp eax, 0x6575cc
mov byte [ebp - 4], 5
je 0x455bf3
push eax
call fcn.005f7371
add esp, 4
push str.portable
mov ecx, edi
call fcn.005243fc
test al, al
jne 0x455c30
mov edx, dword [ebp - 0x30]
push edx
call fcn.0051e6f4
add esp, 4
test al, al
jne 0x455c30
test bl, bl
je 0x455d8e
push str.SoftwareVirtualDub.orgVirtualDub
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
jmp 0x455d8e
mov edx, dword [ebp - 0x30]
mov eax, dword [0x6af328]
mov ecx, dword [0x6af320]
mov esi, dword [ebp - 0x2c]
sub eax, ecx
sub esi, edx
sar eax, 1
sar esi, 1
cmp eax, esi
mov ebx, edx
jae 0x455c61
push eax
push esi
mov ecx, 0x6af320
call fcn.00518d09
mov ecx, dword [0x6af320]
cmp ecx, 0x6575cc
je 0x455c88
add esi, esi
push esi
push ebx
push ecx
call fcn.005f7b00
mov eax, dword [0x6af320]
add esp, 0xc
add esi, eax
mov dword [0x6af324], esi
mov word [esi], 0
push 0x24
call fcn.005f7f03
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
mov byte [ebp - 4], 6
je 0x455ca6
mov ecx, eax
call fcn.00523b8b
jmp 0x455ca8
xor eax, eax
push eax
mov byte [ebp - 4], 5
mov dword [0x6b3f14], eax
call fcn.0051ae5b
add esp, 4
cmp byte [ebp - 0x11], 0
jne 0x455d8e
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0051e6f4
add esp, 4
test al, al
je 0x455d8e
mov edx, dword [ebp - 0x30]
push edx
mov byte [ebp - 4], 7
call fcn.005d5290
add esp, 4
mov dword [ebp - 4], 5
jmp 0x455d8e
mov eax, dword [ebp - 0x30]
cmp eax, 0x6575cc
je 0x455d5e
push eax
call fcn.005f7371
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.SoftwareVirtualDub.orgVirtualDub_
call fcn.0051b3f9
add esp, 4
push 0
push 0
push str.Preferences
lea ecx, [ebp - 0x1c]
call fcn.0051b39f
push 0
mov ebx, 1
push str.Use_profile_local_path
mov ecx, eax
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x18], ebx
call fcn.0051afda
test al, al
jne 0x455dff
push ebx
push 0
push str.Preferences
lea ecx, [ebp - 0x20]
call fcn.0051b39f
push 0
mov ebx, 3
push str.Use_profile_local_path
mov ecx, eax
mov dword [ebp - 4], 0xb
mov dword [ebp - 0x18], ebx
call fcn.0051afda
test al, al
mov byte [ebp - 0x11], 0
je 0x455e03
mov byte [ebp - 0x11], 1
test bl, 2
mov dword [ebp - 4], 0xa
je 0x455e1d
and ebx, 0xfffffffd
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], ebx
call fcn.0051aec7
test bl, 1
mov dword [ebp - 4], 5
je 0x455e31
lea ecx, [ebp - 0x1c]
call fcn.0051aec7
push str.useprofile
mov ecx, edi
call fcn.005243fc
push str.nouseprofile
mov ecx, edi
mov bl, al
call fcn.005243fc
test bl, bl
jne 0x455e62
test al, al
jne 0x455e58
cmp byte [ebp - 0x11], al
jne 0x455e62
xor bl, bl
mov byte [ebp - 0x20], bl
jmp 0x455f17
lea eax, [ebp - 0x54]
mov bl, 1
push eax
mov byte [ebp - 0x20], bl
call fcn.0046aa20
mov ecx, dword [ebp - 0x54]
push str.virtualdub.org
push ecx
lea edx, [ebp - 0x48]
push edx
mov byte [ebp - 4], 0xc
call fcn.0051ed82
mov eax, dword [ebp - 0x48]
push 0x631474
push eax
lea ecx, [ebp - 0x3c]
push ecx
mov byte [ebp - 4], 0xd
call fcn.0051ed82
mov edx, dword [ebp - 0x3c]
push edx
mov byte [ebp - 4], 0xe
call fcn.0051e6f4
add esp, 0x20
test al, al
jne 0x455ec5
mov eax, dword [ebp - 0x48]
push eax
call fcn.0051eae3
mov ecx, dword [ebp - 0x3c]
push ecx
call fcn.0051eae3
add esp, 8
mov edx, dword [ebp - 0x3c]
push edx
call fcn.0046aa10
mov eax, dword [ebp - 0x3c]
push eax
call fcn.00419070
mov eax, dword [ebp - 0x3c]
add esp, 8
cmp eax, 0x6575cc
je 0x455eed
push eax
call fcn.005f7371
add esp, 4
mov eax, dword [ebp - 0x48]
cmp eax, 0x6575cc
je 0x455f00
push eax
call fcn.005f7371
add esp, 4
mov eax, dword [ebp - 0x54]
cmp eax, 0x6575cc
mov byte [ebp - 4], 5
je 0x455f17
push eax
call fcn.005f7371
add esp, 4
cmp bl, byte [ebp - 0x11]
je 0x455f4e
push 0
push 1
push str.Preferences
lea ecx, [ebp - 0x1c]
call fcn.0051b39f
mov ecx, dword [ebp - 0x20]
push ecx
push str.Use_profile_local_path
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call fcn.0051aeda
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.0051aec7
call fcn.005277b8
call fcn.0046fb70
push 0
push 1
push str.Preferences
lea ecx, [ebp - 0x18]
call fcn.0051b39f
push 0
push str.Edit:_Video_error_mode
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x10
call fcn.0051b006
cmp eax, 3
jae 0x455f86
mov dword [0x6b50ec], eax
push 0
push str.Edit:_Audio_error_mode
lea ecx, [ebp - 0x18]
call fcn.0051b006
cmp eax, 3
jae 0x455f9f
mov dword [0x6b50f0], eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.0051aec7
push str.safecpu
mov ecx, edi
call fcn.005243fc
test al, al
jne 0x455fc0
call fcn.00455340
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x48], str.._sourceInit.cpp
mov dword [ebp - 0x44], 0x1f1
mov dword [ebp - 0x40], str.autoloading_filters_at_startup
call fcn.0040bc60
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0x11
call fcn.0051ef2f
mov ecx, dword [ebp - 0x48]
push str.plugins
push ecx
lea edx, [ebp - 0x6c]
mov bl, 0x12
push edx
mov byte [ebp - 4], bl
call fcn.0051ed82
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x1c]
push edx
push eax
mov byte [ebp - 4], 0x13
call fcn.0046c4b0
mov eax, dword [ebp - 0x6c]
add esp, 0x1c
cmp eax, 0x6575cc
mov byte [ebp - 4], bl
je 0x456033
push eax
call fcn.005f7371
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
push str.plugins32
push eax
lea ecx, [ebp - 0x78]
push ecx
call fcn.0051ed82
lea edx, [ebp - 0x20]
push edx
lea ecx, [ebp - 0x1c]
push ecx
push eax
mov byte [ebp - 4], 0x14
call fcn.0046c4b0
mov eax, dword [ebp - 0x78]
add esp, 0x18
cmp eax, 0x6575cc
je 0x456073
push eax
call fcn.005f7371
add esp, 4
add esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
add ebx, dword [ebp - 0x20]
cmp eax, 0x6575cc
mov dword [ebp - 0x18], esi
je 0x45608f
push eax
call fcn.005f7371
add esp, 4
mov edx, dword [ebp - 0x88]
push edx
mov byte [ebp - 4], 5
mov dword [ebp - 0x8c], 0x627c10
call dword [0x6affb8]
add esp, 4
call fcn.005000f0
call fcn.005098e0
call fcn.00506970
call fcn.004e4020
call fcn.0042da50
call fcn.00458310
test al, al
je 0x455d4b
mov eax, dword fs:[0x2c]
mov ecx, dword [0x6d2d2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0xa4]
mov edx, eax
add eax, 1
mov dword [esi + 0xa4], eax
mov eax, dword [ebp + 8]
and edx, 0xf
lea ecx, [esi + edx*8 + 0x24]
push eax
mov dword [ecx], str.._sourceInit.cpp
mov dword [ecx + 4], 0x20f
call fcn.00455490
add esp, 4
test al, al
je 0x455d4b
call fcn.0044e270
call fcn.004113f0
push 1
push 0
call fcn.004605e2
add esp, 8
call fcn.0058c730
push 0x6313e8
mov ecx, edi
call fcn.005243fc
test al, al
je 0x456150
mov edi, 7
jmp 0x456168
push 0x6313e0
mov ecx, edi
call fcn.005243fc
test al, al
mov edi, 3
jne 0x456168
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push str.topmost
call fcn.005243fc
mov ecx, dword [ebp + 8]
push eax
push edi
push ecx
call fcn.004555c0
add esp, 0xc
test al, al
je 0x455d4b
mov eax, dword [esi + 0xa4]
mov edx, eax
and edx, 0xf
add eax, 1
test ebx, ebx
lea ecx, [esi + edx*8 + 0x24]
mov dword [esi + 0xa4], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx], str.._sourceInit.cpp
mov dword [ecx + 4], 0x22a
je 0x4561d0
push ebx
push eax
push 0xff
push str.Autoloaded__d_filter_s____d_failed_._Check_the_log_for_details.
call fcn.0044cd70
add esp, 0x10
jmp 0x4561e7
test eax, eax
je 0x4561e7
push eax
push 0xff
push str.Autoloaded__d_filter_s_.
call fcn.0044cd70
add esp, 0xc
call fcn.00410ff0
mov eax, dword [esi + 0xa4]
mov ecx, eax
add eax, 1
mov dword [esi + 0xa4], eax
mov eax, dword [0x6b3f08]
and ecx, 0xf
test eax, eax
lea ecx, [esi + ecx*8 + 0x24]
mov dword [ecx], str.._sourceInit.cpp
mov dword [ecx + 4], 0x236
je 0x45621f
call eax
mov eax, dword [ebp - 0x30]
cmp eax, 0x6575cc
je 0x456232
push eax
call fcn.005f7371
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret