Function at 0x431f36
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 0x432178
test al, 2
je 0x432178
mov edx, dword [ebp + 0x10]
and dword [esp + 0x14], 0
lea eax, [esp + 0x20]
push eax
test edx, edx
je 0x432018
mov esi, 0x104
mov ecx, esi
call fcn.0041b6c3
test eax, eax
jge 0x431fa0
push 0x57
pop eax
jmp 0x43217a
xor ecx, ecx
add ebx, 0x14
mov dword [esp + 0x10], ecx
je 0x431fbe
lea edi, [esp + 0x10]
mov edx, esi
mov eax, ebx
call fcn.00431a15
mov ecx, dword [esp + 0x10]
jmp 0x431fc3
mov eax, 0x80070057
test eax, eax
jl 0x43200e
test ecx, ecx
je 0x43200e
dec ecx
je 0x43200e
cmp word [ebx + ecx*2], 0x5c
je 0x431fd8
dec ecx
jne 0x431fce
test ecx, ecx
je 0x43200e
lea edi, [esp + 0x10]
mov edx, esi
lea eax, [esp + 0x20]
lea ebx, [ebx + ecx*2]
call fcn.00431a15
test eax, eax
jl 0x43200e
mov eax, dword [esp + 0x10]
mov ecx, esi
sub ecx, eax
lea edx, [esp + eax*2 + 0x20]
push closesocket
mov eax, ebx
call fcn.00431a75
test eax, eax
jge 0x432027
mov eax, 0x54f
jmp 0x43217a
lea edx, [ebx + 0x14]
mov ecx, 0x104
call fcn.0041b6c3
jmp 0x43202b
mov ebx, dword [esp + 0x1c]
cmp byte [ebp + 8], 0
je 0x432061
cmp dword [ebp + 0x10], 0
jne 0x432049
test byte [ebx + 0xc], 1
je 0x432049
lea eax, [esp + 0x20]
push eax
call fcn.004321b3
jmp 0x432054
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x432061
push 0x50
pop esi
jmp 0x432174
xor eax, eax
push 5
pop esi
cmp dword [ebp + 0x10], eax
jne 0x432083
test byte [ebx + 0xc], 1
je 0x432083
push esi
push 0x1f01ff
lea eax, [esp + 0x28]
push eax
call fcn.004323c5
jmp 0x43209e
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 0x4320b2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x432174
push 0x6926c8
push 0
lea eax, [ebx + 0x21c]
push 0x8000
push eax
call fcn.0058f74e
add esp, 0xc
push eax
call fcn.004d5050
pop ecx
pop ecx
mov dword [esp + 0x10], eax
test eax, eax
je 0x43215c
push 1
push eax
push edi
call fcn.004324df
mov esi, eax
test esi, esi
jne 0x43215c
test byte [ebx + 0xc], 2
je 0x432100
lea eax, [ebx + 0x404]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileShortNameW]
xor esi, esi
cmp dword [ebp + 0x10], esi
jne 0x43211c
test byte [ebx + 0xc], 1
je 0x43211c
push dword [ebx + 0x10]
lea eax, [esp + 0x24]
push eax
call fcn.00432260
jmp 0x43212a
push dword [ebx + 0x10]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [esp + 0x14], esi
jne 0x43214e
cmp eax, esi
jne 0x432156
cmp dword [esp + 0x18], esi
je 0x43215c
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_ImpersonateLoggedOnUser]
mov dword [esp + 0x14], eax
cmp eax, esi
jne 0x432100
jmp 0x43215c
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
jmp 0x43215c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x10], 0
je 0x432174
push dword [esp + 0x10]
call fcn.004d4cc0
pop ecx
mov eax, esi
jmp 0x43217a
xor eax, eax
mov ecx, dword [esp + 0x22c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005796dc
mov esp, ebp
pop ebp
ret 0xc