Function at 0x45f1d8
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffadc
push ebx
push esi
mov dword [ebp - 8], ecx
mov esi, edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 0x18]
mov byte [ebp - 9], 1
fild qword [ebp + 0x10]
fcomp dword [0x45f4f8]
fnstsw ax
sahf
jbe 0x45f279
mov eax, dword [0x4be55c]
mov byte [eax], 0
mov eax, dword [0x4be874]
mov ax, word [eax]
xor ecx, ecx
mov edx, esi
call fcn.004184e0
test al, al
je 0x45f4eb
cmp dword [ebp + 8], 0
je 0x45f279
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.004aeffc
push eax
lea edx, [ebp - 0x18]
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov esi, dword [eax + 0x1a0]
call dword [esi + 0x18]
mov dword [ebp - 0x51c], eax
fild dword [ebp - 0x51c]
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
fild qword [eax + 0x10]
fcompp
fnstsw ax
sahf
ja 0x45f4eb
xor edx, edx
mov eax, ebx
call fcn.004acbf0
mov eax, dword [0x4be784]
cmp byte [eax + 0x187b], 0
je 0x45f2ab
mov eax, ebx
call fcn.004ab508
test al, al
jne 0x45f2ab
mov edx, ebx
mov ax, 3
call fcn.004acdac
jmp 0x45f4eb
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
fild qword [eax + 0x10]
fcomp dword [0x45f4f8]
fnstsw ax
sahf
jbe 0x45f303
push 0
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
mov ecx, ebx
xor edx, edx
call fcn.00419530
test al, al
je 0x45f2fa
mov eax, dword [0x4be888]
inc dword [eax]
mov eax, dword [0x4be6a4]
fild qword [eax]
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
fild qword [eax + 0x10]
faddp st(1)
mov eax, dword [0x4be6a4]
fistp qword [eax]
wait
jmp 0x45f31e
mov byte [ebp - 9], 0
jmp 0x45f4eb
push 0
push ebx
call sub.kernel32.dll__lcreat
cmp eax, 0xffffffff
je 0x45f318
mov edx, dword [0x4be888]
inc dword [edx]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
add eax, 0x34
push eax
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
add eax, 0x2c
push eax
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
lea ecx, [eax + 0x24]
mov edx, ebx
mov al, 1
call fcn.004b3bb4
test al, al
jne 0x45f359
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, ebx
call fcn.0049d794
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
push eax
push ebx
call sub.kernel32.dll_SetFileAttributesA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x45f382
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, ebx
call fcn.0049d794
mov eax, dword [0x4bef50]
cmp dword [eax], 0
je 0x45f4c1
lea eax, [ebp - 0x118]
mov edx, dword [ebp - 8]
call fcn.004b81b0
lea eax, [ebp - 0x118]
call fcn.004aedb4
mov eax, dword [0x4be6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
call fcn.004aed10
push eax
lea eax, [ebp - 0x118]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4be950]
cmp dword [eax], 0
jne 0x45f434
mov edx, 0x45f4fc
lea eax, [ebp - 0x518]
call fcn.004b81b0
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x518]
push eax
call sub.kernel32.dll_lstrcatA
lea eax, [ebp - 0x518]
call fcn.004ab7d8
push 0x45f51c
lea eax, [ebp - 0x518]
push eax
call sub.kernel32.dll_lstrcatA
push ebx
lea eax, [ebp - 0x518]
push eax
call sub.kernel32.dll_lstrcatA
lea edx, [ebp - 0x518]
mov eax, dword [0x4bef50]
mov eax, dword [eax]
xor ecx, ecx
call fcn.004a9c04
jmp 0x45f4c1
mov eax, dword [ebp - 4]
movsx eax, byte [eax + 0x442]
mov edx, dword [0x4be4fc]
cmp byte [edx + eax - 1], 0xff
jne 0x45f4b6
push 0x45f52c
lea eax, [ebp - 0x118]
push eax
call sub.kernel32.dll_lstrcatA
cmp dword [ebp + 0xc], 0xffffffff
je 0x45f494
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x524], eax
xor eax, eax
mov dword [ebp - 0x520], eax
fild qword [ebp - 0x524]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
push eax
lea eax, [ebp - 0x118]
push eax
call sub.kernel32.dll_lstrcatA
jmp 0x45f4a5
push 0x45f530
lea eax, [ebp - 0x118]
push eax
call sub.kernel32.dll_lstrcatA
push 0x45f534
lea eax, [ebp - 0x118]
push eax
call sub.kernel32.dll_lstrcatA
lea eax, [ebp - 0x118]
call fcn.004aa2cc
mov eax, dword [0x4be6a4]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x4bec28]
push eax
mov ecx, dword [0x4be550]
mov edx, dword [0x4beefc]
mov edx, dword [edx]
mov eax, dword [0x4be888]
mov eax, dword [eax]
call fcn.004ae318
mov al, byte [ebp - 9]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14