Function at 0x4012e0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x52c
mov dword [ebp - 0x50c], 0
mov dword [esp + 4], str..mkisofsrc
lea ebx, [ebp - 0x508]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll__access
test eax, eax
jne 0x401336
mov dword [esp + 4], 0x44f140
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
call sub.msvcrt.dll__errno
cmp dword [eax], 2
je 0x401363
lea eax, [ebp - 0x508]
mov dword [esp + 4], eax
mov dword [esp], 0x44f142
call fcn.0042c4b6
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
mov dword [esp], str.MKISOFSRC
call sub.msvcrt.dll_getenv
mov ebx, eax
test eax, eax
je 0x401406
mov edi, eax
cld
mov ecx, 0xffffffff
mov al, 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x3e8
ja 0x401406
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x508]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll__access
test eax, eax
jne 0x4013d9
mov dword [esp + 4], 0x44f140
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
call sub.msvcrt.dll__errno
cmp dword [eax], 2
je 0x401406
lea eax, [ebp - 0x508]
mov dword [esp + 4], eax
mov dword [esp], 0x44f142
call fcn.0042c4b6
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
mov dword [esp], str.HOME
call sub.msvcrt.dll_getenv
mov ebx, eax
test eax, eax
je 0x4014df
mov esi, 0xffffffff
mov edi, eax
cld
mov ecx, esi
mov al, 0
repne scasb al, byte es:[edi]
mov edx, ecx
not edx
mov edi, str..mkisofsrc
mov ecx, esi
repne scasb al, byte es:[edi]
not ecx
add ecx, edx
cmp ecx, 0x3e8
ja 0x4014df
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x508]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov edi, ebx
cld
mov ecx, esi
mov al, 0
repne scasb al, byte es:[edi]
not ecx
mov word [ecx + ebx - 1], 0x2f
mov dword [esp + 4], str..mkisofsrc
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll__access
test eax, eax
jne 0x4014b2
mov dword [esp + 4], 0x44f140
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
call sub.msvcrt.dll__errno
cmp dword [eax], 2
je 0x4014df
lea eax, [ebp - 0x508]
mov dword [esp + 4], eax
mov dword [esp], 0x44f142
call fcn.0042c4b6
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
mov edi, dword [ebp + 8]
cld
mov ecx, 0xffffffff
mov al, 0
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xc
cmp ecx, 0x3e8
ja 0x401599
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
lea esi, [ebp - 0x508]
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x2f
mov dword [esp], esi
call sub.msvcrt.dll_strrchr
test eax, eax
je 0x401599
mov dword [esp + 4], str..mkisofsrc
lea eax, [eax + 1]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 4
mov dword [esp], esi
call sub.msvcrt.dll__access
test eax, eax
jne 0x401570
mov dword [esp + 4], 0x44f140
mov dword [esp], esi
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x50c], eax
cmp dword [ebp - 0x50c], 0
jne 0x4015a6
call sub.msvcrt.dll__errno
cmp dword [eax], 2
je 0x401599
lea eax, [ebp - 0x508]
mov dword [esp + 4], eax
mov dword [esp], 0x44f142
call fcn.0042c4b6
cmp dword [ebp - 0x50c], 0
je 0x401845
cmp dword [0x430040], 0
jle 0x4015d1
lea eax, [ebp - 0x508]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Using___s__n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0042c789
mov dword [ebp - 0x510], 0
jmp 0x4017ed
inc dword [ebp - 0x510]
lea ebx, [ebp - 0x118]
movzx eax, byte [ebp - 0x118]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
je 0x401617
inc ebx
movzx eax, byte [ebx]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
jne 0x401603
mov edi, ebx
cmp byte [ebx], 0x23
jne 0x401662
jmp 0x4017ed
movzx edx, byte [ebx]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
cmp dword [eax], 1
jne 0x401640
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + edx*2]
and eax, 2
jmp 0x401650
mov dword [esp + 4], 2
mov dword [esp], edx
call sub.msvcrt.dll__isctype
test eax, eax
je 0x401661
movzx eax, byte [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_toupper
mov byte [ebx], al
inc ebx
cmp byte [ebx], 0
je 0x40169f
movzx edx, byte [ebx]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
cmp dword [eax], 1
jne 0x401686
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + edx*2]
and eax, 0x103
jmp 0x401696
mov dword [esp + 4], 0x103
mov dword [esp], edx
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x401623
cmp byte [ebx], 0x5f
je 0x401623
cmp edi, ebx
jne 0x4016d4
mov eax, dword [ebp - 0x510]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x508]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_d:_name_required_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0042c789
jmp 0x4017ed
mov ecx, ebx
movzx eax, byte [ebx]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
je 0x4016fd
inc ebx
movzx eax, byte [ebx]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
jne 0x4016e9
cmp byte [ebx], 0x3d
je 0x401744
mov dword [esp + 0x14], edi
mov eax, ecx
sub eax, edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x510]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x508]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_d:_equals_sign_required_after__.s_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0042c789
jmp 0x4017ed
mov byte [eax], 0
jmp 0x401781
inc ebx
movzx eax, byte [ebx]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
je 0x40176c
inc ebx
movzx eax, byte [ebx]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
jne 0x401758
mov byte [ecx], 0
mov eax, ebx
cmp byte [ebx], 0
je 0x401781
cmp byte [eax], 0xa
je 0x40173f
inc eax
cmp byte [eax], 0
jne 0x401776
mov esi, 0x4300a0
cmp dword [str.PREP], 0
je 0x4017bd
mov dword [esp + 4], edi
mov eax, dword [esi]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4017ab
add esi, 8
cmp dword [esi], 0
jne 0x40178f
jmp 0x4017bd
mov dword [esp], ebx
call sub.msvcrt.dll__strdup
mov edx, dword [esi + 4]
mov dword [edx], eax
cmp dword [esi], 0
jne 0x4017ed
mov dword [esp + 0x10], edi
mov eax, dword [ebp - 0x510]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x508]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_d:_field_name___s__unknown_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0042c789
mov eax, dword [ebp - 0x50c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x100
lea eax, [ebp - 0x118]
mov dword [esp], eax
call sub.msvcrt.dll_fgets
test eax, eax
jne 0x4015e0
mov eax, dword [ebp - 0x50c]
test byte [eax + 0xc], 0x20
je 0x401837
lea eax, [ebp - 0x508]
mov dword [esp + 4], eax
mov dword [esp], 0x44f1d4
call fcn.0042c4b6
mov eax, dword [ebp - 0x50c]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
add esp, 0x52c
pop ebx
pop esi
pop edi
pop ebp
ret