Function at 0x42b500
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x40c
call fcn.0043c4d0
push 5
push str.pass:
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x42b539
mov ecx, dword [ebp + 0xc]
add ecx, 5
push ecx
call sub.LIBEAY32.dll_Ordinal_170
add esp, 4
jmp 0x42b7c7
push 4
push str.env:
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x42b5a3
mov eax, dword [ebp + 0xc]
add eax, 4
push eax
call dword [sym.imp.MSVCRT.dll_getenv]
add esp, 4
mov dword [ebp - 0x404], eax
cmp dword [ebp - 0x404], 0
jne 0x42b58f
mov ecx, dword [ebp + 0xc]
add ecx, 4
push ecx
push str.Cant_read_environment_variable__s_n
mov edx, dword [ebp + 8]
push edx
call sub.LIBEAY32.dll_Ordinal_86_1
add esp, 0xc
xor eax, eax
jmp 0x42b7c7
mov eax, dword [ebp - 0x404]
push eax
call sub.LIBEAY32.dll_Ordinal_170
add esp, 4
jmp 0x42b7c7
cmp dword [ebp + 0x10], 0
je 0x42b5b6
cmp dword [0x452ee8], 0
jne 0x42b731
push 5
push str.file:
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x42b614
push 0x43df58
mov edx, dword [ebp + 0xc]
add edx, 5
push edx
call sub.LIBEAY32.dll_Ordinal_82_1
add esp, 8
mov dword [0x452ee8], eax
cmp dword [0x452ee8], 0
jne 0x42b60f
mov eax, dword [ebp + 0xc]
add eax, 5
push eax
push str.Cant_open_file__s_n
mov ecx, dword [ebp + 8]
push ecx
call sub.LIBEAY32.dll_Ordinal_86_1
add esp, 0xc
xor eax, eax
jmp 0x42b7c7
jmp 0x42b731
push 3
push 0x449e90
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x42b6c7
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebp - 0x408], eax
cmp dword [ebp - 0x408], 0
jl 0x42b665
push 0
mov ecx, dword [ebp - 0x408]
push ecx
call sub.LIBEAY32.dll_Ordinal_81
add esp, 8
mov dword [0x452ee8], eax
cmp dword [ebp - 0x408], 0
jl 0x42b677
cmp dword [0x452ee8], 0
jne 0x42b696
mov edx, dword [ebp + 0xc]
add edx, 3
push edx
push str.Cant_access_file_descriptor__s_n
mov eax, dword [ebp + 8]
push eax
call sub.LIBEAY32.dll_Ordinal_86_1
add esp, 0xc
xor eax, eax
jmp 0x42b7c7
call sub.LIBEAY32.dll_Ordinal_58_1
push eax
call sub.LIBEAY32.dll_Ordinal_78_1
add esp, 4
mov dword [ebp - 0x40c], eax
mov ecx, dword [0x452ee8]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call sub.LIBEAY32.dll_Ordinal_87
add esp, 8
mov dword [0x452ee8], eax
jmp 0x42b731
push str.stdin
mov eax, dword [ebp + 0xc]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x42b715
push 0
mov ecx, dword [sym.imp.MSVCRT.dll__iob]
push ecx
call sub.LIBEAY32.dll_Ordinal_83_1
add esp, 8
mov dword [0x452ee8], eax
cmp dword [0x452ee8], 0
jne 0x42b713
push str.Cant_open_BIO_for_stdin_n
mov edx, dword [ebp + 8]
push edx
call sub.LIBEAY32.dll_Ordinal_86_1
add esp, 8
xor eax, eax
jmp 0x42b7c7
jmp 0x42b731
mov eax, dword [ebp + 0xc]
push eax
push str.Invalid_password_argument___s__n
mov ecx, dword [ebp + 8]
push ecx
call sub.LIBEAY32.dll_Ordinal_86_1
add esp, 0xc
xor eax, eax
jmp 0x42b7c7
push 0x400
lea edx, [ebp - 0x400]
push edx
mov eax, dword [0x452ee8]
push eax
call sub.LIBEAY32.dll_Ordinal_76
add esp, 0xc
mov dword [ebp - 0x408], eax
cmp dword [ebp + 0x10], 1
je 0x42b770
mov ecx, dword [0x452ee8]
push ecx
call sub.LIBEAY32.dll_Ordinal_67
add esp, 4
mov dword [0x452ee8], 0
cmp dword [ebp - 0x408], 0
jg 0x42b78e
push str.Error_reading_password_from_BIO_n
mov edx, dword [ebp + 8]
push edx
call sub.LIBEAY32.dll_Ordinal_86_1
add esp, 8
xor eax, eax
jmp 0x42b7c7
push 0xa
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp - 0x404], eax
cmp dword [ebp - 0x404], 0
je 0x42b7b8
mov ecx, dword [ebp - 0x404]
mov byte [ecx], 0
lea edx, [ebp - 0x400]
push edx
call sub.LIBEAY32.dll_Ordinal_170
add esp, 4
mov esp, ebp
pop ebp
ret