Function at 0x446bff
Capabilities:
Read file on windows

Disassembly:
push 0x28
mov eax, 0x45eda2
call fcn.00457013
mov esi, edx
test esi, esi
mov ebx, ecx
mov dword [ebp - 0x30], esi
mov edi, ebx
jne 0x446c2c
push edx
push edx
push 2
pop eax
xor ecx, ecx
call fcn.00447f62
xor al, al
call fcn.00457096
ret
call fcn.0044652b
or dword [ebx + 8], 0xffffffff
or dword [ebx + 4], 0xffffffff
push 2
push 0
push esi
mov esi, dword [sym.imp.MSVCR80.dll_fseek]
call esi
push dword [ebp - 0x30]
call dword [sym.imp.MSVCR80.dll_ftell]
push 0
push 0
push dword [ebp - 0x30]
mov edi, eax
call esi
xor esi, esi
add esp, 0x1c
cmp edi, esi
jg 0x446c6b
push esi
push esi
push 0xd
mov edi, ebx
jmp 0x446c1c
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
push edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::reserve_unsigned_int_]
lea eax, [edi + 1]
push eax
call fcn.004567b5
push dword [ebp - 0x30]
mov esi, eax
push 1
push edi
push esi
mov dword [ebp - 0x34], esi
mov byte [esi], 0
call dword [sym.imp.MSVCR80.dll_fread]
add esp, 0x14
cmp eax, 1
je 0x446cd0
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
pop ecx
push 0
push 0
push 2
xor ecx, ecx
pop eax
mov edi, ebx
call fcn.00447f62
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x446c24
mov eax, esi
mov ecx, eax
mov byte [ecx + edi], 0
cmp byte [ecx], 0
je 0x446d32
mov cl, byte [esi]
cmp cl, 0xa
jne 0x446cf7
mov ecx, esi
sub ecx, eax
inc ecx
push ecx
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
inc esi
jmp 0x446d28
cmp cl, 0xd
jne 0x446d2c
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x446d0f
push ecx
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
push 0xa
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_]
lea eax, [esi + 1]
cmp byte [eax], 0xa
jne 0x446d26
inc esi
inc esi
jmp 0x446d28
mov esi, eax
mov eax, esi
jmp 0x446d2d
inc esi
cmp byte [esi], 0
jne 0x446cdd
sub esi, eax
je 0x446d41
push esi
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
push dword [ebp - 0x34]
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
pop ecx
jae 0x446d56
lea eax, [ebp - 0x28]
mov edx, dword [ebx]
push 0
push 0
push eax
mov ecx, ebx
call dword [edx + 8]
cmp byte [ebx + 0x44], 0
je 0x446d7e
xor bl, bl
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, bl
jmp 0x446c26
mov bl, 1
jmp 0x446d6a