Function at 0x422780
Capabilities:
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x4be82c
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x4f36a0]
xor eax, esp
mov dword [esp + 0x13c], eax
push ebp
push esi
push edi
mov eax, dword [0x4f36a0]
xor eax, esp
push eax
lea eax, [esp + 0x154]
mov dword fs:[0], eax
mov eax, dword [esp + 0x168]
mov ebp, dword [esp + 0x164]
mov esi, ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x15c], 0
cmp dword [esi + 0x24], 0
je 0x422803
push 0x4eb2dc
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], 0x80800000
call fcn.004a1a26
mov eax, dword [0x4fd600]
test eax, eax
je 0x42281c
push 0
push 0
push 0x800c
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push ebp
lea edi, [esp + 0x1c]
call fcn.00414140
mov edx, dword [esp + 0x18]
push 0x80
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x24]
call fcn.00448930
mov eax, edi
lea edx, [esp + 0x24]
call fcn.00448b50
mov eax, dword [esp + 0x16c]
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x164], 3
mov edx, dword [esp + 0x1c]
push ebp
lea ecx, [esp + 0x30]
call fcn.00416460
test al, al
jne 0x42295e
mov eax, dword [0x4fd600]
test eax, eax
je 0x422892
push 0
push 0
push 0x800d
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
lea ecx, [esp + 0x1c]
call fcn.00447720
push 0x4ddc44
push 0x4d65ac
mov edx, eax
call fcn.00448ff0
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00447770
cmp dword [esi + 0x24], 0
jne 0x4228d5
push 0x4eb2dc
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], 0x80800000
call fcn.004a1a26
cmp byte [esp + 0x140], 0
mov dword [esp + 0x24], vtable.t_str.0
jne 0x4228fc
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x30]
cmp eax, ecx
je 0x4228fc
push eax
call fcn.00498f5b
add esp, 4
mov eax, dword [esp + 0x18]
lea edx, [eax - 0xc]
cmp edx, 0x4f9f74
je 0x422929
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x422929
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
push eax
call fcn.00498b08
add esp, 4
lea ecx, [esp + 0x1c]
call fcn.004476c0
or eax, 0xffffffff
mov ecx, dword [esp + 0x154]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x13c]
xor ecx, esp
call fcn.00497c58
add esp, 0x150
ret 0xc
cmp dword [esi + 0x24], 0
je 0x42297b
push 0x4eb2dc
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], 0x80800000
call fcn.004a1a26
mov eax, dword [0x4fd600]
test eax, eax
jne 0x422a2f
mov eax, dword [esi + 4]
lea edi, [eax + 0x6b4]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 4]
test eax, eax
je 0x4229c6
cmp dword [eax + 4], 0
je 0x4229c6
fld dword [0x4e5c20]
push ecx
fstp dword [esp]
call fcn.0040c560
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00422200
cmp byte [esp + 0x140], 0
mov dword [esp + 0x24], vtable.t_str.0
jne 0x4229f2
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x30]
cmp eax, edx
je 0x4229f2
push eax
call fcn.00498f5b
add esp, 4
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x4f9f74
je 0x422a1f
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x422a1f
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00498b08
add esp, 4
lea ecx, [esp + 0x1c]
call fcn.004476c0
xor eax, eax
jmp 0x422935
push 0
push 2
push 0x800c
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
call fcn.004998fb
int3