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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac0
mov eax, dword [0x4f62a0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov dword [ebp - 0xa3c], ecx
call fcn.0040bd10
mov dword [ebp - 0x830], eax
push 0
push 0xfa1
call fcn.0041ac20
add esp, 8
xor eax, eax
mov word [ebp - 0x418], ax
push 0x206
push 0
lea ecx, [ebp - 0x416]
push ecx
call fcn.0042efe0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x210], dx
push 0x206
push 0
lea eax, [ebp - 0x20e]
push eax
call fcn.0042efe0
add esp, 0xc
lea ecx, [ebp - 0x418]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea edx, [ebp - 0x210]
push edx
push 0
push str.gppins
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov dword [ebp - 0x82c], eax
cmp dword [ebp - 0x82c], 0
je 0x4109c1
lea ecx, [ebp - 0x210]
mov dword [ebp - 0xa40], ecx
lea edx, [ebp - 0x418]
mov dword [ebp - 0xa44], edx
mov eax, dword [ebp - 0xa44]
mov dword [ebp - 0xa48], eax
mov ecx, dword [ebp - 0xa40]
mov dx, word [ecx]
mov word [ebp - 0xa4a], dx
mov eax, dword [ebp - 0xa44]
mov cx, word [ebp - 0xa4a]
mov word [eax], cx
mov edx, dword [ebp - 0xa40]
add edx, 2
mov dword [ebp - 0xa40], edx
mov eax, dword [ebp - 0xa44]
add eax, 2
mov dword [ebp - 0xa44], eax
cmp word [ebp - 0xa4a], 0
jne 0x410917
lea ecx, [ebp - 0x418]
mov dword [ebp - 0xa50], ecx
mov edx, dword [ebp - 0xa50]
add edx, 2
mov dword [ebp - 0xa54], edx
mov eax, dword [ebp - 0xa50]
mov cx, word [eax]
mov word [ebp - 0xa56], cx
add dword [ebp - 0xa50], 2
cmp word [ebp - 0xa56], 0
jne 0x41097a
mov edx, dword [ebp - 0xa50]
sub edx, dword [ebp - 0xa54]
sar edx, 1
mov dword [ebp - 0xa5c], edx
xor eax, eax
mov ecx, dword [ebp - 0xa5c]
mov word [ebp + ecx*2 - 0x420], ax
jmp 0x410a1a
lea edx, [ebp - 0x418]
add edx, 0xfffffffe
mov dword [ebp - 0xa60], edx
mov eax, dword [ebp - 0xa60]
mov cx, word [eax + 2]
mov word [ebp - 0xa62], cx
add dword [ebp - 0xa60], 2
cmp word [ebp - 0xa62], 0
jne 0x4109d0
mov edi, dword [ebp - 0xa60]
mov edx, dword [0x4cfb30]
mov dword [edi], edx
mov eax, dword [0x4cfb34]
mov dword [edi + 4], eax
mov ecx, dword [0x4cfb38]
mov dword [edi + 8], ecx
mov edx, dword [0x4cfb3c]
mov dword [edi + 0xc], edx
lea eax, [ebp - 0x418]
push eax
push 1
push 0x4cfb40
push 0x8d
mov ecx, dword [ebp - 0x830]
call fcn.00415630
mov ecx, dword [ebp - 0xa3c]
call fcn.00410500
push 0
push 0xfa2
call fcn.0041ac20
add esp, 8
push 0x208
push 0
lea ecx, [ebp - 0x620]
push ecx
call fcn.0042efe0
add esp, 0xc
push 0x208
push 0
lea edx, [ebp - 0xa38]
push edx
call fcn.0042efe0
add esp, 0xc
push 0x208
push 0
lea eax, [ebp - 0x828]
push eax
call fcn.0042efe0
add esp, 0xc
mov ecx, dword [ebp - 0x830]
add ecx, 0x208
mov dword [ebp - 0xa68], ecx
lea edx, [ebp - 0xa38]
mov dword [ebp - 0xa6c], edx
mov eax, dword [ebp - 0xa6c]
mov dword [ebp - 0xa70], eax
mov ecx, dword [ebp - 0xa68]
mov dx, word [ecx]
mov word [ebp - 0xa72], dx
mov eax, dword [ebp - 0xa6c]
mov cx, word [ebp - 0xa72]
mov word [eax], cx
mov edx, dword [ebp - 0xa68]
add edx, 2
mov dword [ebp - 0xa68], edx
mov eax, dword [ebp - 0xa6c]
add eax, 2
mov dword [ebp - 0xa6c], eax
cmp word [ebp - 0xa72], 0
jne 0x410abe
lea ecx, [ebp - 0xa38]
add ecx, 0xfffffffe
mov dword [ebp - 0xa78], ecx
mov edx, dword [ebp - 0xa78]
mov ax, word [edx + 2]
mov word [ebp - 0xa7a], ax
add dword [ebp - 0xa78], 2
cmp word [ebp - 0xa7a], 0
jne 0x410b15
mov edi, dword [ebp - 0xa78]
mov ecx, 8
mov esi, str.AppVersion.dat
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xa38]
push ecx
push 0x104
lea edx, [ebp - 0x828]
push edx
push str.4.1.1.1
push str.Version
push 0x4cfb8c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x828]
mov dword [ebp - 0xa80], eax
call fcn.0040bd10
add eax, 0x1450
mov dword [ebp - 0xa84], eax
mov ecx, dword [ebp - 0xa84]
mov dword [ebp - 0xa88], ecx
mov edx, dword [ebp - 0xa80]
mov ax, word [edx]
mov word [ebp - 0xa8a], ax
mov ecx, dword [ebp - 0xa84]
mov dx, word [ebp - 0xa8a]
mov word [ecx], dx
mov eax, dword [ebp - 0xa80]
add eax, 2
mov dword [ebp - 0xa80], eax
mov ecx, dword [ebp - 0xa84]
add ecx, 2
mov dword [ebp - 0xa84], ecx
cmp word [ebp - 0xa8a], 0
jne 0x410b99
mov edx, dword [ebp - 0x830]
add edx, 0x820
mov dword [ebp - 0xa90], edx
lea eax, [ebp - 0x620]
mov dword [ebp - 0xa94], eax
mov ecx, dword [ebp - 0xa94]
mov dword [ebp - 0xa98], ecx
mov edx, dword [ebp - 0xa90]
mov ax, word [edx]
mov word [ebp - 0xa9a], ax
mov ecx, dword [ebp - 0xa94]
mov dx, word [ebp - 0xa9a]
mov word [ecx], dx
mov eax, dword [ebp - 0xa90]
add eax, 2
mov dword [ebp - 0xa90], eax
mov ecx, dword [ebp - 0xa94]
add ecx, 2
mov dword [ebp - 0xa94], ecx
cmp word [ebp - 0xa9a], 0
jne 0x410c0b
lea edx, [ebp - 0x620]
add edx, 0xfffffffe
mov dword [ebp - 0xaa0], edx
mov eax, dword [ebp - 0xaa0]
mov cx, word [eax + 2]
mov word [ebp - 0xaa2], cx
add dword [ebp - 0xaa0], 2
cmp word [ebp - 0xaa2], 0
jne 0x410c62
mov edi, dword [ebp - 0xaa0]
mov edx, dword [0x4cfb94]
mov dword [edi], edx
lea eax, [ebp - 0x828]
mov dword [ebp - 0xaa8], eax
mov ecx, dword [ebp - 0xaa8]
mov dword [ebp - 0xaac], ecx
mov edx, dword [ebp - 0xaa8]
mov ax, word [edx]
mov word [ebp - 0xaae], ax
add dword [ebp - 0xaa8], 2
cmp word [ebp - 0xaae], 0
jne 0x410caa
mov ecx, dword [ebp - 0xaa8]
sub ecx, dword [ebp - 0xaac]
mov edx, dword [ebp - 0xaac]
mov dword [ebp - 0xab4], edx
mov dword [ebp - 0xab8], ecx
lea eax, [ebp - 0x620]
add eax, 0xfffffffe
mov dword [ebp - 0xabc], eax
mov ecx, dword [ebp - 0xabc]
mov dx, word [ecx + 2]
mov word [ebp - 0xabe], dx
add dword [ebp - 0xabc], 2
cmp word [ebp - 0xabe], 0
jne 0x410cf8
mov edi, dword [ebp - 0xabc]
mov esi, dword [ebp - 0xab4]
mov eax, dword [ebp - 0xab8]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x620]
push ecx
mov edx, dword [ebp - 0x830]
add edx, 0x208
push edx
mov ecx, dword [ebp - 0x830]
call fcn.00413380
mov eax, dword [ebp - 0x830]
add eax, 0x208
push eax
lea ecx, [ebp - 0x620]
push ecx
mov ecx, dword [ebp - 0x830]
call fcn.00413f30
lea edx, [ebp - 0x828]
push edx
mov eax, dword [ebp - 0x830]
add eax, 0x820
push eax
mov ecx, dword [ebp - 0x830]
call fcn.00414c60
lea ecx, [ebp - 0x828]
push ecx
mov edx, dword [ebp - 0x830]
add edx, 0x820
push edx
mov ecx, dword [ebp - 0x830]
call fcn.00414d50
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425912
mov esp, ebp
pop ebp
ret