Function at 0x427930
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x61c
mov eax, dword [0x472f30]
test eax, eax
je 0x427952
mov esi, dword [0x472f20]
dec esi
jns 0x427d16
mov ecx, dword [0x472f50]
xor ebx, ebx
mov dword [0x472f20], ebx
test ecx, ecx
je 0x427d26
mov eax, dword [0x4739b0]
mov edx, dword [eax]
test edx, edx
je 0x427a3b
xor edi, edi
xor esi, esi
jmp 0x4279a4
mov eax, dword [0x472f30]
add edi, 0x24
add esi, 0x24
mov dword [eax + edx*4], ebx
mov eax, dword [0x4739b0]
inc dword [0x472f20]
mov ebx, dword [edi + eax]
test ebx, ebx
je 0x427a3b
lea ebx, [esi + eax]
mov ecx, dword [ebx]
mov dword [esp], ecx
call fcn.00414f40
mov dword [esp + 0x10], eax
mov edx, 0xffffffff
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], edx
xor edx, edx
mov dword [esp + 0xc], eax
mov ecx, dword [ebx + 8]
mov dword [esp], 1
mov dword [esp + 4], ecx
mov eax, dword [ebx]
call fcn.00423430
mov edx, dword [0x472f20]
mov ebx, eax
mov ecx, dword [0x472f50]
lea eax, [edx + 1]
cmp eax, ecx
jb 0x427980
lea eax, [ecx + 0x1f4]
add edi, 0x24
add esi, 0x24
mov dword [0x472f50], eax
shl eax, 2
mov dword [esp + 4], eax
mov edx, dword [0x472f30]
mov dword [esp], edx
call sub.msvcrt.dll_realloc
mov dword [0x472f30], eax
mov edx, dword [0x472f20]
mov dword [eax + edx*4], ebx
mov eax, dword [0x4739b0]
inc dword [0x472f20]
mov ebx, dword [edi + eax]
test ebx, ebx
jne 0x4279a4
xor edx, edx
xor esi, esi
lea edi, [ebp - 0x48]
mov dword [ebp - 0x590], edx
call fcn.00414600
mov dword [esp + 4], esi
mov ecx, 0x400
mov ebx, eax
mov dword [esp + 8], ecx
mov esi, 0x4644b6
mov dword [esp], 0x4731b0
call sub.msvcrt.dll_memset
cmp byte [ebx], 0
mov dword [esp + 4], edi
cmovne esi, ebx
mov dword [esp], esi
call sub.msvcrt.dll__stat
test eax, eax
jne 0x427d56
lea edx, [ebp - 0x278]
mov eax, 0x104
xor ebx, ebx
mov dword [esp], edx
xor edi, edi
mov dword [esp + 4], eax
call sub.msvcrt.dll__getcwd
mov dword [esp], esi
mov esi, 0x400
call sub.msvcrt.dll__chdir
mov dword [esp], 0x4644b8
lea ecx, [ebp - 0x168]
mov dword [esp + 4], ecx
call sub.msvcrt.dll__findfirst
mov dword [ebp - 0x594], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], 0x4735b0
call sub.msvcrt.dll_memset
mov dword [0x472f60], edi
mov eax, 0x4731b0
mov dword [ebp - 0x5e0], eax
lea edi, [ebp - 0x168]
mov dword [esp + 4], edi
mov ebx, dword [ebp - 0x594]
mov dword [esp], ebx
call sub.msvcrt.dll__findnext
test eax, eax
jne 0x427e0a
test byte [ebp - 0x168], 0x10
jne 0x427af0
mov ecx, 0x4644ba
lea esi, [ebp - 0x154]
xor ebx, ebx
mov dword [esp + 4], ecx
xor edi, edi
mov dword [esp], esi
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x5a0], eax
test eax, eax
mov dword [ebp - 0x598], ebx
mov dword [ebp - 0x59c], edi
je 0x427af0
lea esi, [esi]
mov edi, dword [ebp - 0x5a0]
lea eax, [ebp - 0x378]
mov ebx, 0x100
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], edi
call sub.msvcrt.dll_fgets
test eax, eax
je 0x427d96
cmp byte [ebp - 0x378], 0x5b
jne 0x427b50
mov eax, 0x5d
lea edx, [ebp - 0x378]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x427b50
mov byte [eax], 0
lea esi, [ebp - 0x377]
mov ecx, 0x10
cld
mov edi, 0x4644bc
repe cmpsb byte [esi], byte es:[edi]
jne 0x427b50
mov ecx, dword [ebp - 0x5a0]
lea edx, [ebp - 0x378]
mov esi, 0x100
mov dword [esp + 4], esi
mov dword [esp], edx
mov dword [esp + 8], ecx
call sub.msvcrt.dll_fgets
test eax, eax
je 0x427d96
mov edx, str.__r_n
lea ebx, [ebp - 0x378]
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msvcrt.dll_strtok
mov dword [ebp - 0x5a4], eax
test eax, eax
je 0x427d96
cld
mov ecx, 0xf
mov edi, str.RootFolderIcon
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4283d1
cld
mov esi, dword [ebp - 0x5a4]
mov ecx, 0xe
mov edi, str.SubFolderIcon
repe cmpsb byte [esi], byte es:[edi]
jne 0x427bb5
mov dword [esp], 0
mov eax, str.__r_n
mov dword [esp + 4], eax
call sub.msvcrt.dll_strtok
test eax, eax
mov esi, eax
je 0x427bb5
mov dword [esp], eax
mov ebx, 0x2e
mov dword [esp + 4], ebx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x427c64
mov byte [eax], 0
mov edi, dword [0x472f60]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [edi*4 + 0x4735b0], eax
mov eax, dword [0x472f60]
mov edx, dword [eax*4 + 0x4735b0]
test edx, edx
je 0x427bb5
add eax, 0x11
mov dword [ebp - 0x59c], eax
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_strcpy
inc dword [0x472f60]
jmp 0x427bb5
mov dword [esp], eax
call fcn.00447ee0
mov dword [ebx + 0x18], 0
lea esi, [esi]
lea edi, [edi]
mov edx, dword [ebx]
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [ebx], 0
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call fcn.00429600
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov eax, dword [0x472f30]
mov dword [eax + esi*4], 0
mov eax, dword [0x472f20]
dec eax
dec esi
js 0x427952
mov dword [0x472f20], eax
mov eax, dword [0x472f30]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x427cf8
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x427cd0
jmp 0x427cb6
mov edi, 0xc8
mov dword [0x472f50], edi
mov dword [esp], 0x320
call sub.msvcrt.dll_malloc
mov dword [0x472f30], eax
test eax, eax
jne 0x427d63
xor esi, esi
mov dword [0x472f50], esi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
call sub.msvcrt.dll__mkdir_1
jmp 0x427a87
mov edx, eax
mov eax, dword [0x472f50]
lea ecx, [eax*4]
cmp ecx, 7
jbe 0x427d87
test dl, 4
je 0x427d87
mov dword [edx], 0
sub ecx, 4
add edx, 4
cld
xor eax, eax
shr ecx, 2
mov edi, edx
rep stosd dword es:[edi], eax
jmp 0x427968
mov eax, dword [ebp - 0x5a0]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
mov ecx, dword [ebp - 0x59c]
lea eax, [ebp - 0x154]
mov dword [esp + 8], ecx
mov esi, dword [ebp - 0x598]
mov dword [esp + 4], esi
mov edx, dword [ebp - 0x590]
add edx, 6
mov dword [esp], edx
mov edx, dword [ebp - 0x5e0]
call fcn.00426ee0
test eax, eax
je 0x427af0
inc dword [ebp - 0x590]
lea edi, [ebp - 0x168]
add dword [ebp - 0x5e0], 4
mov dword [esp + 4], edi
mov ebx, dword [ebp - 0x594]
mov dword [esp], ebx
call sub.msvcrt.dll__findnext
test eax, eax
je 0x427b10
lea ecx, [ebp - 0x278]
xor ebx, ebx
mov esi, 1
mov dword [esp], ecx
call sub.msvcrt.dll__chdir
mov dword [ebp - 0x58c], esi
mov edx, dword [ebp - 0x590]
cmp ebx, edx
mov dword [0x472f40], edx
jge 0x427e77
lea esi, [esi]
lea edi, [edi]
mov edx, dword [str.Favorites]
mov dword [esp + 4], edx
mov edi, dword [ebx*4 + 0x4731b0]
mov dword [esp], edi
call dword [sym.imp.mameplib.dll_mame_stricmp]
test eax, eax
mov eax, 0
cmovne eax, dword [ebp - 0x58c]
inc ebx
cmp ebx, dword [0x472f40]
mov dword [ebp - 0x58c], eax
jl 0x427e40
mov edi, dword [str.Favorites]
mov ecx, 0x4644ee
mov esi, str.dont
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x58c]
mov dword [esp], str.I__shave__s
test eax, eax
cmove esi, ecx
mov dword [esp + 4], esi
call fcn.00428ae0
mov ebx, dword [ebp - 0x58c]
test ebx, ebx
jne 0x42850a
xor esi, esi
cmp esi, dword [0x472f40]
jge 0x427f60
lea esi, [esi]
lea edi, [edi]
mov ebx, dword [esi*4 + 0x4731b0]
mov dword [esp], ebx
call fcn.00414f40
mov edx, dword [ebx + 0x48]
or eax, edx
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x4c]
sub edx, 0x15
mov dword [esp + 0xc], eax
mov ecx, dword [ebx + 0x44]
mov eax, ebx
mov dword [esp + 8], ecx
mov edi, dword [ebx + 0x40]
mov dword [esp], 1
mov dword [esp + 4], edi
call fcn.00423430
mov edx, dword [0x472f20]
mov edi, eax
mov ecx, dword [0x472f50]
lea eax, [edx + 1]
cmp eax, ecx
jae 0x428029
mov eax, dword [0x472f30]
mov dword [eax + edx*4], edi
mov edx, dword [ebp - 0x58c]
inc dword [0x472f20]
test edx, edx
je 0x42801b
mov edx, dword [0x472f40]
lea ecx, [edx - 1]
cmp ecx, esi
je 0x42800c
inc esi
cmp esi, edx
jl 0x427ed0
xor edi, edi
mov ebx, dword [0x472f20]
mov dword [ebp - 0x5b8], edi
cmp dword [ebp - 0x5b8], ebx
mov esi, ebx
mov dword [ebp - 0x5b4], ebx
jge 0x428257
lea esi, [esi]
lea edi, [edi]
mov edi, dword [0x472f30]
mov edx, dword [ebp - 0x5b8]
mov ebx, dword [0x4739b0]
mov ecx, dword [edi + edx*4]
mov dword [ebp - 0x5c0], esi
mov dword [ebp - 0x5bc], ecx
mov eax, dword [ebx]
test eax, eax
je 0x427fd4
mov ecx, dword [ecx + 8]
mov eax, ebx
xor edx, edx
mov esi, esi
cmp dword [eax + 8], ecx
je 0x4286f3
add eax, 0x24
add edx, 0x24
cmp dword [eax], 0
jne 0x427fc0
mov ebx, dword [ebp - 0x5bc]
test byte [ebx + 0x17], 1
jne 0x428059
mov dword [esp], str.Internal_inconsistency_with_non_built_in_folder__but_not_custom
call fcn.00428ae0
inc dword [ebp - 0x5b8]
mov edi, dword [ebp - 0x5b4]
cmp dword [ebp - 0x5b8], edi
jge 0x428257
mov esi, dword [0x472f20]
jmp 0x427f90
mov eax, edi
call fcn.004271b0
test eax, eax
jne 0x4286de
mov edx, dword [0x472f40]
inc esi
cmp esi, edx
jmp 0x427f5a
lea eax, [ecx + 0x1f4]
mov dword [0x472f50], eax
shl eax, 2
mov dword [esp + 4], eax
mov ecx, dword [0x472f30]
mov dword [esp], ecx
call sub.msvcrt.dll_realloc
mov dword [0x472f30], eax
mov edx, dword [0x472f20]
jmp 0x427f2f
mov esi, dword [ebp - 0x5b8]
xor eax, eax
mov dword [ebp - 0x5cc], eax
mov ecx, dword [edi + esi*4]
mov dword [ebp - 0x5d0], ecx
mov esi, dword [ecx + 8]
lea edx, [esi - 0x1b]
mov dword [ebp - 0x5c8], edx
call fcn.00414600
mov edi, dword [ebp - 0x5c8]
mov ecx, str._s_s.ini
mov ebx, dword [edi*4 + 0x4731b0]
mov dword [esp + 8], eax
lea eax, [ebp - 0x488]
lea edi, [ebp - 0x488]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp], edi
mov edx, 0x4644ba
mov dword [esp + 4], edx
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x5c4], eax
test eax, eax
je 0x4284f8
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebp - 0x5c4]
mov eax, 0x100
lea edi, [ebp - 0x588]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], ecx
call sub.msvcrt.dll_fgets
test eax, eax
je 0x4281ec
cmp byte [ebp - 0x588], 0x5b
je 0x428170
cmp esi, 0xffffffff
je 0x4280e0
lea edx, [ebp - 0x588]
mov edi, str.__t_r_n
mov dword [esp + 4], edi
mov dword [esp], edx
call sub.msvcrt.dll_strtok
test eax, eax
mov ebx, eax
je 0x4281e2
mov dword [esp], eax
call sub.msvcrt.dll__strlwr
mov eax, dword [ebp - 0x5cc]
test eax, eax
je 0x428839
mov dword [esp], ebx
call fcn.004020d0
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x5cc]
mov ebx, dword [edx + 0x18]
mov dword [esp], ebx
call fcn.00447f80
jmp 0x4280e0
mov edx, 0x5d
lea edi, [ebp - 0x588]
mov dword [esp + 4], edx
mov dword [esp], edi
call sub.msvcrt.dll_strchr
test eax, eax
je 0x4280e0
mov byte [eax], 0
lea ebx, [ebp - 0x587]
mov ecx, 0x10
cld
mov esi, ebx
mov edi, 0x4644bc
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
cmp al, cl
mov esi, 0xffffffff
je 0x4280e0
mov ecx, 0xc
mov edi, str.ROOT_FOLDER
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x42846a
mov ebx, dword [ebp - 0x5d0]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x5cc], ebx
jmp 0x4280e0
mov esi, 0xffffffff
jmp 0x4280e0
mov esi, dword [ebp - 0x5c4]
test esi, esi
je 0x428204
mov ebx, dword [ebp - 0x5c4]
mov dword [esp], ebx
call sub.msvcrt.dll_fclose
mov edi, dword [0x472f30]
mov esi, dword [0x472f20]
mov edx, 0x422dd0
mov ebx, 4
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov ecx, dword [ebp - 0x5c0]
sub esi, ecx
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x5c0]
lea edx, [edi + eax*4]
mov dword [esp], edx
call sub.msvcrt.dll_qsort
inc dword [ebp - 0x5b8]
mov edi, dword [ebp - 0x5b4]
cmp dword [ebp - 0x5b8], edi
jl 0x428004
mov dword [esp], 0
mov esi, 0x10
call sub.KERNEL32.dll_GetModuleHandleA
mov dword [ebp - 0x5d4], eax
mov edi, dword [0x472f60]
sub esp, 4
mov dword [esp + 4], esi
mov eax, 0xff
xor esi, esi
mov dword [esp + 8], eax
add edi, 0x11
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
mov dword [esp], 0x10
call sub.COMCTL32.DLL_ImageList_Create
mov dword [0x472f10], eax
sub esp, 0x14
jmp 0x4282d1
mov dword [esp + 8], ebx
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
mov eax, dword [0x472f10]
mov dword [esp], eax
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
sub esp, 0xc
inc eax
je 0x428325
inc esi
cmp esi, 0x10
ja 0x428719
mov ecx, dword [esi*8 + 0x45db34]
mov dword [esp], ecx
call fcn.00401660
test eax, eax
mov ebx, eax
jne 0x4282a7
movzx edx, word [esi*8 + 0x45db30]
mov dword [esp + 4], edx
mov ebx, dword [ebp - 0x5d4]
mov dword [esp], ebx
call fcn.0044e135
sub esp, 8
mov ebx, eax
mov ecx, 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov eax, dword [0x472f10]
mov dword [esp], eax
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
sub esp, 0xc
inc eax
jne 0x4282c7
mov dword [esp + 4], esi
xor edx, edx
test ebx, ebx
mov dword [esp], str.Error_creating_icon_on_regular_folder___i__i
setne dl
mov dword [esp + 8], edx
call fcn.00428980
call fcn.00401830
mov dword [ebp - 0x5dc], eax
xor eax, eax
mov ecx, dword [0x472f20]
mov dword [ebp - 0x5d8], eax
cmp dword [ebp - 0x5d8], ecx
jae 0x4283b2
jmp 0x428370
mov eax, dword [0x4739b0]
mov esi, dword [0x472f30]
mov ebx, dword [ebp - 0x5d8]
mov edx, dword [eax]
mov edi, dword [esi + ebx*4]
test edx, edx
je 0x4283a4
mov edx, dword [edi + 8]
xor ebx, ebx
nop
cmp edx, dword [ebx + eax + 8]
je 0x4287a8
add ebx, 0x24
mov esi, dword [ebx + eax]
test esi, esi
jne 0x428390
inc dword [ebp - 0x5d8]
cmp dword [ebp - 0x5d8], ecx
jb 0x428370
call fcn.00422f90
call fcn.00412b60
mov dword [esp], eax
call fcn.00423290
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0
mov eax, str.__r_n
mov dword [esp + 4], eax
call sub.msvcrt.dll_strtok
mov dword [ebp - 0x5a4], eax
test eax, eax
je 0x427c18
mov dword [esp], eax
mov ebx, 0x2e
mov dword [esp + 4], ebx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x42840c
mov byte [eax], 0
mov edx, dword [ebp - 0x5a4]
mov edi, dword [0x472f60]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [edi*4 + 0x4735b0], eax
mov eax, dword [0x472f60]
mov edx, dword [eax*4 + 0x4735b0]
test edx, edx
je 0x427c18
mov esi, dword [ebp - 0x5a4]
add eax, 0x11
mov dword [ebp - 0x598], eax
mov dword [esp], edx
mov dword [esp + 4], esi
call sub.msvcrt.dll_strcpy
inc dword [0x472f60]
jmp 0x427c18
mov edi, dword [0x45dbb8]
lea esi, [edi + 1]
mov dword [0x45dbb8], esi
mov esi, edi
mov dword [esp], ebx
call fcn.00414f40
mov edx, dword [ebp - 0x5c8]
or eax, 0x1000000
mov ecx, dword [edx*4 + 0x4731b0]
mov edx, dword [ecx + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x50]
sub edx, 0x15
mov dword [esp + 0xc], eax
mov edi, dword [ebp - 0x5b8]
mov eax, ebx
mov dword [esp + 4], esi
mov dword [esp], 1
mov dword [esp + 8], edi
call fcn.00423430
mov dword [ebp - 0x5cc], eax
mov edx, dword [0x472f20]
mov ecx, dword [0x472f50]
lea eax, [edx + 1]
cmp eax, ecx
jae 0x42865e
mov eax, dword [0x472f30]
mov ecx, dword [ebp - 0x5cc]
mov dword [eax + edx*4], ecx
inc dword [0x472f20]
jmp 0x4280e0
mov ebx, dword [ebp - 0x5bc]
mov dword [ebx + 8], 0
jmp 0x428204
mov edi, dword [str.golden]
mov ebx, str._s.ini
mov dword [esp], edi
call sub.msvcrt.dll__strdup
mov edi, eax
mov eax, dword [str.cust2]
mov dword [esp], eax
call sub.msvcrt.dll__strdup
mov dword [ebp - 0x5b0], eax
mov esi, dword [str.Favorites]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add eax, 5
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov ecx, dword [str.Favorites]
mov dword [esp + 4], ebx
mov esi, eax
mov dword [esp], eax
mov dword [esp + 8], ecx
call sub.msvcrt.dll_sprintf
mov dword [esp], edi
mov edx, 0x2e
mov dword [esp + 4], edx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x42857b
mov byte [eax], 0
mov ebx, dword [0x472f60]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [ebx*4 + 0x4735b0], eax
mov eax, dword [0x472f60]
mov edx, dword [eax*4 + 0x4735b0]
test edx, edx
jne 0x4286be
mov ecx, 0x2e
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x5b0]
mov dword [esp], edx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x4285cb
mov byte [eax], 0
mov eax, dword [ebp - 0x5b0]
mov ebx, dword [0x472f60]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [ebx*4 + 0x4735b0], eax
mov eax, dword [0x472f60]
mov edx, dword [eax*4 + 0x4735b0]
test edx, edx
jne 0x428698
mov ecx, dword [ebp - 0x5ac]
mov ebx, dword [0x472f40]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x5a8]
lea edx, [ebx*4 + 0x4731b0]
add ebx, 6
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, esi
call fcn.00426ee0
test eax, eax
je 0x42868e
inc dword [0x472f40]
mov dword [esp], esi
call sub.msvcrt.dll_free
mov dword [esp], edi
call sub.msvcrt.dll_free
mov esi, dword [ebp - 0x5b0]
mov dword [esp], esi
call sub.msvcrt.dll_free
jmp 0x427eb4
lea eax, [ecx + 0x1f4]
mov dword [0x472f50], eax
shl eax, 2
mov dword [esp + 4], eax
mov ebx, dword [0x472f30]
mov dword [esp], ebx
call sub.msvcrt.dll_realloc
mov dword [0x472f30], eax
mov edx, dword [0x472f20]
jmp 0x4284e4
xor edx, edx
mov dword [ebp - 0x58c], edx
jmp 0x42863b
mov ecx, dword [ebp - 0x5b0]
add eax, 0x11
mov dword [ebp - 0x5ac], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strcpy
inc dword [0x472f60]
jmp 0x428603
add eax, 0x11
mov dword [ebp - 0x5a8], eax
mov dword [esp + 4], edi
mov dword [esp], edx
call sub.msvcrt.dll_strcpy
inc dword [0x472f60]
jmp 0x4285ad
mov dword [esp + 4], ebx
mov dword [esp], str.created:__s.ini
call fcn.00428ae0
jmp 0x42801b
mov eax, edx
add eax, ebx
je 0x427fd4
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x428210
mov esi, dword [ebp - 0x5b8]
mov dword [esp], esi
call dword [eax + 0x18]
jmp 0x428204
xor esi, esi
cmp esi, dword [0x472f60]
jge 0x42876a
mov ebx, dword [esi*4 + 0x4735b0]
mov dword [esp], ebx
call fcn.00401660
test eax, eax
mov ebx, eax
je 0x4288a2
mov dword [esp + 8], ebx
mov edx, 0xffffffff
mov dword [esp + 4], edx
mov ecx, dword [0x472f10]
mov dword [esp], ecx
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
sub esp, 0xc
inc eax
je 0x4288c3
inc esi
cmp esi, dword [0x472f60]
jl 0x428723
mov esi, dword [0x472f10]
mov dword [esp], esi
call sub.COMCTL32.DLL_ImageList_GetImageCount
sub esp, 4
cmp eax, edi
jge 0x428863
mov ebx, dword [0x472f10]
mov dword [esp], ebx
call sub.COMCTL32.DLL_ImageList_GetImageCount
sub esp, 4
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], str.Error_with_icon_list__too_few_images.___i__i
jmp 0x42833b
mov edx, dword [ebx + eax + 0x1c]
test edx, edx
jne 0x4287bc
mov eax, dword [ebx + eax + 0x20]
test eax, eax
je 0x4283a4
xor esi, esi
mov dword [esp + 4], esi
mov ecx, dword [edi + 0x18]
xor esi, esi
mov dword [esp], ecx
call fcn.00448000
cmp dword [ebp - 0x5dc], 0
jmp 0x4287f3
mov edx, dword [ebx + edx + 0x20]
test edx, edx
jne 0x4287e8
test eax, eax
sete al
movzx eax, al
test eax, eax
jne 0x428817
inc esi
cmp dword [ebp - 0x5dc], esi
jbe 0x428828
mov edx, dword [0x4739b0]
mov eax, 1
mov ecx, dword [ebx + edx + 0x1c]
test ecx, ecx
je 0x4287d8
mov dword [esp], esi
call dword [ebx + edx + 0x1c]
mov edx, dword [0x4739b0]
jmp 0x4287d8
mov dword [esp + 4], esi
mov ecx, dword [edi + 0x18]
mov dword [esp], ecx
call fcn.00447f80
jmp 0x4287ec
inc dword [ebp - 0x5d8]
mov ecx, dword [0x472f20]
jmp 0x4283aa
mov dword [esp], str.Error_parsing__s:_missing__folder_name__or__ROOT_FOLDER_
lea esi, [ebp - 0x488]
mov dword [esp + 4], esi
call fcn.00428980
mov ecx, dword [ebp - 0x5d0]
mov esi, dword [ecx + 8]
mov dword [ebp - 0x5cc], ecx
jmp 0x42814e
mov edi, dword [0x472f10]
mov dword [esp], edi
call sub.COMCTL32.DLL_ImageList_GetImageCount
sub esp, 4
cmp eax, 0x10
ja 0x4288de
mov eax, dword [0x472f10]
mov dword [esp], eax
call sub.COMCTL32.DLL_ImageList_GetImageCount
sub esp, 4
mov ecx, 0x11
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], str.Error_with_icon_list__too_few_images.___i____i
jmp 0x42833b
mov eax, 0x7d
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x5d4]
mov dword [esp], edx
call fcn.0044e135
sub esp, 8
mov ebx, eax
jmp 0x42873c
mov dword [esp + 4], esi
xor ecx, ecx
test ebx, ebx
mov dword [esp], str.Error_creating_icon_on_extra_folder___i__i
setne cl
mov dword [esp + 8], ecx
jmp 0x42833b
call fcn.004013f0
mov edi, dword [0x472f10]
xor ebx, ebx
mov esi, 0x1109
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp + 0xc], edi
mov dword [esp], eax
call fcn.0044e1c5
sub esp, 0x10
jmp 0x428340