Function at 0x420280
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x220
push ebx
push ebp
push esi
push edi
push str.RSCRIPT
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x4202b7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x220
ret 0x10
push str.RSCRIPT
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0x10
mov dword [0x4a2db4], eax
call fcn.0046335e
mov esi, eax
add esp, 4
test esi, esi
je 0x4202fc
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ecx, esi
mov edi, eax
mov dword [esi], 0x4783a8
call fcn.0045bc90
push edi
mov ecx, esi
call fcn.0045bcf0
mov ebx, esi
jmp 0x4202fe
xor ebx, ebx
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.vorbis.acm
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [esp + 0x14], eax
je 0x420338
push str.DriverProc
push eax
call edi
mov esi, eax
test esi, esi
jne 0x42033c
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esp + 0x14], esi
jmp 0x42033c
mov esi, dword [esp + 0x24]
push str.RSDebuger.dll
call ebp
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x18], eax
je 0x420390
push str.BeginDebug
push eax
call edi
push str.Notify
mov dword [0x4a2dc0], eax
mov ecx, dword [esp + 0x1c]
push ecx
call edi
mov ecx, dword [0x4a2dc0]
mov dword [0x4a2dc4], eax
cmp ecx, ebp
je 0x420379
cmp eax, ebp
jne 0x420390
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x4a2dc0], ebp
mov dword [0x4a2dc4], ebp
mov edi, dword [esp + 0x14]
cmp edi, ebp
je 0x4203b6
push 3
push ebp
push esi
lea eax, [esp + 0x30]
push edi
push eax
call sub.MSACM32.dll_acmDriverAddA
test eax, eax
je 0x4203b6
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esp + 0x14], ebp
mov ecx, 0x76b0
xor eax, eax
mov edi, 0x4852f0
push 0x4e20
rep stosd dword es:[edi], eax
mov ecx, 0x21c
mov edi, 0x4853c0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x265b
xor eax, eax
mov edi, 0x485c34
rep stosd dword es:[edi], eax
mov ecx, 0x265b
mov edi, 0x48f5a0
rep stosd dword es:[edi], eax
call fcn.00463c77
push 0x36b0
mov dword [0x4853b0], eax
call fcn.00463c77
push 0x36b0
mov dword [0x4853b4], eax
call fcn.00463c77
mov edi, dword [0x4853b0]
mov dword [0x4853b8], eax
mov ecx, 0x1388
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [0x4853b4]
mov ecx, 0xdac
rep stosd dword es:[edi], eax
mov edi, dword [0x4853b8]
mov ecx, 0xdac
add esp, 0xc
rep stosd dword es:[edi], eax
mov dword [0x4a2ba8], 0x4816a0
call fcn.00420e30
push 0x481950
mov ecx, ebx
call fcn.0045bea0
test eax, eax
je 0x420485
push 0x4a2bac
push 0x481950
mov ecx, ebx
call fcn.0045bec0
test eax, eax
jne 0x42049a
mov ecx, dword [0x4a2ba8]
add ecx, 0x57
push ecx
jmp 0x42048f
mov edx, dword [0x4a2ba8]
add edx, 0x57
push edx
push 0x4a2bac
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp ebx, ebp
je 0x4204a6
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov ecx, dword [0x4a2ba8]
add ecx, 0x81
push ecx
lea ecx, [esp + 0x2c]
call fcn.004496a0
lea edx, [esp + 0x12c]
mov edi, 0x476564
push str.saveconf
push edx
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edi
call fcn.00403e60
push eax
lea ecx, [esp + 0x20]
call fcn.00434100
mov ecx, dword [esp + 0x20]
cmp ecx, ebp
je 0x420536
mov eax, dword [ecx]
call dword [eax + 0x30]
cmp eax, ebp
je 0x420532
mov ecx, dword [esp + 0x20]
cmp ecx, ebp
je 0x420536
mov edx, dword [ecx]
push str.thmb
call dword [edx + 0x1c]
mov esi, eax
cmp esi, ebp
je 0x420532
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov dword [0x4a287c], eax
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x20]
mov dword [0x4a2880], eax
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov ecx, dword [esp + 0x20]
cmp ecx, ebp
mov dword [esp + 0x1c], edi
je 0x420544
mov edx, dword [ecx]
push 1
call dword [edx]
push 0x2c0
call fcn.0046335e
add esp, 4
cmp eax, ebp
je 0x42055e
mov ecx, eax
call fcn.00452070
jmp 0x420560
xor eax, eax
push 4
push ebp
push 0x6b
push 0x6b
push ebp
mov ecx, eax
mov dword [0x4852f0], eax
call fcn.00449850
mov ecx, dword [0x4852f0]
push 0x66
call fcn.00452b90
mov ecx, dword [0x4852f0]
call fcn.004498e0
mov ecx, dword [0x4a2ba8]
xor eax, eax
mov ax, word [ecx + 0x1a4]
mov ecx, dword [0x4852f0]
push eax
call fcn.00454870
push 0x10
call fcn.0046335e
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x4205d1
mov dl, byte [esp + 0x13]
mov al, byte [esp + 0x13]
mov ecx, esi
mov byte [esi], dl
mov byte [esi + 1], al
mov byte [esi + 8], 0
call fcn.00421a70
jmp 0x4205d3
xor esi, esi
push 0x10
mov dword [0x4852f8], esi
call fcn.0046335e
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x420603
mov cl, byte [esp + 0x13]
mov dl, byte [esp + 0x13]
mov byte [esi], cl
mov ecx, esi
mov byte [esi + 1], dl
mov byte [esi + 8], 0
call fcn.00421a70
jmp 0x420605
xor esi, esi
mov dword [0x4852fc], esi
call fcn.004212c0
mov al, byte [0x4cd5f0]
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
test al, 1
jne 0x420644
or al, 1
push 0x4cd604
mov byte [0x4cd5f0], al
mov dword [0x4cd600], 0x4773a0
call ebx
push 0x4109d0
call fcn.004637c9
add esp, 4
push 0x4cd604
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x485000]
cmp eax, ebp
jne 0x420676
push 0x28
call fcn.0046335e
add esp, 4
cmp eax, ebp
je 0x42066f
mov ecx, eax
call fcn.00456d40
jmp 0x420671
xor eax, eax
mov dword [0x485000], eax
mov ecx, dword [0x484ffc]
push 0x4cd604
inc ecx
mov edi, eax
mov dword [0x484ffc], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x485bfe
mov ecx, edi
call fcn.00456f60
mov eax, dword [0x4853c0]
and eax, 0xffff
push eax
mov eax, dword [0x4a2ba8]
push ebp
push ebp
mov ecx, dword [eax + 0x1a0]
mov edx, dword [eax + 0x19c]
push ecx
mov ecx, dword [0x4852f0]
push edx
push ebp
add eax, 6
push 0x82ca0000
push eax
call fcn.00452490
test eax, eax
jne 0x42076e
mov esi, dword [0x4852f0]
cmp esi, ebp
je 0x4206f3
mov ecx, esi
call fcn.00452120
push esi
call fcn.00463110
add esp, 4
cmp edi, ebp
je 0x42075e
mov al, byte [0x4cd61c]
test al, 1
jne 0x420725
or al, 1
push 0x4cd624
mov byte [0x4cd61c], al
mov dword [0x4cd620], 0x4773a0
call ebx
push 0x4109b0
call fcn.004637c9
add esp, 4
push 0x4cd624
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x484ffc]
dec eax
mov dword [0x484ffc], eax
jne 0x420753
mov ecx, dword [0x485000]
cmp ecx, ebp
je 0x420753
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x485000], ebp
push 0x4cd624
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x220
ret 0x10
mov cx, word [0x4853ce]
push ecx
mov ecx, dword [0x4852f0]
push 1
call fcn.00455ba0
mov dx, word [0x4853ca]
mov ecx, dword [0x4852f0]
push edx
call fcn.00455e70
mov ax, word [0x4853cc]
mov ecx, dword [0x4852f0]
push eax
push ebp
call fcn.00455ba0
mov cx, word [0x4853cc]
push ecx
mov ecx, dword [0x4852f0]
push 2
call fcn.00455ba0
mov dx, word [0x4853cc]
mov ecx, dword [0x4852f0]
push edx
push 3
call fcn.00455ba0
mov ax, word [0x4853cc]
mov ecx, dword [0x4852f0]
push eax
push 4
call fcn.00455ba0
mov ecx, dword [0x4852f0]
mov dword [ecx + 0x2a4], 0x420b80
mov edx, dword [0x4852f0]
mov dword [edx + 0x2a8], 0x421a20
mov eax, dword [0x4853d8]
mov ecx, dword [0x4852f0]
and eax, 0xffff
mov dword [ecx + 0x204], eax
mov ecx, dword [0x4852f0]
call fcn.00449980
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
cmp eax, 0x20
je 0x42085c
mov ecx, dword [0x4852f0]
push ebp
push 0x481944
push 0x4818d0
call fcn.00449980
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x4852f0]
push esi
call fcn.00449980
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4852f0]
mov edx, dword [0x4a2ba8]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
add edx, 0x114
mov ecx, dword [eax + 0x1a8]
push edx
add ecx, 0x14
push ecx
call esi
push 0x8a8
call fcn.0046335e
add esp, 4
cmp eax, ebp
je 0x4208ba
mov edx, dword [0x4a2ba8]
mov ecx, eax
add edx, 0x13e
push edx
call fcn.0041a910
jmp 0x4208bc
xor eax, eax
mov ecx, dword [0x4a2ba8]
mov dword [0x4852f4], eax
add ecx, 0x6c
add eax, 0x874
push ecx
push eax
call esi
mov ecx, dword [0x4852f0]
push fcn.004141c0
push ebp
push 0x42aa10
push 0x42a920
push 0x42a1d0
call fcn.00453440
mov ecx, dword [0x4852f0]
push 0x41e760
push ebp
push 0x41d6f0
push 0x41d4e0
push 0x41ca30
mov word [0x485300], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push fcn.004141c0
push ebp
push 0x4201d0
push 0x420190
push 0x420020
mov word [0x485302], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push ebp
push ebp
push 0x41b620
push 0x41b5e0
push 0x41b420
mov word [0x485306], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push ebp
push ebp
push 0x41fbb0
push 0x41fa90
push 0x41f350
mov word [0x48530e], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push ebp
push ebp
push 0x41c970
push 0x429d90
push 0x4295b0
mov word [0x485308], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push ebp
push ebp
push 0x422610
push 0x4224f0
push 0x421b70
mov word [0x48530a], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push ebp
push ebp
push 0x41c970
push 0x41c8e0
push 0x41c470
mov word [0x48530c], ax
call fcn.00453440
mov ecx, dword [0x4852f0]
push 0x41bbf0
push ebp
push 0x41bb70
push 0x41ba90
push 0x41b6c0
mov word [0x485304], ax
call fcn.00453440
mov dx, word [0x485300]
mov word [0x485310], ax
push ebp
mov ecx, dword [0x4852f0]
push edx
call fcn.00453680
mov ecx, dword [0x4852f0]
call fcn.004540b0
mov esi, dword [0x4852f8]
cmp esi, ebp
je 0x420a4e
mov ecx, esi
call fcn.00432e80
push esi
call fcn.00463110
add esp, 4
mov esi, dword [0x4852fc]
cmp esi, ebp
je 0x420a68
mov ecx, esi
call fcn.00432e80
push esi
call fcn.00463110
add esp, 4
mov esi, dword [0x4852f0]
cmp esi, ebp
je 0x420a82
mov ecx, esi
call fcn.00452120
push esi
call fcn.00463110
add esp, 4
mov esi, dword [0x4852f4]
cmp esi, ebp
je 0x420a9c
mov ecx, esi
call fcn.0041a9b0
push esi
call fcn.00463110
add esp, 4
mov eax, dword [0x4853b0]
push eax
call fcn.00463db1
mov ecx, dword [0x4853b4]
push ecx
call fcn.00463db1
mov edx, dword [0x4853b8]
push edx
call fcn.00463db1
mov eax, dword [0x4a2db4]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov esi, dword [esp + 0x14]
cmp esi, ebp
je 0x420ae8
mov ecx, dword [esp + 0x24]
push ebp
push ecx
call sub.MSACM32.dll_acmDriverRemove
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x420af7
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebp
je 0x420b62
mov al, byte [0x4cd61c]
test al, 1
jne 0x420b29
or al, 1
push 0x4cd624
mov byte [0x4cd61c], al
mov dword [0x4cd620], 0x4773a0
call ebx
push 0x4109b0
call fcn.004637c9
add esp, 4
push 0x4cd624
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x484ffc]
dec eax
mov dword [0x484ffc], eax
jne 0x420b57
mov ecx, dword [0x485000]
cmp ecx, ebp
je 0x420b57
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [0x485000], ebp
push 0x4cd624
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x220
ret 0x10