Function at 0x442804
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x224
mov eax, dword [0x6c56f8]
xor eax, esp
mov dword [esp + 0x220], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 8]
push esi
push edi
mov dword [esp + 0x1c], ebx
test al, 1
je 0x442a46
test al, 2
je 0x442a46
mov edx, dword [ebp + 0x10]
and dword [esp + 0x14], 0
lea eax, [esp + 0x20]
push eax
test edx, edx
je 0x4428e6
mov esi, 0x104
mov ecx, esi
call fcn.0041ff96
test eax, eax
jge 0x44286e
push 0x57
pop eax
jmp 0x442a48
xor ecx, ecx
add ebx, 0x14
mov dword [esp + 0x10], ecx
je 0x44288c
lea edi, [esp + 0x10]
mov edx, esi
mov eax, ebx
call fcn.00442323
mov ecx, dword [esp + 0x10]
jmp 0x442891
mov eax, 0x80070057
test eax, eax
jl 0x4428dc
test ecx, ecx
je 0x4428dc
dec ecx
je 0x4428dc
cmp word [ebx + ecx*2], 0x5c
je 0x4428a6
dec ecx
jne 0x44289c
test ecx, ecx
je 0x4428dc
lea edi, [esp + 0x10]
mov edx, esi
lea eax, [esp + 0x20]
lea ebx, [ebx + ecx*2]
call fcn.00442323
test eax, eax
jl 0x4428dc
mov eax, dword [esp + 0x10]
mov ecx, esi
sub ecx, eax
lea edx, [esp + eax*2 + 0x20]
push closesocket
mov eax, ebx
call fcn.00442383
test eax, eax
jge 0x4428f5
mov eax, 0x54f
jmp 0x442a48
lea edx, [ebx + 0x14]
mov ecx, 0x104
call fcn.0041ff96
jmp 0x4428f9
mov ebx, dword [esp + 0x1c]
cmp byte [ebp + 8], 0
je 0x44292f
cmp dword [ebp + 0x10], 0
jne 0x442917
test byte [ebx + 0xc], 1
je 0x442917
lea eax, [esp + 0x20]
push eax
call fcn.00442a6f
jmp 0x442922
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44292f
push 0x50
pop esi
jmp 0x442a42
xor eax, eax
push 5
pop esi
cmp dword [ebp + 0x10], eax
jne 0x442951
test byte [ebx + 0xc], 1
je 0x442951
push esi
push 0x1f01ff
lea eax, [esp + 0x28]
push eax
call fcn.00442c81
jmp 0x44296c
push eax
push 0x2000080
push 2
push eax
push 1
push 0x1f01ff
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x442980
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x442a42
push 0x684790
push 0
lea eax, [ebx + 0x21c]
push 0x8000
push eax
call fcn.00597cf7
add esp, 0xc
push eax
call fcn.004dd230
pop ecx
pop ecx
mov dword [esp + 0x10], eax
test eax, eax
je 0x442a2a
push 1
push eax
push edi
call fcn.00442d9b
mov esi, eax
test esi, esi
jne 0x442a2a
test byte [ebx + 0xc], 2
je 0x4429ce
lea eax, [ebx + 0x404]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileShortNameW]
xor esi, esi
cmp dword [ebp + 0x10], esi
jne 0x4429ea
test byte [ebx + 0xc], 1
je 0x4429ea
push dword [ebx + 0x10]
lea eax, [esp + 0x24]
push eax
call fcn.00442b1c
jmp 0x4429f8
push dword [ebx + 0x10]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [esp + 0x14], esi
jne 0x442a1c
cmp eax, esi
jne 0x442a24
cmp dword [esp + 0x18], esi
je 0x442a2a
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_ImpersonateLoggedOnUser]
mov dword [esp + 0x14], eax
cmp eax, esi
jne 0x4429ce
jmp 0x442a2a
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
jmp 0x442a2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x10], 0
je 0x442a42
push dword [esp + 0x10]
call fcn.004dcea0
pop ecx
mov eax, esi
jmp 0x442a48
xor eax, eax
mov ecx, dword [esp + 0x22c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00581268
mov esp, ebp
pop ebp
ret 0xc