Function at 0x41697f
Capabilities:
Create directory
Get common file path

Disassembly:
mov eax, 0x439238
call fcn.00437bf0
sub esp, 0x850
push ebx
push esi
lea eax, [ebp - 0x3c]
push edi
push eax
call fcn.0040e6f7
pop ecx
xor ebx, ebx
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], ebx
call fcn.00403094
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_CharLowerW]
push 0x445a14
lea ecx, [ebp - 0x1c]
call fcn.00402d79
mov eax, dword [eax]
push ebx
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.004030c9
test eax, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
setg byte [ebp - 0xd]
call fcn.00402cb3
cmp byte [ebp - 0xd], bl
push 1
pop esi
je 0x40ec2b
mov dword [0x456abc], esi
push str._portable
lea ecx, [ebp - 0x1c]
call fcn.00402d79
mov eax, dword [eax]
push ebx
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 2
call fcn.004030c9
test eax, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
setg byte [ebp - 0xd]
call fcn.00402cb3
cmp byte [ebp - 0xd], bl
je 0x40ec64
mov dword [0x456abc], esi
push str._port
lea ecx, [ebp - 0x1c]
call fcn.00402d79
mov eax, dword [eax]
push ebx
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.004030c9
test eax, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
setg byte [ebp - 0xd]
call fcn.00402cb3
cmp byte [ebp - 0xd], bl
je 0x40ec9d
mov dword [0x456abc], esi
mov eax, dword [0x465708]
cmp dword [eax - 0xc], ebx
jl 0x40ecb6
mov dword [ebp - 0x38], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40ecc8
mov ecx, dword [0x444130]
push eax
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x38]
call fcn.0040e4ac
mov eax, dword [0x45689c]
mov ecx, 0x1ff
mov dword [ebp - 0x85c], eax
xor eax, eax
lea edi, [ebp - 0x858]
mov byte [ebp - 4], 4
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x85c]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x85c]
lea ecx, [ebp - 0x2c]
push eax
call fcn.00402cdf
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 5
push eax
call fcn.0040e885
pop ecx
mov esi, 0x445518
lea ecx, [ebp - 0x14]
push esi
mov byte [ebp - 4], 6
call fcn.00402d79
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 7
push dword [eax - 8]
call fcn.00402f26
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.00402cb3
push esi
lea ecx, [ebp - 0x14]
call fcn.00402d79
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x30]
push eax
mov byte [ebp - 4], 8
push dword [eax - 8]
call fcn.00402f26
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.00402cb3
mov esi, 0x4459fc
mov edi, 0x4459f4
push esi
push edi
lea ecx, [ebp - 0x2c]
call fcn.0040348c
push esi
push edi
lea ecx, [ebp - 0x30]
call fcn.0040348c
lea ecx, [ebp - 0x2c]
call fcn.00403094
push dword [ebp - 0x2c]
mov edi, dword [sym.imp.USER32.dll_CharLowerW]
call edi
lea ecx, [ebp - 0x30]
call fcn.00403094
push dword [ebp - 0x30]
call edi
push str..ini
lea ecx, [ebp - 0x48]
call fcn.00402d79
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x54]
push esi
push eax
call fcn.00407523
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xa
push ecx
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00407449
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0xb
push eax
call fcn.0040e885
pop ecx
mov edi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, edi
mov byte [ebp - 4], 0xc
mov eax, dword [eax]
push eax
push dword [eax - 8]
call fcn.00402f26
mov eax, dword [edi]
cmp dword [eax - 0xc], ebx
jl 0x40ee1a
mov dword [ebp - 0x20], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40ee2c
mov eax, dword [0x444130]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], eax
push dword [edi]
call fcn.0040e4ac
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x11
call fcn.00402cb3
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x10
call fcn.00402cb3
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xf
call fcn.00402cb3
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xe
call fcn.00402cb3
lea eax, [ebp - 0x20]
mov ecx, 0x4568b0
push eax
call fcn.00402e92
mov eax, dword [0x444130]
mov dword [ebp - 0x18], eax
push ebx
mov byte [ebp - 4], 0x12
call sub.MSVCRT.dll_time
pop ecx
push eax
lea eax, [ebp - 0x18]
push 0x444950
push eax
call fcn.004030fb
mov ecx, dword [ebp - 0x18]
add esp, 0xc
cmp dword [ecx - 0xc], ebx
lea eax, [ecx - 0xc]
jl 0x40eea6
push eax
mov dword [ebp - 0x34], ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40eeb7
mov eax, dword [0x444130]
push ecx
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], eax
call fcn.0040e4ac
mov edi, 0x4568b4
mov byte [ebp - 4], 0x13
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 3
jle 0x40ef9f
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push edi
call fcn.00402cdf
lea eax, [ebp - 0x40]
push eax
call fcn.0040e76d
pop ecx
pop ecx
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x14
call fcn.00403094
push dword [ebp - 0x40]
call dword [sym.imp.USER32.dll_CharLowerW]
push 0x4459e8
lea ecx, [ebp - 0x14]
call fcn.00402d79
push dword [ebp - 0x14]
push dword [ebp - 0x40]
call sub.MSVCRT.dll_wcscmp
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x14]
setne byte [ebp - 0xd]
call fcn.00402cb3
cmp byte [ebp - 0xd], bl
je 0x40f04b
push str.Error
lea ecx, [ebp - 0x24]
call fcn.00402d79
mov eax, dword [eax]
push str.The_File_Extension_must_be_.ini:_n
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x1c], eax
call fcn.00402d79
push edi
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x16
push eax
call fcn.004074af
mov eax, dword [eax]
push ebx
push dword [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x14]
call fcn.00402cb3
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x15
call fcn.00402cb3
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x14
call fcn.00402cb3
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x13
call fcn.00402cb3
push ebx
lea ecx, [ebp - 0x30]
push dword [ebp - 0x2c]
call fcn.004030c9
test eax, eax
je 0x40f14d
cmp dword [0x456abc], ebx
je 0x40f14d
push ebx
lea ecx, [ebp - 0x18]
call fcn.00403003
mov edi, str.TestIni
push eax
push edi
call fcn.0040f569
pop ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.00402c6d
call fcn.0040e96f
cmp eax, 1
pop ecx
jne 0x40f152
push 0x4561f0
lea ecx, [ebp - 0x18]
call fcn.00402ee2
push 0x6f
lea ecx, [ebp - 0x18]
call fcn.00403003
push eax
push edi
call fcn.0040f548
pop ecx
pop ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call fcn.0040306b
push dword [ebp - 0x34]
push dword [ebp - 0x18]
call sub.MSVCRT.dll_wcscmp
pop ecx
test eax, eax
pop ecx
je 0x40f3a1
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.00402c6d
call fcn.0040e9cb
pop ecx
jmp 0x40f152
mov eax, dword [0x444130]
mov dword [ebp - 0x24], eax
push ebx
mov byte [ebp - 4], 0x17
call sub.MSVCRT.dll_time
pop ecx
push eax
lea eax, [ebp - 0x24]
push 0x444950
push eax
call fcn.004030fb
mov ecx, dword [ebp - 0x24]
add esp, 0xc
cmp dword [ecx - 0xc], ebx
lea eax, [ecx - 0xc]
jl 0x40f087
push eax
mov dword [ebp - 0x14], ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40f098
mov eax, dword [0x444130]
push ecx
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
call fcn.0040e4ac
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x18
call fcn.00403003
push eax
push str.TestIni
call fcn.0040f569
pop ecx
pop ecx
push 0x4561f0
lea ecx, [ebp - 0x24]
call fcn.00402ee2
push 0x6f
lea ecx, [ebp - 0x24]
call fcn.00403003
push eax
push str.TestIni
call fcn.0040f548
pop ecx
pop ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x24]
call fcn.0040306b
push dword [ebp - 0x14]
push dword [ebp - 0x24]
call sub.MSVCRT.dll_wcscmp
pop ecx
test eax, eax
pop ecx
je 0x40f35f
mov eax, dword [ebp - 0x20]
push ecx
mov dword [ebp - 0x44], esp
mov ecx, esp
cmp dword [eax - 0xc], ebx
jl 0x40f114
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40f123
mov eax, dword [0x444130]
mov dword [ecx], eax
push dword [ebp - 0x20]
call fcn.0040e4ac
call fcn.0040e9cb
pop ecx
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x14]
call fcn.00402cb3
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x14
call fcn.00402cb3
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x13
call fcn.00402cb3
mov edi, str.TestIni
mov eax, dword [0x444130]
mov dword [ebp - 0x28], eax
push ebx
push 0x1a
push 0x400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x19
call fcn.00403003
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x28]
call fcn.0040306b
push 0x445518
lea ecx, [ebp - 0x14]
call fcn.00402d79
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00407449
mov eax, dword [eax]
lea ecx, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0x1b
push dword [eax - 8]
call fcn.00402f26
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1a
call fcn.00402cb3
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x19
call fcn.00402cb3
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str..ini
lea ecx, [ebp - 0x1c]
call fcn.00402d79
lea eax, [ebp - 0x28]
push esi
push eax
lea eax, [ebp - 0x44]
push eax
mov byte [ebp - 4], 0x1c
call fcn.004074af
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x1d
push ecx
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00407449
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1e
push ecx
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00407449
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1f
call fcn.00402e92
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x1e
call fcn.00402cb3
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1d
call fcn.00402cb3
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x1c
call fcn.00402cb3
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x19
call fcn.00402cb3
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x13
call fcn.00402cb3
lea eax, [ebp - 0x20]
mov ecx, 0x4568b0
push eax
call fcn.00402e92
push ebx
call sub.MSVCRT.dll_time
pop ecx
sub eax, 0x16
push eax
lea eax, [ebp - 0x18]
push 0x444950
push eax
call fcn.004030fb
add esp, 0xc
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x34]
push eax
call fcn.00402e92
push ebx
lea ecx, [ebp - 0x18]
call fcn.00403003
push eax
push edi
call fcn.0040f569
pop ecx
pop ecx
push 0x4561f0
lea ecx, [ebp - 0x18]
call fcn.00402ee2
push 0x6f
lea ecx, [ebp - 0x18]
call fcn.00403003
push eax
push edi
call fcn.0040f548
pop ecx
pop ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call fcn.0040306b
push dword [ebp - 0x34]
push dword [ebp - 0x18]
call sub.MSVCRT.dll_wcscmp
pop ecx
test eax, eax
pop ecx
je 0x40f2fa
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.00402c6d
call fcn.0040e9cb
pop ecx
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x12
call fcn.00402cb3
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xe
call fcn.00402cb3
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call fcn.00402cb3
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
call fcn.00402cb3
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.00402cb3
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], bl
call fcn.00402cb3
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00402cb3
mov ecx, dword [ebp - 0xc]
push 1
pop eax
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
mov eax, edi
test eax, eax
je 0x40f36c
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push eax
mov ecx, 0x4568b0
call fcn.00402dfd
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x17
call fcn.00402cb3
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x14
call fcn.00402cb3
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x13
call fcn.00402cb3
jmp 0x40f2fa
mov dword [0x456ab4], 1
jmp 0x40f270
call fcn.00416802
jmp 0x40ebbc