Function at 0x1000339b
Capabilities:
Delete file
Get common file path
Set current directory
Set file attributes
Shutdown system

Disassembly:
mov eax, 0x1000f740
call fcn.1000f3a0
sub esp, 0x6c4
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x10], esp
push dword [ebp + 0x24]
mov edi, dword [ebp + 0xc]
mov esi, ecx
push dword [ebp + 0x20]
mov dword [ebp - 0x1c], esi
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
push str.Begin_Install:__s__s__s__s__d__ld__d__ld
call fcn.10001e74
add esp, 0x24
test ebx, ebx
je 0x100033ff
push ebx
call sub.MSVCRT.dll_strlen
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
push ebx
push eax
mov dword [esi + 0x5c], eax
call sub.MSVCRT.dll_strcpy
add esp, 0x10
xor ebx, ebx
jmp 0x10003404
xor ebx, ebx
mov dword [esi + 0x5c], ebx
cmp dword [esi + 0x74], ebx
jne 0x10003444
mov eax, dword [ebp + 0x18]
cmp eax, ebx
jl 0x1000341a
cmp eax, 3
jge 0x1000341a
mov dword [esi + 0x60], eax
jmp 0x1000341d
mov dword [esi + 0x60], ebx
cmp dword [esi + 0x60], 1
jne 0x10003444
mov ecx, esi
call fcn.10006810
test al, al
jne 0x10003444
mov eax, 0xfffffc05
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x20
lea eax, [ebp - 0x360]
mov ecx, esi
push eax
mov dword [ebp - 0x24], ebx
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
call fcn.10003152
lea eax, [ebp - 0x360]
push eax
push dword [ebp + 8]
call sub.MSVCRT.dll_strcpy
pop ecx
lea eax, [ebp - 0x360]
pop ecx
push eax
push edi
mov ecx, esi
call fcn.10003152
lea eax, [ebp - 0x360]
push eax
push edi
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x360]
push eax
push dword [ebp + 8]
call fcn.1000e3ce
lea eax, [ebp - 0x360]
push eax
push dword [ebp + 8]
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x360]
push eax
push edi
call fcn.1000e3ce
lea eax, [ebp - 0x360]
push eax
push edi
call sub.MSVCRT.dll_strcpy
push dword [ebp + 8]
call fcn.1000df41
push edi
call fcn.1000df41
lea ecx, [esi + 0x90]
add esp, 0x30
mov dword [esi + 0x84], ebx
mov dword [ebp - 0x20], ecx
call fcn.1000a6f4
push dword [ebp + 8]
mov dword [esi + 0x110], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x70], ebx
call sub.MSVCRT.dll_strlen
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
push dword [ebp + 8]
mov dword [esi + 0x58], eax
push eax
call sub.MSVCRT.dll_strcpy
and byte [ebp - 0x11], 0
add esp, 0x10
lea eax, [ebp - 0x11]
mov dword [ebp - 4], ebx
push eax
push dword [ebp + 8]
call sub.MSVCRT.dll_strlen
pop ecx
inc eax
mov ecx, dword [ebp - 0x20]
push eax
call fcn.1000a68e
push dword [ebp + 8]
mov eax, dword [esi + 0x94]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
mov ecx, esi
call fcn.10001686
push dword [ebp + 8]
push edi
mov ecx, esi
call fcn.10002ed4
push dword [ebp + 0x10]
mov ecx, esi
call fcn.10002f91
mov ecx, esi
call fcn.1000a486
mov ecx, esi
call fcn.100030de
mov ecx, esi
call fcn.1000a486
mov ecx, eax
call fcn.10001702
mov ecx, esi
call fcn.1000a489
mov ecx, eax
call fcn.1000f239
mov ecx, esi
call fcn.1000a486
mov edi, dword [ebp + 8]
mov dword [eax + 0x20], fcn.10001686
push edi
mov dword [eax + 0x2c], esi
call fcn.1000d2d7
cmp eax, ebx
pop ecx
jne 0x100035d1
push edi
call fcn.1000d396
cmp eax, ebx
pop ecx
jne 0x100035d1
push edi
call fcn.1000d3cb
cmp eax, ebx
pop ecx
jne 0x100035d1
lea eax, [ebp - 0x158]
push eax
push edi
push dword [esi + 0x54]
call fcn.1000e0d5
add esp, 0xc
jmp 0x100035e0
lea eax, [ebp - 0x158]
push edi
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push dword [esi + 0x50]
mov ecx, esi
push str.gNumScriptParams
call fcn.10002e0e
push ebx
push str.gScriptLine
mov ecx, esi
call fcn.10002e0e
mov edi, 0x10014d94
mov ecx, esi
push edi
push str.gScriptLineStr
call fcn.10002e71
push edi
push str.gScriptLineFile
mov ecx, esi
call fcn.10002e71
push 0x100137c4
push 0x100137c0
mov ecx, esi
call fcn.10002e71
push 0x100137bc
push str.LEFTDEL
mov ecx, esi
call fcn.10002e71
push 0x100137b0
push str.RIGHTDEL
mov ecx, esi
call fcn.10002e71
push 1
mov ecx, esi
pop edi
push edi
push str.TRUE
call fcn.10002e0e
push ebx
push str.FALSE
mov ecx, esi
call fcn.10002e0e
push ebx
push str.MB_OK
mov ecx, esi
call fcn.10002e0e
push 0x30
push str.MB_ICONEXCLAMATION
mov ecx, esi
call fcn.10002e0e
push 0x20
push str.MB_ICONQUESTION
mov ecx, esi
call fcn.10002e0e
push 0x40
push str.MB_ICONINFORMATION
mov ecx, esi
call fcn.10002e0e
lea eax, [ebp - 0x158]
push eax
call fcn.1000d3cb
cmp eax, ebx
pop ecx
je 0x10003790
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x25c]
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x158]
push ebx
push eax
call fcn.1000e16c
add esp, 0x10
lea eax, [esi + 0x179]
push 0x64
push eax
lea eax, [esi + 0x115]
push 0x64
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.1000a3e8
add esp, 0x14
mov ecx, esi
mov dword [esi + 0x2ac], ebx
call fcn.1000a486
mov dword [eax + 0x24], 0x1000a4c7
mov dword [eax + 0x28], esi
mov ecx, dword [esi]
push ebx
lea eax, [ebp - 0x158]
push ebx
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.10001a8a
mov ecx, 0x7d0
cmp eax, ecx
jg 0x10003889
je 0x10003874
sub eax, ebx
je 0x1000377b
dec eax
je 0x10003766
dec eax
je 0x10003874
dec eax
jne 0x100038c4
lea eax, [ebp - 0x44]
push 0x100105d0
push eax
mov dword [ebp - 0x44], 0xfffffc0b
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x34]
push 0x100105d0
push eax
mov dword [ebp - 0x34], 0xfffffc0a
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x158]
push 0x80
push eax
mov dword [ebp - 0x18], edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov edi, dword [sym.imp.MSVCRT.dll_strrchr]
push 0x2e
push dword [ebp + 8]
call edi
pop ecx
cmp eax, ebx
pop ecx
je 0x10003bd8
push str..cab
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x10003bd8
lea eax, [ebp - 0x158]
mov ecx, esi
push eax
call fcn.100040ef
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x100038d9
lea edi, [esi + 0x34]
push 1
push str.HKEY_LOCAL_MACHINESOFTWAREBrilliant_Digital_EntertainmentBDEInstaller
mov ecx, edi
call fcn.1000e845
lea eax, [ebp - 0x18]
push ebx
push eax
push str.Debug
mov ecx, edi
call fcn.1000e9c9
cmp eax, ebx
jne 0x10003860
mov ecx, edi
call fcn.1000e921
cmp dword [ebp - 0x18], 1
jb 0x10003860
push dword [ebp - 0x28]
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x428]
push dword [ebp + 8]
push str.Unable_to_validate_signature_of_cab_file__s_nLocal_file_is__s_nValidateCABSignature_returned_0x_08X
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esi, 0xb0
add esp, 0x14
mov ecx, esi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, esi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push ebx
lea eax, [ebp - 0x428]
push 0x10014d94
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebp - 0x28]
push 0x100105d0
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x50]
push 0x100105d0
push eax
mov dword [ebp - 0x50], 0xfffffc05
call sub.MSVCRT.dll__CxxThrowException
cmp eax, 0x7d1
jl 0x100038c4
cmp eax, 0x7d4
jle 0x100038b3
cmp eax, 0x7d5
jle 0x100038c4
cmp eax, 0x7e1
jle 0x100038b3
cmp eax, 0x7e2
jle 0x100038c4
cmp eax, 0x7e7
jg 0x100038c4
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
push 0x100105d0
push eax
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x4c]
push 0x100105d0
push eax
mov dword [ebp - 0x4c], 0xfffffc11
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x48c]
push 0x64
push eax
lea eax, [ebp - 0x158]
push eax
mov ecx, esi
call fcn.10003e7b
mov ebx, eax
test ebx, ebx
je 0x10003997
lea edi, [esi + 0x34]
push 1
push str.HKEY_LOCAL_MACHINESOFTWAREBrilliant_Digital_EntertainmentBDEInstaller
mov ecx, edi
call fcn.1000e845
lea eax, [ebp - 0x18]
push 0
push eax
push str.Debug
mov ecx, edi
call fcn.1000e9c9
test eax, eax
jne 0x10003986
mov ecx, edi
call fcn.1000e921
cmp dword [ebp - 0x18], 1
jb 0x10003986
lea eax, [ebp - 0x158]
push ebx
push eax
lea eax, [ebp - 0x428]
push dword [ebp + 8]
push str.Error_retrieving_signature_from_cab_file__s_nLocal_file_is__s_nGetSignatureSigner_returned_0x_08X
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esi, 0xb0
add esp, 0x14
mov ecx, esi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, esi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0
lea eax, [ebp - 0x428]
push 0x10014d94
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea eax, [ebp - 0x38]
push 0x100105d0
push eax
mov dword [ebp - 0x38], ebx
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x48c]
push str.Brilliant_Digital_Entertainment_Inc.
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x10003a51
lea edi, [esi + 0x34]
push 1
push str.HKEY_LOCAL_MACHINESOFTWAREBrilliant_Digital_EntertainmentBDEInstaller
mov ecx, edi
call fcn.1000e845
xor ebx, ebx
lea eax, [ebp - 0x18]
push ebx
push eax
push str.Debug
mov ecx, edi
call fcn.1000e9c9
cmp eax, ebx
jne 0x10003a3c
mov ecx, edi
call fcn.1000e921
cmp dword [ebp - 0x18], 1
jb 0x10003a3c
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x428]
push dword [ebp + 8]
push str.Signature_in_cab_file__s_is_not_from_BDE_nLocal_file_is__s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esi, 0xb0
add esp, 0x10
mov ecx, esi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, esi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push ebx
lea eax, [ebp - 0x428]
push 0x10014d94
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea eax, [ebp - 0x40]
push 0x100105d0
push eax
mov dword [ebp - 0x40], 0xfffffc04
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x25c]
push 0
push eax
call fcn.1000e16c
pop ecx
lea eax, [ebp - 0x25c]
pop ecx
push 0x2e
push eax
call edi
pop ecx
test eax, eax
pop ecx
je 0x10003a75
and byte [eax], 0
lea eax, [ebp - 0x25c]
push eax
call fcn.1000d3ff
pop ecx
lea eax, [ebp - 0x25c]
push 0
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.1000eb9f
add esp, 0xc
test eax, eax
je 0x10003ae2
mov edi, dword [ebp + 8]
xor esi, esi
push edi
call sub.MSVCRT.dll_strlen
cmp esi, eax
pop ecx
jae 0x10003abd
mov ecx, dword [ebp - 0x20]
lea eax, [esi + edi]
push eax
call fcn.1000a6e3
inc esi
jmp 0x10003aa3
mov ecx, dword [ebp - 0x20]
and byte [ebp - 0x11], 0
lea eax, [ebp - 0x11]
push eax
call fcn.1000a6e3
lea eax, [ebp - 0x48]
push 0x100105d0
push eax
mov dword [ebp - 0x48], 0xfffffc10
call sub.MSVCRT.dll__CxxThrowException
cmp dword [ebp - 0x18], 1
jne 0x10003af5
lea eax, [ebp - 0x158]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x590]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x25c]
push eax
call edi
lea eax, [ebp - 0x6d0]
push eax
push str..bde
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
jne 0x10003b78
xor esi, esi
lea eax, [ebp - 0x158]
push eax
call sub.MSVCRT.dll_strlen
cmp esi, eax
pop ecx
jae 0x10003b53
mov ecx, dword [ebp - 0x20]
lea eax, [ebp + esi - 0x158]
push eax
call fcn.1000a6e3
inc esi
jmp 0x10003b2f
mov ecx, dword [ebp - 0x20]
and byte [ebp - 0x11], 0
lea eax, [ebp - 0x11]
push eax
call fcn.1000a6e3
lea eax, [ebp - 0x30]
push 0x100105d0
push eax
mov dword [ebp - 0x30], 0xfffffc10
call sub.MSVCRT.dll__CxxThrowException
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x6a4]
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.1000e0d5
add esp, 0xc
lea eax, [ebp - 0x590]
push eax
call edi
lea eax, [ebp - 0x158]
mov ecx, esi
push eax
call fcn.10004261
lea eax, [ebp - 0x158]
push eax
call fcn.1000de5c
test eax, eax
pop ecx
je 0x10003bc7
and byte [eax], 0
lea eax, [ebp - 0x158]
push eax
call fcn.1000d746
pop ecx
xor ebx, ebx
jmp 0x10003be6
lea eax, [ebp - 0x158]
mov ecx, esi
push eax
call fcn.10004261
mov eax, dword [ebp + 0x1c]
cmp dword [ebp + 0x24], ebx
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x48], eax
mov dword [esi + 0x44], eax
jne 0x10003c03
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x24], eax
mov ecx, dword [ebp - 0x20]
call fcn.1000a6f4
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.10004414
jmp 0x10003cb7
or dword [ebp - 4], 0xffffffff
xor ebx, ebx
cmp dword [esi + 0xc0], ebx
je 0x10003dca
cmp dword [esi + 0x74], ebx
jne 0x10003dca
cmp dword [ebp - 0x24], ebx
je 0x10003d18
lea edi, [esi + 0xb0]
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0x30
push str.BDESmartInstaller
push str.The_process_will_not_be_completed_until_you_reboot_your_system
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x10003dc3
mov eax, dword [esi + 0xbc]
cmp eax, 4
jne 0x10003d79
lea edi, [esi + 0xb0]
mov ecx, edi
call fcn.1000afc0
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
push eax
call ebx
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0x24
push str.BDESmartInstaller
push str.Your_computer_needs_to_be_rebooted_to_finish_the_operation._Do_you_wish_to_reboot_now_
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x10003d6a
push 0
jmp 0x10003dbb
mov ecx, edi
call fcn.1000afc0
push eax
call ebx
jmp 0x10003ceb
cmp eax, 3
jne 0x10003dc3
lea edi, [esi + 0xb0]
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0x40
push str.BDESmartInstaller
push str.Rebooting_to_finish_the_process.
mov ecx, edi
call fcn.1000afc0
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
and dword [esi + 0xc0], 0
mov eax, dword [esi + 0x20]
mov dword [ebp - 4], 4
mov edi, dword [eax]
cmp edi, dword [esi + 0x20]
je 0x10003e36
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x10003df0
mov ecx, ebx
call fcn.1000a9e8
push ebx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
mov edi, dword [edi]
jmp 0x10003dd6
or dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x1c]
call fcn.1000a65a
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 0x24]
push str.End_Install__return_d_:__s__s__s__s__d__ld__d__ld
call fcn.10001e74
mov eax, dword [ebp - 0x24]
add esp, 0x28
jmp 0x10003433