Function at 0x4091c0
Capabilities:
Delete file
Read file on windows

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x414748
push eax
mov eax, 0x104c
mov dword fs:[0], esp
call fcn.00413570
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x106c]
mov ebp, ecx
mov eax, dword [edi + 4]
test eax, eax
jne 0x4091f8
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0x8000
push eax
call dword [sym.imp.MSVCRT.dll__open]
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
mov dword [esp + 0x1c], esi
jne 0x4092f6
mov esi, dword [edi + 4]
test esi, esi
jne 0x409223
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
call dword [sym.imp.MSVCRT.dll__errno]
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll_strerror]
add esp, 4
lea ecx, [esp + 0x5c]
push eax
push esi
push 0x41b39c
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov dl, byte [esp + 0x23]
add esp, 0x10
lea ecx, [esp + 0x24]
mov byte [esp + 0x24], dl
push 0
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x28]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x4092a3
mov edi, dword [esp + 0x28]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov byte [ecx + ebx], 0
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x24]
mov dword [esp + 0x1064], 0
mov eax, dword [edx]
push eax
push 0
push ecx
lea ecx, [ebp + 0x20]
call dword [sym.imp.MSVCP60.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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, ebp
call fcn.0040d4b0
mov edx, dword [ebp]
push 0
mov ecx, ebp
call dword [edx + 4]
push 1
lea ecx, [esp + 0x28]
mov dword [esp + 0x1068], 0xffffffff
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
xor al, al
jmp 0x4095c0
mov bl, byte [esp + 0x1074]
test bl, bl
je 0x409322
mov eax, dword [esp + 0x1070]
xor edi, edi
mov eax, dword [eax + 4]
cmp eax, edi
jne 0x409316
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
call dword [sym.imp.MSVCRT.dll_remove]
add esp, 4
jmp 0x409324
xor edi, edi
test bl, bl
mov ecx, 0x8101
jne 0x409332
mov ecx, 0x8501
mov ebx, dword [esp + 0x1070]
mov eax, dword [ebx + 4]
cmp eax, edi
jne 0x409345
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0x180
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__open]
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x409455
mov esi, dword [ebx + 4]
cmp esi, edi
jne 0x40936f
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
call dword [sym.imp.MSVCRT.dll__errno]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.MSVCRT.dll_strerror]
add esp, 4
lea edx, [esp + 0x5c]
push eax
push esi
push 0x41b39c
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov al, byte [esp + 0x23]
mov dword [esp + 0x48], edi
mov byte [esp + 0x44], al
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x38]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x4093ef
mov edi, dword [esp + 0x38]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
mov byte [eax + ebx], 0
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea eax, [esp + 0x34]
mov dword [esp + 0x1064], 1
mov edx, dword [ecx]
lea ecx, [ebp + 0x20]
push edx
push 0
push eax
call dword [sym.imp.MSVCP60.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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, ebp
call fcn.0040d4b0
mov edx, dword [ebp]
push 0
mov ecx, ebp
call dword [edx + 4]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40944e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x409445
cmp al, 0xff
je 0x409445
dec al
mov byte [ecx], al
xor al, al
jmp 0x4095c0
push ecx
call fcn.004134f0
add esp, 4
xor al, al
jmp 0x4095c0
push esi
mov byte [esp + 0x17], 1
call dword [sym.imp.MSVCRT.dll__filelength]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x60]
push 0x1000
push eax
push esi
mov dword [esp + 0x24], edi
call dword [sym.imp.MSVCRT.dll__read]
mov edi, eax
add esp, 0x10
test edi, edi
je 0x4095a9
cmp edi, 0xffffffff
je 0x409599
test edi, edi
jle 0x40957a
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x5c]
push edi
push ecx
push edx
lea ebx, [esp + 0x68]
call dword [sym.imp.MSVCRT.dll__write]
mov esi, eax
xor ecx, ecx
add esp, 0xc
cmp esi, ecx
je 0x409571
jmp 0x4094c0
xor ecx, ecx
cmp esi, 0xffffffff
je 0x4095a0
cmp esi, edi
je 0x40952f
cmp esi, ecx
jle 0x409517
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
add eax, esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], eax
fild qword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov ecx, ebp
mov dword [esp + 0x54], eax
add ebx, esi
fmul qword [0x4166c8]
fild qword [esp + 0x54]
sub edi, esi
fdivp st(1)
fstp qword [ebp + 0xd8]
call fcn.0040d4b0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx]
mov eax, dword [esp + 0x18]
push edi
push ebx
push eax
call dword [sym.imp.MSVCRT.dll__write]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4094be
jmp 0x409576
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], edx
fild qword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov ecx, ebp
mov dword [esp + 0x14], eax
fmul qword [0x4166c8]
fild qword [esp + 0x24]
fdivp st(1)
fstp qword [ebp + 0xd8]
call fcn.0040d4b0
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax]
cmp esi, 0xffffffff
je 0x4095a0
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x5c]
push 0x1000
push ecx
push esi
call dword [sym.imp.MSVCRT.dll__read]
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4095a9
jmp 0x409487
mov byte [esp + 0x13], 0
jmp 0x4095a9
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x13], 0
push esi
mov esi, dword [sym.imp.MSVCRT.dll__close]
call esi
mov edx, dword [esp + 0x1c]
push edx
call esi
mov al, byte [esp + 0x1b]
add esp, 8
mov ecx, dword [esp + 0x105c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1058
ret 0xc