Function at 0x4410e0
Capabilities:
Read file on windows

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push ebp
push edi
xor edi, edi
cmp ebx, edi
mov ebp, ecx
mov dword [esp + 0xc], ebp
jne 0x441107
push edi
push edi
push edi
push 2
call fcn.00443640
pop edi
pop ebp
xor al, al
pop ebx
pop ecx
ret 8
push esi
mov esi, dword [ebp + 0x18]
cmp esi, edi
je 0x44111f
nop
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 0x40]
push 1
call dword [eax]
cmp esi, edi
jne 0x441110
mov esi, dword [sym.imp.MSVCR71.dll_fseek]
push 2
or eax, 0xffffffff
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x1c], edi
push edi
push ebx
mov dword [ebp + 8], eax
mov dword [ebp + 4], eax
call esi
push ebx
call dword [sym.imp.MSVCR71.dll_ftell]
push 0
push 0
push ebx
mov edi, eax
call esi
add esp, 0x1c
test edi, edi
jne 0x441167
push edi
push edi
push edi
push 0xd
mov ecx, ebp
call fcn.00443640
pop esi
pop edi
pop ebp
xor al, al
pop ebx
pop ecx
ret 8
add ebp, 0x78
push 0x47f7ba
mov ecx, ebp
call dword [0x47e5e4]
push edi
mov ecx, ebp
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::reserve_unsigned_int_]
lea ecx, [edi + 1]
push ecx
call sub.MFC71.DLL_operator_new
push ebx
mov esi, eax
push 1
push edi
push esi
mov dword [esp + 0x2c], esi
mov byte [esi], 0
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x14
cmp eax, 1
je 0x4411c9
push esi
call sub.MFC71.DLL_operator_delete
mov ecx, dword [esp + 0x14]
add esp, 4
push 0
push 0
push 0
push 2
call fcn.00443640
pop esi
pop edi
pop ebp
xor al, al
pop ebx
pop ecx
ret 8
mov ebx, dword [esp + 0x18]
mov byte [ebx + edi], 0
cmp byte [ebx], 0
mov eax, esi
je 0x441227
mov cl, byte [esi]
cmp cl, 0xa
jne 0x4411f3
mov edx, esi
sub edx, eax
inc edx
push edx
push eax
mov ecx, ebp
call dword [sym.imp.MSVCP71.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
mov eax, esi
jmp 0x441222
cmp cl, 0xd
jne 0x441221
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x44120a
push ecx
push eax
mov ecx, ebp
call dword [sym.imp.MSVCP71.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
mov ecx, ebp
call dword [sym.imp.MSVCP71.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_]
cmp byte [esi + 1], 0xa
jne 0x4411ee
add esi, 2
mov eax, esi
jmp 0x441222
inc esi
cmp byte [esi], 0
jne 0x4411d8
sub esi, eax
je 0x441235
push esi
push eax
mov ecx, ebp
call dword [sym.imp.MSVCP71.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 ebx
call sub.MFC71.DLL_operator_delete
mov eax, dword [ebp + 0x18]
add esp, 4
cmp eax, 0x10
jb 0x44124b
mov ebp, dword [ebp + 4]
jmp 0x44124e
add ebp, 4
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
push ecx
push 0
push ebp
mov ecx, esi
call dword [eax + 0xc]
mov al, byte [esi + 0x44]
pop esi
pop edi
test al, al
pop ebp
sete al
pop ebx
pop ecx
ret 8