Function at 0x40e4c0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x48b060]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x104
push 0x48d8d0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
dec eax
cmp eax, 0x103
ja 0x40e6e8
push ebx
push esi
push edi
push 0
push 0x48d8d0
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x40e547
push 0x485f28
push str.__on_retriving_FileVerInfo1
mov byte [0x48bbc5], 1
call ebx
push eax
push str.Error_:__error_
mov ecx, 0x48bbc0
call fcn.0040ae30
mov ecx, eax
call fcn.0040b430
mov ecx, eax
call fcn.0040ae30
mov ecx, eax
call fcn.0040ae30
jmp 0x40e621
push edi
call fcn.00417ff0
add esp, 4
mov esi, eax
push esi
push edi
push 0
push 0x48d8d0
call dword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
jne 0x40e59f
push 0x485f28
push str.__on_retriving_FileVerInfo2
mov byte [0x48bbc5], 1
call ebx
push eax
push str.Error_:__error_
mov ecx, 0x48bbc0
call fcn.0040ae30
mov ecx, eax
call fcn.0040b430
mov ecx, eax
call fcn.0040ae30
mov ecx, eax
call fcn.0040ae30
jmp 0x40e618
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push 0x484c54
push esi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
jne 0x40e5f1
push 0x485f28
push str.__on_retriving_FileVerInfo3
mov byte [0x48bbc5], 1
call ebx
push eax
push str.Error_:__error_
mov ecx, 0x48bbc0
call fcn.0040ae30
mov ecx, eax
call fcn.0040b430
mov ecx, eax
call fcn.0040ae30
mov ecx, eax
call fcn.0040ae30
jmp 0x40e618
mov ecx, dword [ebp - 0xc]
movzx eax, byte [ecx + 0xa]
mov byte [0x48dadc], al
movzx eax, byte [ecx + 8]
mov byte [0x48dadd], al
movzx eax, byte [ecx + 0xe]
mov byte [0x48dade], al
movzx eax, byte [ecx + 0xc]
mov byte [0x48dadf], al
push esi
call fcn.00417850
add esp, 4
push 0x48d8d0
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
test eax, eax
jne 0x40e67b
push 0x485f28
push str.__on_retriveing_FileInfo2
mov byte [0x48bbc5], 1
call ebx
push eax
push str.Error_:__error_
mov ecx, 0x48bbc0
call fcn.0040ae30
mov ecx, eax
call fcn.0040b430
mov ecx, eax
call fcn.0040ae30
mov ecx, eax
call fcn.0040ae30
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417840
mov esp, ebp
pop ebp
ret
mov al, byte [0x48d8d0]
xor ecx, ecx
mov byte [0x48d9d8], al
mov byte [0x48dae0], al
test al, al
je 0x40e6af
cmp ecx, 0x104
jge 0x40e6af
mov al, byte [ecx + 0x48d8d1]
inc ecx
mov byte [ecx + 0x48d9d8], al
mov byte [ecx + 0x48dae0], al
test al, al
jne 0x40e690
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
push str.Settings.ini
push 0x48d9d8
call esi
test eax, eax
je 0x40e668
push str.TouchLog.log
push 0x48dae0
call esi
test eax, eax
je 0x40e668
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417840
mov esp, ebp
pop ebp
ret
push 0x485f28
push str.__on_retriveing_FileInfo1
mov byte [0x48bbc5], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_:__error_may
mov ecx, 0x48bbc0
call fcn.0040ae30
mov ecx, eax
call fcn.0040b430
mov ecx, eax
call fcn.0040ae30
mov ecx, eax
call fcn.0040ae30
mov ecx, dword [ebp - 4]
xor al, al
xor ecx, ebp
call fcn.00417840
mov esp, ebp
pop ebp
ret