Function at 0x4045f0
Capabilities:
Create directory
Get common file path
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2f44
call fcn.0040b570
mov eax, dword [0x412014]
xor eax, esp
mov dword [esp + 0x2f40], eax
push ebx
push esi
push edi
push 0x400
lea eax, [esp + 0x74c]
mov esi, ecx
push 0
push eax
mov ebx, edx
mov dword [esp + 0x18], esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x640]
push 0x104
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x640]
push eax
push 0
push 0
push 5
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
push 0
push 0x10
lea eax, [esp + 0x750]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
push 0x400
lea eax, [esp + 0x244]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x748]
push eax
lea eax, [esp + 0x244]
push str._sLogInfo
push eax
call fcn.004085b0
add esp, 0xc
lea eax, [esp + 0x240]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0x10
je 0x4046c8
push 0
lea eax, [esp + 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add esi, 4
lea eax, [esp + 0x748]
push esi
push eax
lea eax, [esp + 0x248]
push str._sLogInfo_s.ini
push eax
call fcn.004085b0
add esp, 0x10
lea eax, [esp + 0x240]
push eax
push 0
push str.time
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
lea eax, [esp + 0xb48]
push 0x400
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1748]
push 0x400
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1b48]
push 0x800
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x748]
push eax
lea eax, [esp + 0x174c]
push str._sLoginData.ini
push eax
call fcn.004085b0
add esp, 0xc
lea eax, [esp + 0x748]
push eax
lea eax, [esp + 0xb4c]
push str._sSosoAppdata.ini
push eax
call fcn.004085b0
mov esi, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__access]
lea eax, [esp + 0xb54]
add esp, 0xc
push 0
push eax
call esi
add esp, 8
test eax, eax
je 0x4047bf
lea eax, [esp + 0x748]
push eax
lea eax, [esp + 0xb4c]
push str._sLogInfoSosoAppdata.ini
push eax
call fcn.004085b0
add esp, 0xc
lea eax, [esp + 0xb48]
push 0
push eax
call esi
mov edi, dword [sym.imp.mfc140u.dll_CListCtrl::SetItemText]
add esp, 8
test eax, eax
jne 0x40491b
movaps xmm0, xmmword [0x40ed70]
lea eax, [esp + 0xf48]
push 0x800
push 0
push eax
movups xmmword [esp + 0x23c], xmm0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0xb48]
push eax
push 0x800
lea eax, [esp + 0xf50]
push eax
mov eax, dword [esp + 0x18]
push 0x40da98
push str.Soso
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [esp + 0x14], eax
test eax, eax
je 0x40491b
push 0xc00
lea eax, [esp + 0x234c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x2354]
add esp, 0xc
lea ecx, [esp + 0xf48]
push eax
call fcn.00401d80
add esp, 4
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x238]
push ecx
push eax
lea eax, [esp + 0x2358]
push eax
call fcn.004045e0
add esp, 0x14
cmp dword [esp + 0x14], 0
je 0x40490b
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
sub eax, dword [esp + 0x1c]
add esp, 4
cmp eax, 0x3f480
jae 0x40490b
mov ecx, dword [0x4137b8]
push 0x40deb4
push 5
push ebx
call edi
lea eax, [esp + 0x1ac]
push eax
lea eax, [esp + 0x128]
push eax
lea eax, [esp + 0x13c]
mov ebx, dword [esp + 0x14]
push eax
lea eax, [ebx + 4]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoll]
mov edx, dword [ebx]
add esp, 4
mov ecx, eax
call fcn.00408b00
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f40]
xor ecx, esp
call fcn.0040a775
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4137b8]
push 0x40dec0
push 5
push ebx
call edi
lea eax, [esp + 0x240]
push 0
push eax
call esi
add esp, 8
test eax, eax
jne 0x404a2b
movaps xmm0, xmmword [0x40ed70]
push 0x800
push eax
lea eax, [esp + 0xf50]
push eax
movups xmmword [esp + 0x23c], xmm0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x240]
push eax
push 0x800
lea eax, [esp + 0xf50]
push eax
mov eax, dword [esp + 0x18]
push 0x40da98
push str.Soso
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [esp + 0x14], eax
test eax, eax
je 0x404a2b
push 0xc00
lea eax, [esp + 0x234c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x2354]
add esp, 0xc
lea ecx, [esp + 0xf48]
push eax
call fcn.00401d80
add esp, 4
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x238]
push ecx
push eax
lea eax, [esp + 0x2358]
push eax
call fcn.004045e0
add esp, 0x14
cmp dword [esp + 0x14], 0
je 0x404a1b
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
sub eax, dword [esp + 0x1c]
add esp, 4
cmp eax, 0x3f480
jae 0x404a1b
mov ecx, dword [0x4137b8]
push 0x40deb4
push 5
push ebx
call edi
jmp 0x4048c1
mov ecx, dword [0x4137b8]
push 0x40dec0
push 5
push ebx
call edi
lea eax, [esp + 0x1748]
push 0
push eax
call esi
add esp, 8
test eax, eax
jne 0x404b64
push 0x120
push eax
lea eax, [esp + 0x20]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1748]
push eax
push 0xc00
lea eax, [esp + 0x1b50]
push eax
mov eax, dword [esp + 0x18]
push 0x40da98
push str.LoginData
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0x1b48]
mov dword [esp + 0x14], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404a90
sub ecx, edx
jne 0x404ab7
push ecx
lea eax, [esp + 0x244]
push eax
call esi
add esp, 8
test eax, eax
je 0x404ab7
push 0x40ded4
jmp 0x404b69
mov ecx, dword [0x4137b8]
push 0x40deb4
push 5
push ebx
call edi
push 0x400
lea eax, [esp + 0xf4c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x20]
add esp, 0xc
xor esi, esi
xor ecx, ecx
test edx, edx
js 0x404b08
nop word [eax + eax]
mov al, byte [esp + ecx + 0x1b48]
cmp al, 0x20
je 0x404b03
mov byte [esp + esi + 0xf48], al
inc esi
inc ecx
cmp ecx, edx
jle 0x404af0
lea edx, [esp + 0xf48]
lea ecx, [esp + 0x1b48]
call fcn.00401cf0
mov eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0xf4c]
push eax
lea eax, [esp + 0x20]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
sub eax, dword [esp + 0x20]
add esp, 4
cmp eax, 0x2a300
ja 0x404b64
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x3c]
jmp 0x4048d8
push 0x40dee0
mov ecx, dword [0x4137b8]
push 5
push ebx
call edi
mov ecx, dword [esp + 0x2f4c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040a775
mov esp, ebp
pop ebp
ret