Function at 0x528020
Capabilities:
Create directory
Delete directory
Get common file path

Disassembly:
push ebp
mov eax, 0x676e
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x110]
push ebx
mov ebx, dword fs:[0x18]
sub esp, 0x230
mov word [ebp - 0x222], ax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x226], 0x69727473
mov dword [ebp - 0x220], 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], str.D:PAI_A__0x1200a9___WD_
call dword [sym.imp.advapi32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorA]
sub esp, 0x10
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x223
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.ConvertStringSecurityDescriptorToSecurityDescriptor_failed:__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
mov esi, 0x74
sete al
mov dword [esp], eax
call fcn.00527880
lea edx, [ebp - 0x214]
mov dword [esp], 0x104
mov dword [esp + 4], edx
call dword [sym.imp.kernel32.dll_GetTempPathA]
lea edx, [ebp - 0x214]
sub esp, 8
mov dword [esp], edx
call sub.msvcrt.dll_strlen
lea edx, [ebp - 0x214]
lea ecx, [edx + eax]
mov dword [ecx], 0x656e6977
mov dword [ecx + 4], 0x7365742d
mov word [ecx + 8], si
mov esi, dword [ebp + eax - 0x20e]
mov dword [ebp + eax - 0x10a], esi
add eax, 9
mov esi, edx
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x110]
add eax, edi
mov dword [eax], 0x706d745c
mov dword [eax + 4], 0x696e692e
mov byte [eax + 8], 0
lea eax, [ebp - 0x220]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
sub esp, 8
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x22c
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.CreateDirectoryA_failed:__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
sete al
mov dword [esp], eax
call fcn.00527880
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.string
mov dword [esp + 4], 0x5f3a7a
mov dword [esp], 0x5f3a7e
call dword [sym.imp.kernel32.dll_WritePrivateProfileStringA]
sub esp, 0x10
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x22f
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.Expected_FALSE__got__d_n
mov dword [esp], eax
call fcn.00527880
mov dword [esp + 8], edi
mov dword [esp + 4], str.keystring
mov dword [esp], 0x5f3a7e
call dword [sym.imp.kernel32.dll_WritePrivateProfileSectionA]
sub esp, 0xc
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x232
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Expected_FALSE__got__d_n
call fcn.00527880
lea eax, [ebp - 0x226]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 6
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5f3a7a
mov dword [esp], 0x5f3a7e
call dword [sym.imp.kernel32.dll_WritePrivateProfileStructA]
sub esp, 0x14
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x235
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.Expected_FALSE__got__d_n
mov dword [esp], eax
call fcn.00527880
lea edx, [ebp - 0x214]
mov dword [esp], edx
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x238
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.RemoveDirectoryA_failed:__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
sete al
mov dword [esp], eax
call fcn.00527880
mov eax, dword [ebp - 0x21c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LocalFree]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret