Function at 0x436e82
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd38
push ebx
push esi
push edi
call fcn.00429432
or eax, eax
jne 0x43796e
mov eax, dword [0x4adb6a]
mov dword [ebp - 0x2a4], eax
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x215
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
lea eax, [ebp - 0x100]
push eax
call fcn.004010ef
lea edx, [ebp - 0x100]
add edx, eax
dec edx
mov al, byte [edx]
cmp al, 0x5c
je 0x436efb
mov ax, 0x5c
mov word [ebp - 0x200], ax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0x100
lea eax, [ebp - 0x200]
push eax
push 0x213
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
lea eax, [ebp - 0x200]
push eax
call fcn.004010ef
dec eax
jmp 0x436f30
mov byte ss:[eax + ebp - 0x200], 0
dec eax
or eax, eax
je 0x436f3f
cmp byte ss:[eax + ebp - 0x200], 0x20
je 0x436f26
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push 0
lea eax, [ebp - 0x100]
push eax
call sub.kernel32.dll_CreateDirectoryA
or eax, eax
je 0x4378a4
mov ax, 0x5c
mov word [ebp - 0x220], ax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
lea eax, [ebp - 0x100]
push eax
push 0x45de5e
call fcn.004010a7
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
push str..rap
lea eax, [ebp - 0x100]
push eax
call fcn.004010c5
lea eax, [ebp - 0x100]
push eax
push 0x45cb12
call fcn.004010a7
push 0x45cb12
push 0x4adbba
push str.Assembler
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x2a8], 0x1ff
mov ebx, 0x10
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_IsDlgButtonChecked
cmp eax, 1
jne 0x437042
push 0x100
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
push 0x44f7f9
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
inc dword [ebp - 0x2a8]
dec ebx
jne 0x436ff4
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x214
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
or eax, eax
jne 0x437087
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x213
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
push str.Description
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
push 0x45cb12
push str._PBak_
push str.Backup
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
mov eax, dword [0x4adb72]
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2a8], 0x263
mov ebx, 8
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_IsDlgButtonChecked
cmp eax, 1
jne 0x437131
push 5
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45de5e
push 0x45cf22
call fcn.004010a7
lea eax, [ebp - 0x220]
push eax
push 0x45cf22
call fcn.004010c5
push 0
push 0x45cf22
call sub.kernel32.dll_CreateDirectoryA
inc dword [ebp - 0x2a8]
dec ebx
jne 0x4370d5
mov dword [ebp - 0x2a8], 0x259
mov eax, dword [0x4adb72]
mov dword [ebp - 0x2a4], eax
mov ebx, 8
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_IsDlgButtonChecked
cmp eax, 1
jne 0x437290
push 0x45de5e
push 0x45cf22
call fcn.004010a7
lea eax, [ebp - 0x200]
push eax
push 0x45cf22
call fcn.004010c5
mov ax, 0x2e
mov word [ebp - 0x220], ax
lea eax, [ebp - 0x220]
push eax
push 0x45cf22
call fcn.004010c5
push 5
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
lea eax, [ebp - 0x220]
push eax
push 0x45cf22
call fcn.004010c5
push 0x45cf22
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x43724e
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push 0x45cf22
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x43721b
push eax
call sub.kernel32.dll_CloseHandle
push 0
push 0
push 0x45cf22
call fcn.004298f0
jmp 0x437290
push 0x44ece9
push 0x467936
call fcn.004010a7
push 0x45cf22
push 0x467936
call fcn.004010c5
push 0x10
push 0x44f25f
push 0x467936
push 0
call sub.user32.dll_MessageBoxA
jmp 0x437290
push 0x45cf22
push 0x463932
call fcn.004010a7
push 0x44e6ca
push 0x463932
call fcn.004010c5
push 0x114
push 0x44f25f
push 0x463932
push dword [ebp - 0x2a4]
call sub.user32.dll_MessageBoxA
cmp eax, 6
jne 0x437290
jmp 0x4371e4
inc dword [ebp - 0x2a8]
dec ebx
jne 0x437154
cmp dword [0x4ae5fa], 0
je 0x437421
mov edi, dword [0x4ae5fa]
lea esi, [edi + 0x104]
lea ebx, [edi + 0x24000]
jmp 0x437418
cmp dword [esi + 0x104], 0
je 0x437412
push edi
push 0x463932
call fcn.004010a7
push 0x44ef92
push 0x463932
call fcn.004010c5
push esi
push 0x463932
call fcn.004010c5
push esi
push ebx
call fcn.004010a7
push ebx
call fcn.004010ef
lea ebx, [eax + ebx + 1]
push 0x45de5e
push 0x45cf22
call fcn.004010a7
cmp dword [esi + 0x10c], 0
je 0x437379
push 0x45cf22
call fcn.004010ef
lea eax, [eax + 0x45cf22]
push eax
lea eax, [ebp - 0x200]
push eax
push 0x45cf22
call fcn.004010c5
push esi
call fcn.004010ef
jmp 0x437347
dec eax
or eax, eax
je 0x437351
cmp byte [eax + esi], 0x2e
jne 0x437346
cmp byte [eax + esi], 0x2e
jne 0x437365
lea eax, [eax + esi]
push eax
push 0x45cf22
call fcn.004010c5
pop eax
push eax
push ebx
call fcn.004010a7
push ebx
call fcn.004010ef
lea ebx, [eax + ebx + 1]
jmp 0x437395
push esi
push 0x45cf22
call fcn.004010c5
push esi
push ebx
call fcn.004010a7
push ebx
call fcn.004010ef
lea ebx, [eax + ebx + 1]
push ebx
push 0x45de5e
call fcn.004010ef
lea ebx, [eax + 0x45cf22]
jmp 0x4373cf
cmp byte [ebx], 0x5c
jne 0x4373ce
mov byte [ebx], 0
push 0x45cf22
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x4373cb
push 0
push 0x45cf22
call sub.kernel32.dll_CreateDirectoryA
mov byte [ebx], 0x5c
inc ebx
cmp byte [ebx], 0
jne 0x4373a8
pop ebx
push 0
push 0x45cf22
push 0x463932
call sub.kernel32.dll_CopyFileA
cmp dword [esi + 0x108], 0
je 0x4373fd
push 0
push 0
push 0x45cf22
call fcn.004298f0
push 0x45cf22
push ebx
call fcn.004010a7
push ebx
call fcn.004010ef
lea ebx, [eax + ebx + 1]
lea esi, [esi + 0x110]
cmp byte [esi], 0
jne 0x4372c1
mov ebx, 0
mov edi, 0x463932
lea eax, [ebp - 0x220]
push eax
push ebx
call fcn.004011b7
push 0x4adbfa
push 0x104
push 0x45ca0e
push 0x44ef8c
lea eax, [ebp - 0x220]
push eax
push str.MakeFiles
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x4374a1
lea eax, [ebp - 0x220]
push eax
push edi
call fcn.004010a7
push edi
call fcn.004010ef
lea edi, [eax + edi]
mov word [edi], 0x3d
lea eax, [ebp - 0x200]
push eax
push edi
call fcn.004010c5
push 0x45ca0e
push edi
call fcn.004010c5
push edi
call fcn.004010ef
lea edi, [eax + edi + 1]
mov byte [edi], 0
inc ebx
cmp ebx, 0x20
jne 0x43742b
push 0x45cb12
push 0x463932
push str.MakeFiles
call sub.kernel32.dll_WritePrivateProfileSectionA
cmp byte [0x4adb7a], 0
je 0x43756b
call fcn.00437973
or eax, eax
jne 0x43756b
mov ebx, 0
lea eax, [ebp - 0x220]
push eax
push ebx
call fcn.004011b7
push 0x45cb12
push 0x80
push 0x45ca0e
push 0x44ef8c
lea eax, [ebp - 0x220]
push eax
push str.MakeFiles
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x437561
push 0
push 1
push 0
lea eax, [ebp - 0x260]
push eax
push 0x45ca0e
call fcn.0040fefe
or eax, eax
je 0x437546
mov edx, eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x200]
push eax
push 0x45ca0e
push edx
call fcn.00436e26
push 0x45cb12
push 0x45ca0e
lea eax, [ebp - 0x220]
push eax
push str.MakeFiles
call sub.kernel32.dll_WritePrivateProfileStringA
inc ebx
cmp ebx, 0x20
jne 0x4374da
mov eax, dword [0x4adb76]
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2a8], 0x2bd
lea edi, [ebp - 0x100]
mov ebx, 0x10
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
call sub.user32.dll_IsDlgButtonChecked
cmp eax, 1
jne 0x4375a8
mov eax, 0x312c
jmp 0x4375ad
mov eax, 0x302c
mov dword [edi], eax
add edi, 2
inc dword [ebp - 0x2a8]
dec ebx
jne 0x43758b
push 0x45cb12
lea eax, [ebp - 0xff]
push eax
push str.Menu
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x31
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d0
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x32
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d1
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x33
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d2
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x34
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d3
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x35
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d5
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x36
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d6
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x220], 0x37
push 0x100
lea eax, [ebp - 0x100]
push eax
push 0x2d4
push dword [ebp - 0x2a4]
call sub.user32.dll_GetDlgItemTextA
push 0x45cb12
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x220]
push eax
push str.MakeDef
call sub.kernel32.dll_WritePrivateProfileStringA
push 0x4adbfa
push 1
push str.Group
push 0x44f7f1
call sub.kernel32.dll_GetPrivateProfileIntA
or eax, eax
je 0x4377d1
mov dword [ebp - 0x220], 0x31
jmp 0x4377db
mov dword [ebp - 0x220], 0x30
push 0x45cb12
lea eax, [ebp - 0x220]
push eax
push str.Group
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
push 0x4adbfa
push 1
push str.GroupExpand
push 0x44f7f1
call sub.kernel32.dll_GetPrivateProfileIntA
or eax, eax
je 0x43781c
mov dword [ebp - 0x220], 0x31
jmp 0x437826
mov dword [ebp - 0x220], 0x30
push 0x45cb12
lea eax, [ebp - 0x220]
push eax
push str.GroupExpand
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
push 0x45cb12
push 0x45cf22
call fcn.004010a7
push 0x4adbfa
push 0x45cd1a
call fcn.004010a7
push 0
call fcn.0040864a
call fcn.004288f2
cmp dword [0x4ae5fa], 0
je 0x43789a
mov eax, dword [0x4ae5fa]
lea eax, [eax + 0x24000]
push 0x1000
push eax
push 0x45cb12
push 0x48d
push dword [0x4538b0]
call fcn.00408423
mov eax, 0
jmp 0x43796e
push 1
push 0x97
push dword [0x4adb6a]
call fcn.00401778
push 1
push 0x98
push dword [0x4adb6e]
call fcn.00401778
push 1
push 0x99
push dword [0x4adb72]
call fcn.00401778
push 1
push 0x9a
push dword [0x4adb76]
call fcn.00401778
lea eax, [ebp - 0x100]
push eax
push 0x463932
call fcn.004010a7
lea eax, [ebp - 0x100]
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x437943
push str._r_r
push 0x463932
call fcn.004010c5
push 0x114
push 0x44f25f
push 0x463932
push dword [ebp - 0x2a4]
call sub.user32.dll_MessageBoxA
cmp eax, 6
jne 0x437969
jmp 0x436f68
push 0x44e67f
push 0x463932
call fcn.004010c5
push 0x10
push 0x44f25f
push 0x463932
push dword [ebp - 0x2a4]
call sub.user32.dll_MessageBoxA
mov eax, 1
pop edi
pop esi
pop ebx
leave
ret