Function at 0x41c5a0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94c
mov byte [ebp - 0x114], 0
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
cmp dword [ebp + 8], 0
jne 0x41c5f6
cmp dword [ebp + 0xc], 0
je 0x41c5cd
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x94c], ecx
jmp 0x41c5db
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x94c], eax
push 0x104
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x94c]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
jmp 0x41c60e
push 0x104
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.00429c80
add esp, 0xc
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x104]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
jne 0x41c643
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x934], eax
xor al, al
jmp 0x41c852
mov edx, dword [ebp - 0x12c]
push edx
call fcn.0042a240
add esp, 4
mov dword [ebp - 0x938], eax
mov eax, dword [ebp - 0x938]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
push ecx
mov edx, dword [ebp - 0x12c]
push edx
push 0
lea eax, [ebp - 0x104]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
jne 0x41c6a6
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x93c], ecx
mov edx, dword [ebp - 0x93c]
push edx
call fcn.00429442
add esp, 4
xor al, al
jmp 0x41c852
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x128]
push ecx
push 0x46b66c
mov edx, dword [ebp - 0x118]
push edx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x41c6eb
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x940], eax
mov ecx, dword [ebp - 0x940]
push ecx
call fcn.00429442
add esp, 4
xor al, al
jmp 0x41c852
mov edx, dword [ebp - 0x128]
mov eax, dword [edx]
shl eax, 0x10
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx]
shr edx, 0x10
or eax, edx
push eax
push 0x46b688
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x114]
push ecx
push 0x46b690
lea edx, [ebp - 0x930]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x124]
push ecx
lea edx, [ebp - 0x930]
push edx
mov eax, dword [ebp - 0x118]
push eax
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x41c77c
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x944], ecx
mov edx, dword [ebp - 0x944]
push edx
call fcn.00429442
add esp, 4
xor al, al
jmp 0x41c852
push 0x19
mov eax, dword [ebp - 0x124]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov edx, dword [ebp + 0x14]
and edx, 0xff
test edx, edx
je 0x41c835
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x130], 0
jmp 0x41c7c5
mov eax, dword [ebp - 0x120]
add eax, 1
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0x19
jge 0x41c829
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x120]
movsx edx, byte [ecx]
test edx, edx
jne 0x41c7e0
jmp 0x41c829
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x120]
movsx ecx, byte [eax]
cmp ecx, 0x30
jl 0x41c827
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x120]
movsx eax, byte [edx]
cmp eax, 0x39
jg 0x41c827
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x130]
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x120]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x130]
add ecx, 1
mov dword [ebp - 0x130], ecx
jmp 0x41c7b6
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x130]
mov byte [edx], 0
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x948], eax
mov ecx, dword [ebp - 0x948]
push ecx
call fcn.00429442
add esp, 4
mov al, 1
mov esp, ebp
pop ebp
ret