Function at 0x40a410
Capabilities:
Get common file path
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41f20b
mov eax, dword fs:[0]
push eax
mov eax, 0x27c8
call fcn.0040ced0
mov eax, dword [0x42c110]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x470], ax
xor edi, edi
lea eax, [ebp - 0x46e]
push eax
call fcn.0040d550
add esp, 0xc
lea eax, [ebp - 0x470]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x40aa6e
push 0x420fd4
lea eax, [ebp - 0x470]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x470]
push edi
push eax
call fcn.0040d914
add esp, 8
test eax, eax
jne 0x40a988
push 0x420dec
mov dword [ebp - 0x27b4], edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x7ce
lea ebx, [eax*2 + 2]
xor eax, eax
push eax
mov word [ebp - 0x1028], ax
lea eax, [ebp - 0x1026]
push eax
mov dword [ebp - 0x27bc], ebx
call fcn.0040d550
push 0x7cf
lea eax, [ebp - 0x17f7]
mov byte [ebp - 0x17f8], 0
push edi
push eax
call fcn.0040d550
push 0x420ff0
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x27b4]
push eax
call fcn.0040c7f4
add esp, 0x24
test eax, eax
jne 0x40a96c
push 2
push eax
push dword [ebp - 0x27b4]
call fcn.0040dcb2
push dword [ebp - 0x27b4]
call fcn.0040e0c5
push edi
push edi
push dword [ebp - 0x27b4]
mov dword [ebp - 0x27b8], eax
mov dword [ebp - 0x27c8], eax
call fcn.0040dcb2
mov eax, dword [ebp - 0x27b8]
add esp, 0x1c
cmp eax, 0x32
jbe 0x40a96c
push dword [ebp - 0x27b4]
push 1
push eax
lea eax, [ebp - 0x17f8]
push eax
call fcn.0040db77
add esp, 0x10
cmp eax, 1
jne 0x40a96c
lea eax, [ebp - 0x27c8]
push eax
lea eax, [ebp - 0x1028]
push eax
push ebx
push 0x420dec
push dword [ebp - 0x27b8]
lea eax, [ebp - 0x17f8]
push eax
push 0x6801
push 0x8003
call fcn.0040b3d0
add esp, 0x20
test eax, eax
je 0x40a96c
xor eax, eax
mov dword [ebp - 0x279c], 7
mov dword [ebp - 0x27a0], edi
mov word [ebp - 0x27b0], ax
push 1
push 0x420d8c
lea ecx, [ebp - 0x27b0]
mov dword [ebp - 4], eax
call fcn.00408130
cmp word [esi], di
jne 0x40a5f5
xor ecx, ecx
jmp 0x40a60f
mov ecx, esi
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a600
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x27b0]
call fcn.00407f30
cmp dword [ebp - 0x279c], 8
lea eax, [ebp - 0x27b0]
cmovae eax, dword [ebp - 0x27b0]
push eax
lea eax, [ebp - 0x1028]
push eax
call fcn.0040c561
add esp, 8
test eax, eax
jne 0x40a950
push 0x7ce
push eax
mov word [ebp - 0x1fc8], ax
lea eax, [ebp - 0x1fc6]
push eax
call fcn.0040d550
push 0x7cf
lea eax, [ebp - 0x2797]
mov byte [ebp - 0x2798], 0
push 0
push eax
call fcn.0040d550
push 0x80000000
lea eax, [ebp - 0x27cc]
mov dword [ebp - 0x27c4], 0x7d0
push eax
lea eax, [ebp - 0x27c4]
mov dword [ebp - 0x27d4], 0x7d0
push eax
lea eax, [ebp - 0x2798]
mov dword [ebp - 0x27cc], 3
push eax
push 0x420e24
push 0x420cf0
call fcn.0040b1a0
add esp, 0x30
test eax, eax
je 0x40a955
lea eax, [ebp - 0x27d4]
push eax
lea eax, [ebp - 0x1fc8]
push eax
push ebx
push 0x420dec
push dword [ebp - 0x27c4]
lea eax, [ebp - 0x2798]
push eax
push 0x6801
push 0x8003
call fcn.0040b3d0
add esp, 0x20
test eax, eax
je 0x40a955
push 1
push 0x420d8c
lea ecx, [ebp - 0x27b0]
call fcn.00408130
cmp word [esi], 0
jne 0x40a724
xor ecx, ecx
jmp 0x40a73f
mov ecx, esi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a730
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x27b0]
call fcn.00407f30
cmp dword [ebp - 0x279c], 8
lea eax, [ebp - 0x27b0]
cmovae eax, dword [ebp - 0x27b0]
push eax
lea eax, [ebp - 0x1fc8]
push eax
call fcn.0040c561
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x40a955
xor eax, eax
push 0xc6
push eax
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x266]
push eax
call fcn.0040d550
xor eax, eax
push 0xc6
push eax
mov word [ebp - 0xd8], ax
lea eax, [ebp - 0xd6]
push eax
call fcn.0040d550
xor eax, eax
push 0xc6
push eax
mov word [ebp - 0x1a0], ax
lea eax, [ebp - 0x19e]
push eax
call fcn.0040d550
add esp, 0x24
lea ecx, [ebp - 0x27b0]
push 1
push 0x420d8c
call fcn.00408130
cmp word [esi], 0
jne 0x40a7ea
xor ecx, ecx
jmp 0x40a7ff
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a7f0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x27b0]
call fcn.00407f30
push 0x18
push str._DateStart_s_LastUse_s
lea ecx, [ebp - 0x27b0]
call fcn.00407f30
cmp dword [ebp - 0x279c], 8
lea ecx, [ebp - 0xd8]
push 0x64
push ecx
push 0x64
lea ecx, [ebp - 0x268]
lea eax, [ebp - 0x27b0]
cmovae eax, dword [ebp - 0x27b0]
push ecx
push eax
push ebx
call fcn.0040e30c
add esp, 0x18
cmp eax, 2
jne 0x40a955
push 1
push 0x420f30
lea ecx, [ebp - 0x27b0]
call fcn.00407f30
cmp dword [ebp - 0x279c], 8
lea ecx, [ebp - 0xd8]
push ecx
lea ecx, [ebp - 0x268]
push ecx
lea eax, [ebp - 0x27b0]
cmovae eax, dword [ebp - 0x27b0]
push eax
lea eax, [ebp - 0x1a0]
push 0x64
push eax
call fcn.0040d8f8
add esp, 0x14
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x1028]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x1028]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x7d0
push 0
mov dword [ebp - 0x27b8], 0x7d0
lea esi, [eax*2 + 2]
lea eax, [ebp - 0x17f8]
mov dword [ebp - 0x27c8], esi
push eax
call fcn.0040d550
lea eax, [ebp - 0x27b8]
push eax
lea eax, [ebp - 0x17f8]
push eax
push dword [ebp - 0x27bc]
lea eax, [ebp - 0x1028]
push 0x420dec
push esi
push eax
push 0x6801
push 0x8003
call fcn.0040b530
add esp, 0x2c
test eax, eax
je 0x40a955
push 0
push 0
push dword [ebp - 0x27b4]
call fcn.0040dcb2
push dword [ebp - 0x27b4]
lea eax, [ebp - 0x17f8]
push 1
push dword [ebp - 0x27b8]
push eax
call fcn.0040e28a
add esp, 0x1c
cmp eax, 1
jne 0x40a955
mov edi, 1
cmp dword [ebp - 0x279c], 8
jb 0x40a96c
push dword [ebp - 0x27b0]
call fcn.0040b810
add esp, 4
mov eax, dword [ebp - 0x27b4]
test eax, eax
je 0x40aa6e
push eax
call fcn.0040c9f1
add esp, 4
jmp 0x40aa6e
push 0x3e7
lea eax, [ebp - 0x857]
mov byte [ebp - 0x858], 0
push 0
push eax
call fcn.0040d550
push 0x80000000
lea eax, [ebp - 0x27d0]
mov dword [ebp - 0x27bc], 0x3e8
push eax
lea eax, [ebp - 0x27bc]
mov dword [ebp - 0x27d0], 3
push eax
lea eax, [ebp - 0x858]
push eax
push 0x420e24
push 0x420cf0
call fcn.0040b1a0
add esp, 0x24
test eax, eax
je 0x40aa6e
push 0x420ff8
lea eax, [ebp - 0x470]
mov dword [ebp - 0x27c0], edi
push eax
lea eax, [ebp - 0x27c0]
xor esi, esi
push eax
call fcn.0040c7f4
add esp, 0xc
test eax, eax
jne 0x40aa38
push dword [ebp - 0x27c0]
lea eax, [ebp - 0x858]
push 1
push dword [ebp - 0x27bc]
push eax
call fcn.0040e28a
mov ecx, 1
add esp, 0x10
cmp eax, ecx
cmove esi, ecx
mov eax, dword [ebp - 0x27c0]
test eax, eax
je 0x40aa4b
push eax
call fcn.0040c9f1
add esp, 4
test esi, esi
je 0x40aa6e
push 0x1f01ff
lea eax, [ebp - 0x470]
push 1
push eax
call fcn.0040b040
add esp, 0xc
test eax, eax
je 0x40aa6e
mov edi, 1
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040b815
mov esp, ebp
pop ebp
ret 4