Function at 0x44f4f0
Capabilities:
Manipulate boot configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x401936
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x100
push ebx
push esi
push edi
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], 0x4018f0
xor edi, edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x94], edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0x100], edi
mov dword [ebp - 0x104], edi
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaOnError]
mov dword [ebp - 0x40], 1
push 0x43fdf8
call dword [sym.imp.MSVBVM60.DLL___vbaNew]
push eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaObjSet]
call fcn.0044fe60
mov edx, eax
lea ecx, [ebp - 0x4c]
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
call ebx
push eax
push 0x43fe0c
call dword [sym.imp.MSVBVM60.DLL___vbaStrTextCmp]
xor ecx, ecx
test eax, eax
setge cl
neg ecx
mov esi, ecx
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
cmp si, di
je 0x44facd
mov dword [ebp - 0x5c], 0x80020004
mov dword [ebp - 0x64], 0xa
lea edx, [ebp - 0x64]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcCurrentDirBstr]
mov edx, eax
lea ecx, [ebp - 0x2c]
call ebx
lea ecx, [ebp - 0x64]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
call esi
mov dword [ebp - 0x9c], 0x43fe18
mov dword [ebp - 0xa4], 8
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.MSVBVM60.DLL_rtcEnvironBstr]
mov edx, eax
lea ecx, [ebp - 0x4c]
call ebx
push eax
call dword [sym.imp.MSVBVM60.DLL_rtcChangeDir]
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea ecx, [ebp - 0x64]
call esi
mov edx, 0x43fe28
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
lea edx, [ebp - 0xd8]
push edx
mov edx, dword [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x44]
fnclex
cmp eax, edi
jge 0x44f685
push 0x44
push 0x43fe44
mov ecx, dword [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
cmp word [ebp - 0xd8], di
jne 0x44f6bb
mov edx, dword [ebp - 0x30]
push edx
push 1
push 0xffffffffffffffff
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFileOpen]
push 0x43fe58
push 1
push 0x43c248
call dword [sym.imp.MSVBVM60.DLL___vbaPrintFile]
add esp, 0xc
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaFileClose]
lea eax, [ebp - 0x30]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xa4], 0x4008
push edi
lea ecx, [ebp - 0xa4]
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcShell]
call dword [sym.imp.MSVBVM60.DLL___vbaFpI4]
push eax
push edi
push 0x100000
call fcn.0043bd30
mov esi, eax
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaSetSystemError]
call edi
push 0x3e8
push esi
call fcn.0043f4d8
call edi
push esi
call fcn.0043f310
call edi
mov edx, 0x43fea4
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
lea ecx, [ebp - 0xd8]
push ecx
mov ecx, dword [ebp - 0x30]
push ecx
push eax
call dword [edx + 0x44]
fnclex
test eax, eax
jge 0x44f74b
push 0x44
push 0x43fe44
mov edx, dword [ebp - 0x38]
push edx
push eax
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
call edi
jmp 0x44f751
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
cmp word [ebp - 0xd8], 0
je 0x44fab9
mov eax, dword [0x45163c]
test eax, eax
jne 0x44f778
push 0x45163c
push 0x43f0dc
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov esi, dword [0x45163c]
mov eax, dword [esi]
lea ecx, [ebp - 0x54]
push ecx
push esi
call dword [eax + 0x14]
fnclex
test eax, eax
jge 0x44f799
push 0x14
push 0x43f0cc
push esi
push eax
call edi
mov eax, dword [ebp - 0x54]
mov esi, eax
mov edx, dword [eax]
lea ecx, [ebp - 0x4c]
push ecx
push eax
call dword [edx + 0x50]
fnclex
test eax, eax
jge 0x44f7b9
push 0x50
push 0x43f1b8
push esi
push eax
call edi
mov edx, dword [ebp - 0x38]
mov esi, dword [edx]
lea eax, [ebp - 0xd8]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
push 0x43fec0
call dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
mov edx, eax
lea ecx, [ebp - 0x50]
call ebx
push eax
mov edx, dword [ebp - 0x38]
push edx
call dword [esi + 0x44]
fnclex
test eax, eax
jge 0x44f7f7
push 0x44
push 0x43fe44
mov ecx, dword [ebp - 0x38]
push ecx
push eax
call edi
mov esi, dword [ebp - 0xd8]
not esi
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x4c]
push eax
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStrList]
add esp, 0xc
lea ecx, [ebp - 0x54]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
test si, si
je 0x44f8dc
mov eax, dword [0x45163c]
test eax, eax
jne 0x44f83d
push 0x45163c
push 0x43f0dc
call dword [sym.imp.MSVBVM60.DLL___vbaNew2]
mov esi, dword [0x45163c]
mov ecx, dword [esi]
lea edx, [ebp - 0x54]
push edx
push esi
call dword [ecx + 0x14]
fnclex
test eax, eax
jge 0x44f85e
push 0x14
push 0x43f0cc
push esi
push eax
call edi
mov eax, dword [ebp - 0x54]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x4c]
push edx
push eax
call dword [ecx + 0x50]
fnclex
test eax, eax
jge 0x44f87e
push 0x50
push 0x43f1b8
push esi
push eax
call edi
mov eax, dword [ebp - 0x38]
mov esi, dword [eax]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x4c]
push ecx
push 0x43fec0
call dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
mov edx, eax
lea ecx, [ebp - 0x50]
call ebx
push eax
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x38]
push eax
call dword [esi + 0x6c]
fnclex
test eax, eax
jge 0x44f8bb
push 0x6c
push 0x43fe44
mov ecx, dword [ebp - 0x38]
push ecx
push eax
call edi
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x4c]
push eax
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStrList]
add esp, 0xc
lea ecx, [ebp - 0x54]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
mov esi, dword [ebp - 0x20]
jmp 0x44f8df
or esi, 0xffffffff
mov ecx, dword [ebp - 0x30]
push ecx
push 1
push 0xffffffffffffffff
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaFileOpen]
push 1
call dword [sym.imp.MSVBVM60.DLL_rtcEndOfFile]
test ax, ax
je 0x44f9f3
test si, si
jne 0x44f9f3
mov eax, 0x80020004
mov dword [ebp - 0x8c], eax
mov ecx, 0xa
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x9c], 0x43b134
mov edi, 8
mov dword [ebp - 0xa4], edi
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x74]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
push 0x43fee0
push 0x43b24c
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
call esi
mov edx, eax
lea ecx, [ebp - 0x4c]
call ebx
push eax
push 0x43ff30
call esi
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x64], edi
lea edx, [ebp - 0x94]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x74]
push ecx
push 0x40
lea edx, [ebp - 0x64]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcMsgBox]
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x74]
push edx
lea eax, [ebp - 0x64]
push eax
push 4
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0x14
mov dword [ebp - 0x9c], 0x43fdac
mov dword [ebp - 0xa4], edi
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
push 0
lea ecx, [ebp - 0x64]
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcShell]
fstp st(0)
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
jmp 0x44f9f8
mov edi, 8
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaLineInputStr]
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaInStr]
push 1
call dword [sym.imp.MSVBVM60.DLL_rtcEndOfFile]
test ax, ax
jne 0x44fa7b
push 1
lea edx, [ebp - 0x28]
push edx
call esi
push 1
mov eax, dword [ebp - 0x28]
push eax
push 0x43fc78
push 1
call ebx
cmp eax, 1
jne 0x44fa04
push eax
mov ecx, dword [ebp - 0x28]
push ecx
push 0x43ff74
push eax
call ebx
test eax, eax
jle 0x44fa7b
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x9c], 0x43fdac
mov dword [ebp - 0xa4], edi
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
push 0
lea edx, [ebp - 0x64]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcShell]
fstp st(0)
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaFileClose]
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
push 0xffffffffffffffff
mov edx, dword [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x5c]
fnclex
test eax, eax
jge 0x44fabe
push 0x5c
push 0x43fe44
mov ecx, dword [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcChangeDir]
jmp 0x44fcab
mov edi, 8
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcChangeDir]
jmp 0x44fcab
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
lea edx, [ebp - 0x54]
push edx
push eax
call dword [ecx + 0x1c]
fnclex
cmp eax, edi
jge 0x44faf2
push 0x1c
push 0x43fe44
mov ecx, dword [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], edi
push eax
lea edx, [ebp - 0x100]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaObjSet]
push eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x104]
push ecx
push 0x43ff84
call dword [sym.imp.MSVBVM60.DLL___vbaForEachCollObj]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
cmp eax, edi
je 0x44fc26
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
lea ecx, [ebp - 0x4c]
push ecx
push eax
call dword [edx + 0x20]
fnclex
cmp eax, edi
jge 0x44fb50
push 0x20
push 0x43ff84
mov edx, dword [ebp - 0x34]
push edx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov eax, dword [ebp - 0x4c]
push eax
push 0x43ff98
call esi
mov edx, eax
lea ecx, [ebp - 0x30]
call ebx
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
lea edx, [ebp - 0xd8]
push edx
mov edx, dword [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x44]
fnclex
cmp eax, edi
jge 0x44fb97
push 0x44
push 0x43fe44
mov ecx, dword [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
cmp word [ebp - 0xd8], di
jne 0x44fbbb
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x104]
push eax
push 0x43ff84
call dword [sym.imp.MSVBVM60.DLL___vbaNextEachCollObj]
jmp 0x44fb23
mov ecx, dword [ebp - 0x30]
push ecx
push 1
push 0xffffffffffffffff
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaFileOpen]
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaLineInputStr]
push 1
call dword [sym.imp.MSVBVM60.DLL_rtcEndOfFile]
test ax, ax
push 1
jne 0x44fc11
lea edx, [ebp - 0x28]
push edx
call edi
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call esi
mov edx, eax
lea ecx, [ebp - 0x4c]
call ebx
push eax
push 0x43b24c
call esi
mov edx, eax
lea ecx, [ebp - 0x24]
call ebx
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
jmp 0x44fbd1
call dword [sym.imp.MSVBVM60.DLL___vbaFileClose]
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaExitEachColl]
xor edi, edi
push 1
mov eax, dword [ebp - 0x24]
push eax
push 0x43ffb4
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaInStr]
test eax, eax
jle 0x44fca6
mov dword [ebp - 0x44], 0xffffffff
push 1
push 0xffffffffffffffff
push 1
push 0x43ffdc
push 0x43ffb4
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.MSVBVM60.DLL_rtcReplace]
mov edx, eax
lea ecx, [ebp - 0x24]
call ebx
push edi
mov edx, dword [ebp - 0x30]
push edx
mov esi, dword [sym.imp.MSVBVM60.DLL_rtcSetFileAttr]
call esi
mov eax, dword [ebp - 0x30]
push eax
push 1
push 0xffffffffffffffff
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFileOpen]
mov ecx, dword [ebp - 0x24]
push ecx
push 1
push 0x43c248
call dword [sym.imp.MSVBVM60.DLL___vbaPrintFile]
add esp, 0xc
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaFileClose]
push 1
mov edx, dword [ebp - 0x30]
push edx
call esi
mov edi, 8
push 0x43fde8
push 0
call dword [sym.imp.MSVBVM60.DLL___vbaCastObj]
push eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaObjSet]
cmp word [ebp - 0x44], 0
je 0x44fdbb
mov edx, 0x440004
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVBVM60.DLL___vbaStrCopy]
mov eax, 0x80020004
mov dword [ebp - 0x7c], eax
mov ecx, 0xa
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0xac], 0x43b134
mov dword [ebp - 0xb4], edi
lea edx, [ebp - 0xb4]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xa4], 0x4008
lea edx, [ebp - 0x84]
push edx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x64]
push ecx
push 0x24
lea edx, [ebp - 0xa4]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcMsgBox]
xor ecx, ecx
cmp eax, 6
sete cl
neg ecx
mov esi, ecx
lea edx, [ebp - 0x84]
push edx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x64]
push ecx
push 3
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0x10
test si, si
je 0x44fda6
mov dword [ebp - 0x9c], 0x440048
mov dword [ebp - 0xa4], edi
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
push 2
lea edx, [ebp - 0x64]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcShell]
fstp st(0)
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
mov dword [ebp - 0x40], 0xffffffff
call dword [sym.imp.MSVBVM60.DLL___vbaExitProc]
wait
push 0x44fe4b
jmp 0x44fe07
call dword [sym.imp.MSVBVM60.DLL___vbaExitProc]
wait
push 0x44fe4b
jmp 0x44fe07
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x100]
push ecx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeObjList]
add esp, 0xc
lea ecx, [ebp - 0x24]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
call esi
lea ecx, [ebp - 0x28]
call esi
lea ecx, [ebp - 0x2c]
call esi
lea ecx, [ebp - 0x30]
call esi
lea ecx, [ebp - 0x34]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
call esi
lea ecx, [ebp - 0x38]
call esi
ret