Function at 0x408d50
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x424
mov eax, dword [0x415d90]
xor eax, esp
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x42c]
push ebx
mov ebx, dword [esp + 0x434]
push ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x430]
sub eax, 1
push esi
push edi
mov dword [esp + 0x18], ecx
je 0x408e09
sub eax, 1
je 0x408de2
sub eax, 1
je 0x408dbb
test ebx, ebx
mov ebp, 0x2d5b
mov dword [esp + 0x10], str.Delete_the_existing_file
je 0x408daf
lea esi, [ebp + 4]
mov edi, str.The_output_file___s:_s__currently_exists.
jmp 0x408e2e
mov esi, 0x2d5a
mov edi, str.The_output_file___s__currently_exists.
jmp 0x408e2e
test ebx, ebx
mov ebp, 0x2d64
mov dword [esp + 0x10], str.Overwrite_the_existing_container_file
je 0x408dd6
lea esi, [ebp + 2]
mov edi, str.The_container_file___s:_s__currently_exists.
jmp 0x408e2e
mov esi, 0x2d65
mov edi, str.The_container_file___s__currently_exists.
jmp 0x408e2e
test ebx, ebx
mov ebp, 0x2d64
mov dword [esp + 0x10], str.Overwrite_the_existing_Boot_file
je 0x408dfd
lea esi, [ebp + 2]
mov edi, str.The_bootfile___s:_s__currently_exists.
jmp 0x408e2e
mov esi, 0x2d65
mov edi, str.The_bootfile___s__currently_exists.
jmp 0x408e2e
test ebx, ebx
mov ebp, 0x2d62
mov dword [esp + 0x10], str.Overwrite_the_existing_Database_file
je 0x408e24
lea esi, [ebp - 1]
mov edi, str.The_Database_file___s:_s__currently_exists.
jmp 0x408e2e
mov esi, 0x2d60
mov edi, str.The_Database_file___s__currently_exists.
push str.OBJYTOOLINVOKED
call dword [sym.imp.MSVCR80.dll_getenv]
add esp, 4
test eax, eax
je 0x408f2f
test ebx, ebx
je 0x408e69
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push edi
push esi
call sub.oodb94vc8.dll_char____cdecl_ooGetMsg_int__char_const__
add esp, 8
push eax
lea edx, [esp + 0x3c]
push edx
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
jmp 0x408e87
mov eax, dword [esp + 0x14]
push eax
push edi
push esi
call sub.oodb94vc8.dll_char____cdecl_ooGetMsg_int__char_const__
add esp, 8
push eax
lea ecx, [esp + 0x38]
push ecx
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0xc
lea edi, [esp + 0x30]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x408e90
mov eax, dword [esp + 0x10]
mov dx, word [0x40ed8c]
push eax
push ebp
mov word [edi], dx
call sub.oodb94vc8.dll_char____cdecl_ooGetMsg_int__char_const__
push eax
call sub.oodb94vc8.dll_ossNewString
add esp, 0xc
mov ecx, eax
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x408ec0
lea edi, [esp + 0x30]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x408ed4
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x30]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x408ef3
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x1c40]
mov cx, word [0x411228]
push 0x1124
push eax
lea eax, [esp + 0x38]
push eax
push 0
mov word [edi], cx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
sete al
jmp 0x408fad
test ebx, ebx
je 0x408f53
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push edi
push esi
call sub.oodb94vc8.dll_char____cdecl_ooGetMsg_int__char_const__
mov edx, dword [esp + 0x28]
add esp, 8
push eax
push edx
call fcn.00408ba0
add esp, 0x10
jmp 0x408f70
mov eax, dword [esp + 0x14]
push eax
push edi
push esi
call sub.oodb94vc8.dll_char____cdecl_ooGetMsg_int__char_const__
mov ecx, dword [esp + 0x24]
add esp, 8
push eax
push ecx
call fcn.00408ba0
add esp, 0xc
mov edx, dword [esp + 0x10]
push edx
push ebp
call sub.oodb94vc8.dll_char____cdecl_ooGetMsg_int__char_const__
push eax
call sub.oodb94vc8.dll_ossNewString
add esp, 0xc
push 0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x24]
push 0
add ecx, 0x1bc0
mov dword [esp + 0x30], 0
call fcn.0040bfc0
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040c4d0
add esp, 0x424
ret 0xc