Function at 0x45f336
Capabilities:
Check if file exists
Write file on windows

Disassembly:
push 0xf28
mov eax, 0x5b48fb
call fcn.00598f94
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, edx
mov edi, ecx
mov dword [ebp - 0xf34], edi
mov dword [ebp - 0xf30], eax
mov dword [ebp - 0xf2c], ebx
cmp esi, ebx
je 0x45f627
cmp word [esi], bx
je 0x45f627
cmp eax, ebx
je 0x45f627
cmp word [eax], bx
je 0x45f627
xor eax, eax
push 0x7e
mov word [ebp - 0x94], ax
lea eax, [ebp - 0x92]
push ebx
push eax
call fcn.00596530
add esp, 0xc
push esi
push 0x5db9e0
lea eax, [ebp - 0x94]
push 0x3f
push eax
call fcn.0058f42f
mov esi, 0x5d03f8
lea eax, [ebp - 0x94]
push esi
push eax
call fcn.0059017c
add esp, 0x18
jmp 0x45f3dd
push 0x5f
pop ecx
mov word [eax], cx
lea eax, [ebp - 0x94]
push esi
push eax
call fcn.0059017c
pop ecx
pop ecx
cmp eax, ebx
jne 0x45f3c8
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x4a4], ax
lea eax, [ebp - 0x4a2]
push ebx
push eax
call fcn.00596530
lea eax, [edi + 0xc8]
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x45f411
mov eax, dword [eax + 4]
jmp 0x45f414
add eax, 4
lea ecx, [ebp - 0x94]
push ecx
push eax
lea eax, [ebp - 0x4a4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str..lnk
push 0x104
lea edi, [ebp - 0x4a4]
call fcn.00405342
mov eax, edi
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x45f61f
push esi
mov word [ebp - 0x29c], ax
lea eax, [ebp - 0x29a]
push ebx
push eax
call fcn.00596530
add esp, 0xc
push str.game.ico
push str.ico_newmv
call fcn.004040a8
push eax
push 0x5e99c8
lea eax, [ebp - 0x29c]
push 0x103
push eax
call fcn.0058f42f
add esp, 0x18
lea eax, [ebp - 0x29c]
push eax
call edi
test eax, eax
jne 0x45f5d8
lea esi, [ebp - 0xf24]
call fcn.0051a0a5
push str.BINARY
push str.IDR_NEWMV_ZIP
mov dword [ebp - 4], ebx
push dword [0x639508]
mov ecx, esi
call fcn.0051a157
test eax, eax
je 0x45f5c9
mov eax, esi
push eax
call fcn.0051a210
xor esi, esi
cmp eax, ebx
mov dword [ebp - 0xf28], eax
jle 0x45f5be
push 0x22c
lea eax, [ebp - 0x6d0]
push ebx
push eax
mov dword [ebp - 0x6d4], ebx
call fcn.00596530
add esp, 0xc
push esi
lea edx, [ebp - 0x6d4]
lea ecx, [ebp - 0xf24]
call fcn.0051a264
test eax, eax
je 0x45f5be
test byte [ebp - 0x4c8], 0x10
jne 0x45f53d
lea eax, [ebp - 0x6d0]
push str.game.ico
push eax
call fcn.0058f69a
pop ecx
pop ecx
test eax, eax
je 0x45f548
inc esi
cmp esi, dword [ebp - 0xf28]
jl 0x45f4e8
jmp 0x45f5be
push dword [ebp - 0x6d4]
lea esi, [ebp - 0xf24]
call fcn.0051a351
mov esi, eax
cmp esi, ebx
je 0x45f5be
push 5
lea eax, [ebp - 0x29c]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHPathPrepareForWriteW]
push 0x5dec60
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0xf28]
push eax
mov dword [ebp - 0xf28], ebx
call fcn.0059308d
add esp, 0xc
test eax, eax
jne 0x45f5b7
push dword [ebp - 0xf28]
push dword [ebp - 0x4a8]
push 1
push esi
call fcn.00593819
push dword [ebp - 0xf28]
call fcn.00593912
add esp, 0x14
push esi
call fcn.0058f807
pop ecx
lea ecx, [ebp - 0xf24]
call fcn.0051a1f0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf24]
call fcn.0051a124
lea eax, [ebp - 0x29c]
push eax
call edi
test eax, eax
je 0x45f61f
mov eax, dword [ebp - 0xf34]
cmp dword [eax + 0x54], 8
jb 0x45f5f6
mov ebx, dword [eax + 0x40]
jmp 0x45f5f9
lea ebx, [eax + 0x40]
lea eax, [ebp - 0x29c]
push eax
push dword [ebp - 0xf30]
lea eax, [ebp - 0x4a4]
push eax
call fcn.0042678e
add esp, 0xc
mov dword [ebp - 0xf2c], 1
mov eax, dword [ebp - 0xf2c]
jmp 0x45f629
xor eax, eax
call fcn.00599017
ret 4