Function at 0x487270
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x5c
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], 0
test ecx, ecx
je 0x487440
mov ebx, dword [esi]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov edi, edx
or edi, eax
je 0x487542
add eax, 0xffffffff
mov ebp, dword [ebx + 0xc]
adc edx, 0xffffffff
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
or edx, eax
jne 0x487418
mov edx, dword [esp + 0x34]
test edx, edx
je 0x487410
mov eax, dword [ecx]
mov dword [esi], 0
mov dword [esp + 0x4c], eax
test ebp, ebp
je 0x487300
lea eax, [ebx + 0xc]
mov dword [esp], eax
call fcn.00487090
mov ebp, eax
mov eax, edx
or eax, ebp
jne 0x4875d0
mov edx, dword [esp + 0x30]
mov ecx, 1
mov eax, ebx
call fcn.00486c40
mov ebp, eax
mov eax, edx
mov ecx, edx
or eax, ebp
jne 0x487422
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x48733e
mov dword [esp + 0x34], edx
lea edx, [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041d440
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esi], 0
test eax, eax
je 0x48742e
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
mov dword [esp], eax
call fcn.0046d8d0
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov eax, edx
mov esi, edx
or eax, ebx
je 0x48742e
mov dword [esp + 4], edx
mov dword [esp], ebx
mov dword [esp + 0x30], ecx
call fcn.0041d490
mov edi, dword [fcn.004a1b90]
mov dword [esp], 2
mov dword [esp + 0x2c], eax
call edi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x54da40
mov dword [esp + 0x10], edx
mov dword [esp + 4], str.__s__Error_while_unlocking_iref_cache:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x54da76
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x30]
mov eax, ecx
or eax, ebp
cmove ebp, ebx
cmove ecx, esi
add esp, 0x5c
pop ebx
pop esi
mov eax, ebp
mov edx, ecx
pop edi
pop ebp
ret
test ebp, ebp
jne 0x4874e0
mov dword [esi], 0
xor ebp, ebp
xor ecx, ecx
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x487350
add esp, 0x5c
mov eax, ebp
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edx
call fcn.0046d8c0
mov dword [esp + 0x2c], 1
mov ebp, eax
mov eax, edx
or eax, ebp
je 0x487295
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x2c], edx
call fcn.0041d490
mov ebx, dword [fcn.004a1b90]
mov dword [esp], 2
mov esi, eax
call ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x54da40
mov dword [esp + 4], str.__s__Error_while_locking_iref_cache:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x54da76
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x2c]
jmp 0x48742e
lea eax, [esp + 0x4c]
mov dword [esi], 0
mov dword [esp], eax
mov dword [esp + 0x4c], ebp
call fcn.00487090
mov ebp, eax
mov eax, edx
mov ecx, edx
or eax, ebp
je 0x48733e
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x34], edx
call fcn.0041d490
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
mov esi, eax
call ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x54da40
mov dword [esp + 4], str.__s__Error_while_releasing_inode_during_cleanup_of_internal_reference:__lu___s_
jmp 0x487609
mov esi, dword [fcn.004a1b90]
mov dword [esp], 2
mov ebp, 6
call esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], str.fat_inode_reference_release_internal
mov dword [esp + 0x10], 0x1c1
mov dword [esp + 0xc], str.inode.c
mov dword [esp + 8], 0x54db10
mov dword [esp + 4], str.__s___s:_d___s__Attempted_to_decrease_refcount_of_destroyed_inode_reference__p_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x54da76
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
xor ecx, ecx
jmp 0x487422
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x34], edx
call fcn.0041d490
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
mov esi, eax
call ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x54da40
mov dword [esp + 4], str.__s__Error_while_releasing_inode_during_cleanup_of_independent_reference:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x54da76
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x34]
jmp 0x487422