Function at 0x100010af
Capabilities:
Get file version info

Disassembly:
jmp 0x10004b50
sub esp, 0x470
push ebx
push ebp
mov ebp, dword [esp + 0x48c]
push esi
push edi
mov ecx, 7
mov esi, str.StringFileInfo040904E4_s
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, 7
mov esi, str.StringFileInfo040904B0_s
lea edi, [esp + 0x5c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 7
mov esi, str.StringFileInfo_04lX04B0_s
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
cmp ebp, eax
mov dword [esp + 0x14], eax
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x18], eax
je 0x10004ba3
mov byte [ebp], al
mov esi, dword [esp + 0x484]
cmp esi, eax
mov ebx, dword [esp + 0x48c]
je 0x10004bd5
cmp ebx, eax
je 0x10004bd5
push esi
lea eax, [esp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [esp + 0x490]
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x27c]
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeA
test eax, eax
mov dword [esp + 0x10], eax
je 0x10004d9e
test ebx, ebx
je 0x10004d9e
test esi, esi
je 0x10004d9e
push eax
push 0x42
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebp, eax
push ebp
call dword [sym.imp.KERNEL32.dll_LocalLock]
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x10]
push esi
push eax
push ecx
lea edx, [esp + 0x284]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
mov edi, dword [esp + 0x488]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push edi
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x80]
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x80]
push ecx
push esi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x10004d06
push edi
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x80]
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x80]
push eax
push esi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x10004d06
push edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x84]
push edx
call ebx
add esp, 0x10
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x80]
push edx
push esi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x10004d06
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x84]
push ecx
call ebx
add esp, 0x10
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x80]
push ecx
push esi
call sub.VERSION.dll_VerQueryValueA
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10004d1d
push eax
lea edx, [esp + 0x380]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebp
call dword [sym.imp.KERNEL32.dll_LocalUnlock]
push ebp
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x494]
test eax, eax
je 0x10004d45
lea ecx, [esp + 0x37c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x37c]
push 0x100440d0
push edx
call fcn.1002c75b
mov edi, dword [esp + 0x498]
add esp, 8
xor esi, esi
test edi, edi
jbe 0x10004d8f
test eax, eax
je 0x10004d8f
push eax
call fcn.1002c692
mov ecx, dword [esp + 0x490]
push 0x100440d0
push 0
mov dword [ecx + esi*4], eax
call fcn.1002c75b
add esp, 0xc
inc esi
cmp esi, edi
jb 0x10004d67
mov ebp, dword [esp + 0x494]
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
neg eax
pop edi
sbb eax, eax
pop esi
and eax, ebp
pop ebp
pop ebx
add esp, 0x470
ret