Function at 0x10025a70
Capabilities:
Create directory
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 0x18]
push esi
push edi
test ebx, ebx
je 0x10025f94
mov eax, dword [ebx]
test eax, eax
jne 0x10025d47
mov eax, dword [ebp + 0x10]
xor ecx, ecx
xor edx, edx
mov dword [ebp + 0x1c], ecx
test eax, eax
je 0x10025d13
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx*4]
mov ebx, ecx
shr ebx, 0x10
mov eax, ecx
and ebx, 0xfff
shr eax, 0x1c
push ebx
push eax
push ecx
inc edx
mov edi, ecx
push edx
push str.__Settings__d:__X___Type___X__Size___d
push 0x100b7970
and edi, 0x3fff
mov dword [ebp + 0xc], edx
call esi
add esp, 0x18
cmp edi, 0x3ffd
ja 0x10025cc1
je 0x10025cb5
dec edi
cmp edi, 0x47
ja case.0x10025afe.7
movzx eax, byte [edi + 0x10026064]
jmp dword [eax*4 + 0x10025fe8]
push 0x100b7970
push str._s__id__XPROFILE_OPTION_CONTROLLER_VIBRATION_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_NXE_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_YAXIS_INVERSION_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_CONTROL_SENSITIVITY_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_ZONE_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_REGION_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_CRED_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_REP_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_YEARS_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_BOUBLES_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_PICTURE_KEY_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_NAME_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_LOCATION_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_MOTTO_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_TITLES_PLAYED_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_ACHIEVEMENTS_EARNED_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_DIFFICULTY_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_PREFERRED_COLOR_FIRST_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_PREFERRED_COLOR_SECOND_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_ACTION_AUTO_AIM_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_ACTION_AUTO_CENTER_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_ACTION_MOVEMENT_CONTROL_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_RACE_TRANSMISSION_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_RACE_CAMERA_LOCATION_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_RACE_BRAKE_CONTROL_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMER_RACE_ACCELERATOR_CONTROL_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_TITLE_CRED_EARNED_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_TITLE_ACHIEVEMENTS_EARNED_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_GAMERCARD_BIO_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_AVATAR_METADATA_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_TITLE_SPECIFIC3_
jmp 0x10025cf0
sub edi, 0x3ffe
je 0x10025ce6
sub edi, 1
je 0x10025cda
push 0x100b7970
push str._s__id__Unknown_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_TITLE_SPECIFIC1_
jmp 0x10025cf0
push 0x100b7970
push str._s__id__XPROFILE_TITLE_SPECIFIC2_
push 0x100b7970
call esi
mov ecx, dword [ebp + 0x1c]
add esp, 0xc
mov edx, dword [ebp + 0xc]
add ecx, ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x1c], ecx
cmp edx, eax
jb 0x10025aa6
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax + 1]
lea eax, [ecx + eax*8]
mov dword [ebx], eax
test esi, esi
je 0x10025d39
mov dword [esi], 0x7a
mov eax, dword [ebx]
mov dword [esi + 0x18], 0x7a
jmp 0x10025faa
pop edi
pop esi
mov eax, 0x7a
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [ebp + 0x1c]
push eax
push 0
push esi
call fcn.10029b50
mov ecx, dword [ebp + 0x10]
lea ebx, [esi + 8]
add esp, 0xc
mov dword [esi], ecx
mov dword [esi + 4], ebx
lea eax, [ecx + ecx*4]
lea eax, [ebx + eax*8]
mov dword [ebp + 0x1c], eax
xor eax, eax
mov dword [ebp - 8], eax
test ecx, ecx
je 0x10025f91
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov dword [ebp - 0xc], eax
mov eax, esi
shr eax, 0x1c
mov dword [ebp - 4], eax
mov eax, esi
shr eax, 0x10
push 0x100b7970
push dword [ebp + 0xc]
and eax, 0xfff
mov dword [ebp - 0x10], eax
call fcn.100229f0
mov ecx, 0x100b7970
add esp, 8
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x10025db0
mov eax, dword [str.Offline_]
mov dword [ecx], eax
mov eax, dword [0x10055a48]
mov dword [ecx + 4], eax
mov eax, dword [0x10055a4c]
mov dword [ecx + 8], eax
mov eax, dword [0x10055a50]
mov dword [ecx + 0xc], eax
mov eax, dword [0x10055a54]
push 0
push 0x100b7970
mov dword [ecx + 0x10], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
and esi, 0x3fff
sub esi, 0x3ffd
je 0x10025ec1
sub esi, 1
je 0x10025e7e
sub esi, 1
je 0x10025e33
mov edi, 0x100b7970
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x10025e14
mov ecx, 6
mov esi, str.Settings.txt
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x10025f0d
mov ecx, 0x100b7970
add ecx, 0xfffffffe
nop dword [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x10025e40
mov eax, dword [str.Title1.dat]
mov dword [ecx], eax
mov eax, dword [0x10055a5c]
mov dword [ecx + 4], eax
mov eax, dword [0x10055a60]
mov dword [ecx + 8], eax
mov eax, dword [0x10055a64]
mov dword [ecx + 0xc], eax
mov eax, dword [0x10055a68]
mov dword [ecx + 0x10], eax
mov ax, word [0x10055a6c]
jmp 0x10025f09
mov ecx, 0x100b7970
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x10025e86
mov eax, dword [str.Title2.dat]
mov dword [ecx], eax
mov eax, dword [0x10055a74]
mov dword [ecx + 4], eax
mov eax, dword [0x10055a78]
mov dword [ecx + 8], eax
mov eax, dword [0x10055a7c]
mov dword [ecx + 0xc], eax
mov eax, dword [0x10055a80]
mov dword [ecx + 0x10], eax
mov ax, word [0x10055a84]
jmp 0x10025f09
mov ecx, 0x100b7970
add ecx, 0xfffffffe
nop dword [eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x10025ed0
mov eax, dword [str.Title3.dat]
mov dword [ecx], eax
mov eax, dword [0x10055a8c]
mov dword [ecx + 4], eax
mov eax, dword [0x10055a90]
mov dword [ecx + 8], eax
mov eax, dword [0x10055a94]
mov dword [ecx + 0xc], eax
mov eax, dword [0x10055a98]
mov dword [ecx + 0x10], eax
mov ax, word [0x10055a9c]
mov word [ecx + 0x14], ax
push 0x10054e64
push 0x100b7970
call fcn.100321d1
mov edi, eax
add esp, 8
test edi, edi
jne 0x10025f29
mov dword [ebx], eax
jmp 0x10025f60
cmp dword [ebp - 4], 6
jne 0x10025f57
push edi
push 4
lea esi, [ebx + 0x20]
push 1
push esi
call fcn.1003250c
push edi
push dword [esi]
mov esi, dword [ebp + 0x1c]
push 1
push esi
call fcn.1003250c
add esp, 0x20
mov dword [ebx + 0x24], esi
mov dword [ebx], 2
push edi
call fcn.10032276
add esp, 4
mov eax, dword [ebp - 4]
mov edi, dword [ebp + 0x1c]
add edi, dword [ebp - 0x10]
mov byte [ebx + 0x18], al
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x1c], edi
mov eax, dword [eax]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebx + 8], 0
add ebx, 0x28
mov dword [ebp - 8], eax
cmp eax, dword [ebp + 0x10]
jb 0x10025d77
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x10025fda
mov dword [esi], 0
mov eax, dword [ebx]
mov dword [esi + 0x18], 0
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10025fbb
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10025fcc
push dword [esi + 0x14]
push dword [esi + 4]
push dword [esi]
call eax
pop edi
pop esi
mov eax, 0x3e5
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x1c