Function at 0x41ac70
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 0x41acc6
cmp dword [ebp + 0xc], 0
je 0x41ac9d
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x94c], ecx
jmp 0x41acab
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 0x41acde
push 0x104
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.00426ad0
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 0x41ad13
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x934], eax
xor al, al
jmp 0x41af22
mov edx, dword [ebp - 0x12c]
push edx
call fcn.00427090
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 0x41ad76
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x93c], ecx
mov edx, dword [ebp - 0x93c]
push edx
call fcn.00426292
add esp, 4
xor al, al
jmp 0x41af22
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x128]
push ecx
push 0x4674b4
mov edx, dword [ebp - 0x118]
push edx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x41adbb
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x940], eax
mov ecx, dword [ebp - 0x940]
push ecx
call fcn.00426292
add esp, 4
xor al, al
jmp 0x41af22
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 0x4674d0
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x114]
push ecx
push 0x4674d8
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 0x41ae4c
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x944], ecx
mov edx, dword [ebp - 0x944]
push edx
call fcn.00426292
add esp, 4
xor al, al
jmp 0x41af22
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 0x41af05
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x130], 0
jmp 0x41ae95
mov eax, dword [ebp - 0x120]
add eax, 1
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0x19
jge 0x41aef9
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x120]
movsx edx, byte [ecx]
test edx, edx
jne 0x41aeb0
jmp 0x41aef9
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x120]
movsx ecx, byte [eax]
cmp ecx, 0x30
jl 0x41aef7
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x120]
movsx eax, byte [edx]
cmp eax, 0x39
jg 0x41aef7
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 0x41ae86
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.00426292
add esp, 4
mov al, 1
mov esp, ebp
pop ebp
ret