Function at 0x10090440
Capabilities:
Delete file
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1024b4d6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x18], ecx
push edi
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], esi
xor edi, edi
mov eax, dword [ecx + 0x1b0]
mov ecx, dword [ecx + 0x1ac]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x100904f9
nop dword [eax + eax]
mov ebx, dword [edi + ecx]
xor eax, eax
mov word [ebp - 0x3c], ax
add edi, 4
mov eax, ebx
mov dword [ebp - 0x2c], 0
shr eax, 1
push eax
lea eax, [edi + ecx]
mov dword [ebp - 0x28], 7
push eax
lea ecx, [ebp - 0x3c]
call fcn.1001a600
mov byte [ebp - 4], 1
lea eax, [ebp - 0x3c]
push eax
cmp dword [ebp - 0x1c], esi
je 0x100904d7
mov ecx, esi
call fcn.1001a380
add esi, 0x18
mov dword [ebp - 0x20], esi
jmp 0x100904e3
push esi
lea ecx, [ebp - 0x24]
call fcn.1001d450
mov esi, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0
add edi, ebx
call fcn.1001a5a0
mov ecx, dword [ebp - 0x14]
cmp edi, dword [ebp - 0x10]
jb 0x10090490
mov ecx, dword [ebp - 0x24]
mov eax, 0x2aaaaaab
sub esi, ecx
xor edi, edi
imul esi
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
je 0x100905be
mov eax, ebx
sub eax, edi
dec eax
cmp ebx, eax
jbe 0x100905d7
lea eax, [eax + eax*2]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0x18]
add eax, 0x164
mov ecx, dword [eax + 0x10]
cmp ecx, dword [esi + 0x10]
ja 0x100905b2
push eax
push ecx
push 0
mov ecx, esi
call fcn.1001e530
test eax, eax
jne 0x100905b2
push esi
call sym.WMCommon.dll_public:_static_bool___cdecl_WM::GMFilePathUtils::IsExists_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__
add esp, 4
test al, al
je 0x100905b2
push 0x10267444
push esi
call sym.WMCommon.dll_public:_static_void___cdecl_WM::GMStringUtils::TrimRight_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____wchar_t_const__
push esi
call sym.WMCommon.dll_public:_static_bool___cdecl_WM::GMFilePathUtils::IsDirectory_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__
add esp, 0xc
test al, al
je 0x10090579
push esi
call sym.WMCommon.dll_public:_static_unsigned_long_long_unsigned___int64____cdecl_WM::GMFilePathUtils::RemoveAll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__
add esp, 4
jmp 0x100905b2
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x10090583
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x100905a3
and eax, 0xfffffffe
mov ecx, esi
cmp dword [esi + 0x14], 8
jb 0x1009059b
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [esi + 0x14], 8
jb 0x100905ab
mov esi, dword [esi]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x24]
inc edi
cmp edi, ebx
jb 0x10090517
lea ecx, [ebp - 0x24]
call fcn.1001d100
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10020220
int3