Function at 0x40c280
Capabilities:
Get common file path
Read .ini file

Disassembly:
mov eax, 0x1920
call fcn.0043ae00
mov eax, dword [0x51f6c4]
push ebx
push ebp
push esi
test eax, eax
push edi
mov ebp, ecx
jne 0x40c41b
push 0x473bd8
lea eax, [esp + 0x1534]
push 0x400
push eax
push str.English
push 0x46f18c
push str.System
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0x1530]
push str.ChineseGB
push ecx
call fcn.0043fa60
add esp, 8
test eax, eax
je 0x40c41b
mov dl, byte [0x473aa0]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x25]
mov byte [esp + 0x24], dl
push 0x104
rep stosd dword es:[edi], eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.Win.ini
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x24]
mov ecx, ebx
push eax
and ecx, 3
push 0
push str.OLESize2
rep movsb byte es:[edi], byte [esi]
push 0x46f248
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea ecx, [esp + 0x14]
mov ebx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea edx, [esp + 0x14]
push 0xffffffffffffffff
push edx
lea ecx, [esp + 0x18]
call fcn.0044b3da
push 0
lea ecx, [esp + 0x14]
call fcn.0044b485
mov esi, dword [eax + 0x14]
push 0
lea ecx, [esp + 0x14]
add esi, 0x76c
call fcn.0044b485
mov edi, dword [eax + 0x10]
push 0
lea ecx, [esp + 0x14]
inc edi
call fcn.0044b485
lea edx, [esi + esi*8]
mov ecx, eax
mov ecx, dword [ecx + 0xc]
lea eax, [esi + edx*8]
mov edx, edi
lea eax, [eax + eax*4]
shl edx, 4
add ecx, eax
sub edx, edi
test ebx, ebx
lea edx, [ecx + edx*2]
jne 0x40c40a
mov al, byte [0x473aa0]
mov ecx, 0xff
mov byte [esp + 0x1130], al
xor eax, eax
lea edi, [esp + 0x1131]
push edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x1134]
push 0x46e150
push ecx
stosb byte es:[edi], al
call fcn.0043afc4
add esp, 0xc
lea edx, [esp + 0x24]
lea eax, [esp + 0x1130]
push edx
push eax
push str.OLESize2
push 0x46f248
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x40c41b
sub edx, ebx
js 0x40c738
cmp edx, 0x1e
jge 0x40c738
call fcn.0040ac10
test eax, eax
je 0x40c738
mov ecx, 0x4f4398
call fcn.0041c680
mov ecx, 0x4f77b0
call fcn.0041a090
mov edx, dword [0x4f4390]
mov ecx, dword [ebp + 0x1c]
lea edi, [esp + 0x12d]
mov ebx, 1
mov dword [edx + 8], ecx
mov al, byte [0x473aa0]
mov byte [esp + 0x12c], al
mov ecx, 0x400
xor eax, eax
mov dword [0x46ed38], ebx
rep stosd dword es:[edi], eax
mov ecx, dword [0x4f4390]
mov dword [ecx + 4], ebx
mov eax, dword [0x4f77ec]
test eax, eax
je 0x40c4b5
mov ecx, dword [0x4f4390]
push 0x35
call fcn.00411550
test eax, eax
jne 0x40c4b5
lea edx, [esp + 0x12c]
push edx
push 0x6c
call fcn.0042e890
add esp, 8
lea eax, [esp + 0x12c]
push 0
push 0x40
push eax
call fcn.00454fae
mov eax, dword [0x4f77b0]
test eax, eax
jne 0x40c4d9
mov eax, dword [0x4f77b8]
test eax, eax
jne 0x40c4d9
mov eax, dword [0x4f77e4]
test eax, eax
jne 0x40c4d9
mov eax, dword [0x4f77bc]
test eax, eax
je 0x40c512
mov ecx, dword [0x4f77b4]
push ecx
mov ecx, dword [0x4f4390]
call fcn.0040ebe0
test eax, eax
jne 0x40c512
lea edx, [esp + 0x12c]
push edx
push 0x6d
call fcn.0042e890
add esp, 8
lea eax, [esp + 0x12c]
push 0
push 0x40
push eax
call fcn.00454fae
mov eax, dword [0x4f77c0]
test eax, eax
je 0x40c554
mov ecx, dword [0x4f77c8]
push ecx
mov ecx, dword [0x4f4390]
call fcn.00410e30
test eax, eax
jne 0x40c554
lea edx, [esp + 0x12c]
push edx
push 0x6e
call fcn.0042e890
add esp, 8
lea eax, [esp + 0x12c]
push 0
push 0x40
push eax
call fcn.00454fae
mov eax, dword [0x4f77e8]
test eax, eax
je 0x40c5e3
mov eax, dword [0x4fb898]
mov esi, 0x19
cmp eax, esi
jne 0x40c57c
push str.SMTPSVC
call fcn.0042e300
add esp, 4
cmp dword [0x4fb89c], esi
jne 0x40c591
push str.POP3SVC
call fcn.0042e300
add esp, 4
mov ecx, dword [0x4fb89c]
push ecx
mov ecx, dword [0x4f4390]
call fcn.00414d70
test eax, eax
je 0x40c5bd
mov edx, dword [0x4fb898]
mov ecx, dword [0x4f4390]
push edx
call fcn.00415350
test eax, eax
jne 0x40c5e3
lea eax, [esp + 0x12c]
push eax
push 0x86
call fcn.0042e890
add esp, 8
lea ecx, [esp + 0x12c]
push 0
push 0x40
push ecx
call fcn.00454fae
mov eax, dword [0x4f77dc]
test eax, eax
je 0x40c628
mov edx, dword [0x4f77e0]
mov ecx, dword [0x4f4390]
push edx
call fcn.00416340
test eax, eax
jne 0x40c628
lea eax, [esp + 0x12c]
push eax
push 0x8c
call fcn.0042e890
add esp, 8
lea ecx, [esp + 0x12c]
push 0
push 0x40
push ecx
call fcn.00454fae
mov eax, dword [0x4f77cc]
test eax, eax
je 0x40c66d
mov edx, dword [0x4f77d0]
mov ecx, dword [0x4f4390]
push edx
call fcn.00416b30
test eax, eax
jne 0x40c66d
lea eax, [esp + 0x12c]
push eax
push 0x8d
call fcn.0042e890
add esp, 8
lea ecx, [esp + 0x12c]
push 0
push 0x40
push ecx
call fcn.00454fae
mov eax, dword [0x4f77d4]
test eax, eax
je 0x40c6b2
mov edx, dword [0x4f77d8]
mov ecx, dword [0x4f4390]
push edx
call fcn.00415b90
test eax, eax
jne 0x40c6b2
lea eax, [esp + 0x12c]
push eax
push 0x8e
call fcn.0042e890
add esp, 8
lea ecx, [esp + 0x12c]
push 0
push 0x40
push ecx
call fcn.00454fae
mov eax, dword [0x4f77f0]
test eax, eax
je 0x40c6f0
mov ecx, dword [0x4f4390]
call fcn.004237c0
cmp eax, ebx
je 0x40c6f0
lea edx, [esp + 0x12c]
push edx
push 0x81
call fcn.0042e890
add esp, 8
lea eax, [esp + 0x12c]
push 0
push 0x40
push eax
call fcn.00454fae
mov ecx, dword [ebp + 0x9d0]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0x4be
push 0x401
push ecx
call esi
mov edx, dword [ebp + 0x9d0]
push ebx
push 0x3e9
push 0x401
push edx
call esi
mov eax, dword [ebp + 0x9d0]
push ebx
push 0x8f
push 0x401
push eax
call esi
call fcn.00409f50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1920
ret