Function at 0x404270
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x430f90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push esi
push edi
lea eax, [ebp - 0x14]
mov dword [ebp - 0x10], esp
push eax
add ecx, 0x44
call fcn.00403980
mov esi, dword [eax]
test esi, esi
mov dword [ebp - 0x18], esi
je 0x4042b0
lea ecx, [esi + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x14]
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov dword [ebp - 4], 0
je 0x4042e4
mov edi, eax
add eax, 0x1c
push eax
call ebx
test eax, eax
jne 0x4042e4
test edi, edi
je 0x4042e4
mov ecx, edi
call fcn.00402a40
push edi
call fcn.0041ab17
add esp, 4
test esi, esi
jne 0x40431e
lea ecx, [ebp - 0x34]
call fcn.00403700
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push 0xffffffffffffffff
push str.Cover_art_entry_not_found.
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call eax
lea ecx, [ebp - 0x34]
call fcn.00403c90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, esi
call fcn.00407590
test al, al
je 0x40449e
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov edi, dword [ebp + 8]
push 0xffffffffffffffff
mov bl, 3
push edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], bl
call fcn.004038a0
cmp dword [eax + 4], 0
mov byte [ebp - 4], 4
jbe 0x404360
mov eax, dword [eax]
jmp 0x404365
mov eax, 0x4323a8
push eax
lea ecx, [ebp - 0x20]
call fcn.00401ff0
push 0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], bl
mov dword [ebp - 0x28], 0
call fcn.00402970
mov ebx, 2
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], ebx
call fcn.00403700
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push 0xffffffffffffffff
push str.Dumping_cover_art_entry_to__
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 6
call eax
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push 0xffffffffffffffff
push edi
lea ecx, [ebp - 0x34]
call eax
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push 0xffffffffffffffff
push str._...
lea ecx, [ebp - 0x34]
call eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], bl
call fcn.00403c90
mov ebx, dword [ebp - 0x20]
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
push ebx
push edi
push 1
push eax
call fcn.0041b676
add esp, 0x10
cmp eax, edi
je 0x40440d
push 0
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x14], str.write_error
call fcn.0041aa68
push 0x43ab4c
lea edx, [ebp - 0x40]
push edx
call fcn.0041ab1c
lea ecx, [ebp - 0x34]
call fcn.00403700
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
push 0xffffffffffffffff
push str.Done.
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 7
call edx
lea ecx, [ebp - 0x34]
call fcn.00403c90
test ebx, ebx
je 0x40443f
push ebx
call fcn.0041add8
add esp, 4
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x404455
push edi
call fcn.0041ad61
push edi
call fcn.0041abab
add esp, 8
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x40430d
mov ecx, esi
call fcn.00402a40
push esi
call fcn.0041ab17
mov ecx, dword [ebp - 0xc]
add esp, 4
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, esi
mov esi, dword [esi + 0x18]
lea edx, [edi + 0x1c]
push edx
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
jne 0x4044c4
test edi, edi
je 0x4044c4
mov ecx, edi
call fcn.00402a40
push edi
call fcn.0041ab17
add esp, 4
test esi, esi
je 0x4042e8
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x4042e4