Function at 0x1000ccb0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x408
mov eax, dword [esp + 0x410]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x418]
mov dword [esp + 0xc], eax
xor ebp, ebp
xor ebx, ebx
mov al, byte [esi]
push edi
test al, al
mov dword [esp + 0x14], ebp
je 0x1000cd13
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x1000ccf6
movsx edx, byte [esi]
push 8
push edx
call dword [sym.imp.MSVCRT.dll__isctype]
add esp, 8
jmp 0x1000cd07
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movsx eax, byte [esi]
mov edx, dword [ecx]
mov al, byte [edx + eax*2]
and eax, 8
cmp eax, ebp
je 0x1000cd13
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x1000ccda
mov al, byte [esi]
test al, al
jne 0x1000cd29
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
add esp, 0x408
ret
cmp al, 0x2f
je 0x1000cfe8
cmp al, 0x23
je 0x1000cfe8
cmp al, 0x3b
je 0x1000cfe8
cmp al, 0x21
je 0x1000cfe8
mov edi, dword [sym.imp.MSVCRT.dll_strncmp]
push 2
push 0x1001e66c
push esi
call edi
add esp, 0xc
test eax, eax
jne 0x1000cd70
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x408
ret
mov al, byte [esi]
cmp al, 0x5b
jne 0x1000cdd2
mov al, byte [esi + 1]
inc esi
test al, al
je 0x1000cd94
cmp al, 0x5d
je 0x1000cd94
mov ecx, dword [esp + 0x10]
inc esi
mov byte [ecx], al
mov al, byte [esi]
inc ecx
test al, al
mov dword [esp + 0x10], ecx
jne 0x1000cd7e
cmp byte [esi], 0
jne 0x1000cdbb
push str.0212_env_file_error:_label_without__
push str.COM3116
push 2
call fcn.1000da50
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov byte [eax], 0
mov eax, 2
pop ebx
add esp, 0x408
ret
test al, al
je 0x1000ce68
test ebp, ebp
je 0x1000cde4
cmp al, 0x22
je 0x1000ce60
jmp 0x1000ce15
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x1000ce00
movsx edx, al
push 8
push edx
call dword [sym.imp.MSVCRT.dll__isctype]
add esp, 8
jmp 0x1000ce11
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movsx eax, al
mov edx, dword [ecx]
mov al, byte [edx + eax*2]
and eax, 8
test eax, eax
jne 0x1000ce60
cmp byte [esi], 0x24
je 0x1000ceac
push 2
push 0x1001e638
push esi
call edi
add esp, 0xc
test eax, eax
je 0x1000ceac
mov al, byte [esi]
cmp al, 0x3d
jne 0x1000ce3e
test ebx, ebx
jne 0x1000ce8a
mov ebx, 1
cmp al, 0x22
jne 0x1000ce49
mov ebp, 1
jmp 0x1000ce54
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x10], ecx
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x1000cdda
test ebx, ebx
jne 0x1000cfd1
push str.0212_env_file_error:_no__met
push str.COM3121
push 2
call fcn.1000da50
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
push str.0212_env_file_error:_two__met
push str.COM3120
push 2
call fcn.1000da50
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
test ebx, ebx
jne 0x1000ced2
push str.0212_env_file_error:___or___met_without_
push str.COM3137
push 2
call fcn.1000da50
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
cmp byte [esi], 0x5c
jne 0x1000ced8
inc esi
mov al, byte [esi + 1]
inc esi
cmp al, 0x7b
je 0x1000cee4
cmp al, 0x28
jne 0x1000ceec
mov ebx, 1
inc esi
jmp 0x1000cef0
mov ebx, dword [esp + 0x14]
mov al, byte [esi]
lea edi, [esp + 0x18]
test al, al
je 0x1000cf3f
inc esi
mov byte [edi], al
inc edi
mov al, byte [esi]
cmp al, 0x7d
je 0x1000cf65
cmp al, 0x29
je 0x1000cf65
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x1000cf24
movsx edx, al
push 8
push edx
call dword [sym.imp.MSVCRT.dll__isctype]
add esp, 8
jmp 0x1000cf35
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movsx eax, al
mov edx, dword [ecx]
mov al, byte [edx + eax*2]
and eax, 8
test eax, eax
jne 0x1000cf3f
mov al, byte [esi]
test al, al
jne 0x1000cefa
test ebx, ebx
je 0x1000cf8b
push str.0212_env_file_error:_no_pair_brace
push str.COM3119
push 2
call fcn.1000da50
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
test ebx, ebx
jne 0x1000cf8b
push str.0212_env_file_error:_no_pair_brace
push str.COM3118
push 2
call fcn.1000da50
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
lea eax, [esp + 0x18]
mov byte [edi], 0
push eax
call dword [sym.imp.MSVCRT.dll_getenv]
add esp, 4
test eax, eax
je 0x1000cfc1
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x408
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov byte [eax], 0
mov eax, 4
pop ebx
add esp, 0x408
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x408
ret