Function at 0x419c90
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x617b1f
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x69cffc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x230], ebx
push 0
mov dword [ebp - 4], 0
push dword [ebp + 0xc]
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
test esi, esi
jne 0x419d20
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._nError_code:__u_n
push 2
call fcn.005f38bc
add esp, 4
push eax
call fcn.0041b030
add esp, 0xc
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x41a05b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 1
jmp 0x419e09
push esi
call fcn.005f8f9a
mov edi, eax
add esp, 4
mov dword [ebp - 0x22c], edi
test edi, edi
jne 0x419d6f
push str.Failed_allocating__n
push 2
call fcn.005f38bc
add esp, 4
push eax
call fcn.0041b030
add esp, 8
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x41a05b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 2
jmp 0x419e09
push edi
push esi
push 0
push dword [ebp + 0xc]
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
jne 0x419dc4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_code:__u_n
push 2
call fcn.005f38bc
add esp, 4
push eax
call fcn.0041b030
push edi
call fcn.005f8f7f
add esp, 0x10
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x41a065
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 3
jmp 0x419e09
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], 0
push eax
lea eax, [ebp - 0x224]
push eax
push str.VarFileInfoTranslation
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
jne 0x419e59
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x41a065
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 4
mov eax, 0x66eae8
mov ecx, ebx
test eax, 0xffff0000
jne 0x419e22
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x419e2e
push 0
push 0x66eae8
call fcn.00402df0
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41a03b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41a03b
xor ecx, ecx
or esi, 0xffffffff
test dword [ebp - 0x21c], 0xfffffffc
mov dword [ebp - 0x220], ecx
jbe 0x419f82
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp - 0x224]
lea ecx, [eax + ecx*4]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xFileDescription
lea eax, [ebp - 0x210]
push 0x32
push eax
call fcn.0041afb0
add esp, 0x14
mov dword [ebp - 0x228], 0
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x210]
push eax
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
xor esi, esi
xor edi, edi
push dword [ebp - 0x218]
lea ecx, [ebp - 0x214]
call fcn.004028f0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x214]
test esi, esi
jne 0x419f93
cmp dword [eax - 0xc], esi
jl 0x419f20
push 0x670bb4
push eax
call fcn.005e81de
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x214]
test ecx, ecx
je 0x419f20
sub ecx, eax
sar ecx, 1
mov ecx, 1
cmovns esi, ecx
mov edx, dword [eax - 0xc]
mov ecx, dword [ebp - 0x218]
mov byte [ebp - 4], 0
lea ecx, [ecx + edx*2]
add ecx, 2
lea edx, [eax - 0x10]
mov dword [ebp - 0x218], ecx
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419f51
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc edi
cmp edi, 0x64
jl 0x419ed2
mov ecx, dword [ebp - 0x220]
mov eax, dword [ebp - 0x21c]
inc ecx
mov edi, dword [ebp - 0x22c]
shr eax, 2
mov dword [ebp - 0x220], ecx
cmp ecx, eax
jl 0x419e80
or esi, 0xffffffff
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x41a065
jmp 0x419fe9
add eax, 0xfffffff0
push eax
call fcn.004027b0
add eax, 0x10
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x214]
or esi, 0xffffffff
mov dword [ebx], eax
add esp, 4
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x419fc8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x41a03b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41a03b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov eax, 0x66eae8
mov byte [ebp - 4], 6
mov ecx, ebx
test eax, 0xffff0000
jne 0x41a010
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x41a01c
push 0
push 0x66eae8
call fcn.00402df0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x41a03b
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0058f0d5
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.00403270
push 0x80004005
call fcn.00403270
int3