Function at 0x447650
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45f806
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x492984]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [ebp + 8]
call fcn.0042a720
lea ecx, [esi + 0x140]
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
test al, al
je 0x4476a8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.saved.txt
lea eax, [ebp - 0x24]
push eax
lea ecx, [esi + 0x140]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::operator_char_const__]
mov esi, dword [sym.imp.byondcore.dll_struct_DMWideStringStub___cdecl_Utf82Wide_char_const__]
lea eax, [ebp - 0x10]
push 0x4662dc
push eax
mov dword [ebp - 4], 0
call esi
mov edi, eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 1
push eax
call esi
push dword [edi]
push dword [eax]
call dword [sym.imp.MSVCR120.dll__wfopen]
mov esi, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMWideStringStub::destructor_void_]
lea ecx, [ebp - 0x14]
add esp, 0x18
mov edi, eax
call esi
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0
call esi
mov ebx, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
test edi, edi
jne 0x447718
xor esi, esi
jmp 0x447882
push edi
call dword [sym.imp.MSVCR120.dll__fileno]
push eax
call dword [sym.imp.MSVCR120.dll__filelength]
mov esi, eax
lea ecx, [esi + 1]
push ecx
call sub.MSVCR120.dll_void____cdecl_operator_new___unsigned_int_
push edi
push esi
push 1
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.MSVCR120.dll_fread]
push edi
mov esi, eax
call dword [sym.imp.MSVCR120.dll_fclose]
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push eax
mov byte [eax + esi], 0
call dword [sym.imp.byondcore.dll_public:_static_void___cdecl_IFace::StringToParams_char_const___struct_IParam____int__]
xor edi, edi
add esp, 0x2c
cmp dword [ebp - 0x1c], edi
jle 0x447844
xor esi, esi
mov edi, edi
lea ecx, [ebp - 0x14]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
mov ecx, dword [ebp - 0x18]
add ecx, 4
mov byte [ebp - 4], 2
add ecx, esi
call dword [sym.imp.byondcore.dll_public:_char_const____thiscall_IString::operator_char_const__void_const]
push eax
lea ecx, [ebp - 0x10]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_char_const__]
push 0x2e
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call dword [sym.imp.byondcore.dll_public:_int___thiscall_DMString::ReverseFind_char_const]
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x10]
cmp eax, 0xffffffff
je 0x447828
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Left_int_]
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call ebx
lea ecx, [ebp - 0x10]
call dword [sym.imp.byondcore.dll_public:_int___thiscall_DMString::GetLength_void_const]
sub eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x10]
dec eax
push eax
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Right_int_]
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 3
call ebx
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0x10]
add ecx, 4
add ecx, esi
call dword [sym.imp.byondcore.dll_public:_struct_IString____thiscall_IString::operator_char_const__]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
add eax, esi
push eax
push dword [ebp - 0x14]
call fcn.00427e10
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call ebx
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call ebx
inc edi
add esi, 0x2c
cmp edi, dword [ebp - 0x1c]
jl 0x447770
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x447867
push dword [sym.imp.byondcore.dll_public:_void___thiscall_IParam::destructor_void_]
lea esi, [eax - 4]
push dword [esi]
push 0x2c
push eax
call fcn.004582e2
push esi
call sub.MSVCR120.dll_void___cdecl_operator_delete___void__
add esp, 4
push dword [ebp - 0x20]
call sub.MSVCR120.dll_void___cdecl_operator_delete_void__
mov ecx, dword [ebp + 8]
xor eax, eax
add esp, 4
cmp dword [ecx + 0xc], eax
setne al
mov dword [ebp + 8], eax
mov esi, eax
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call ebx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4