Function at 0x10016080
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x288
push esi
push edi
push ecx
lea edi, [ebp - 0x288]
mov ecx, 0xa2
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov dword [ebp - 0x27c], ecx
mov eax, dword [ebp + 0xc]
push eax
call fcn.100269f0
add esp, 4
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.100269f0
add esp, 4
mov dword [ebp - 8], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x14], 0
je 0x100160d6
cmp dword [ebp - 8], 0
jne 0x100160df
mov dword [ebp - 4], 8
jmp 0x10016139
mov esi, esp
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x14]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x27c]
call dword [edx + 0x30]
cmp esi, esp
call fcn.10021b10
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], edx
mov eax, dword [ebp - 0x284]
or eax, dword [ebp - 0x280]
test eax, eax
jne 0x10016139
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10021b10
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov ecx, dword [ebp - 0x27c]
cmp dword [ecx], 0
je 0x10016341
cmp dword [ebp - 0x14], 0
je 0x10016341
mov edx, dword [ebp - 0x27c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
and ecx, 8
test ecx, ecx
je 0x1001625e
mov dword [ebp - 0x264], 0
lea edx, [ebp - 0x268]
push edx
mov eax, dword [ebp - 0x14]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0
jbe 0x1001625e
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.10022ed0
add esp, 4
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
je 0x1001625e
mov edx, dword [ebp - 0x270]
push edx
mov eax, dword [ebp - 0x26c]
push eax
mov ecx, dword [ebp - 0x268]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x1001624f
mov ax, word [0x100f3280]
mov word [ebp - 0x274], ax
lea ecx, [ebp - 0x278]
push ecx
lea edx, [ebp - 0x264]
push edx
lea eax, [ebp - 0x274]
push eax
mov ecx, dword [ebp - 0x270]
push ecx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x10016225
mov dword [ebp - 0x264], 0
jmp 0x1001624f
mov edx, dword [ebp - 0x264]
mov esi, dword [edx + 0xc]
xor edi, edi
mov eax, dword [ebp - 0x264]
mov eax, dword [eax + 8]
xor edx, edx
mov ecx, 0x20
call fcn.10026a40
add esi, eax
adc edi, edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], edi
mov ecx, dword [ebp - 0x270]
push ecx
call fcn.10023940
add esp, 4
mov dword [ebp - 0x18], str._unknown_
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 0x27c]
call fcn.100163b0
test eax, eax
je case.0x100162a2.7
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 9
ja case.0x100162a2.7
mov ecx, dword [ebp - 0x288]
jmp dword [ecx*4 + 0x1001637d]
mov dword [ebp - 0x18], str._nosymbols_
jmp case.0x100162a2.7
mov dword [ebp - 0x18], str.COFF
jmp case.0x100162a2.7
mov dword [ebp - 0x18], 0x100f5d50
jmp case.0x100162a2.7
mov dword [ebp - 0x18], 0x100f5d4c
jmp case.0x100162a2.7
mov dword [ebp - 0x18], str._exported_
jmp case.0x100162a2.7
mov dword [ebp - 0x18], str._deferred_
jmp case.0x100162a2.7
mov dword [ebp - 0x18], 0x100f5d30
jmp case.0x100162a2.7
mov dword [ebp - 0x18], str.Virtual
jmp case.0x100162a2.7
mov dword [ebp - 0x18], 0x100f5d24
mov esi, esp
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
lea ecx, [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x27c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x27c]
mov eax, dword [edx]
mov edx, dword [eax]
call dword [edx + 8]
cmp esi, esp
call fcn.10021b10
cmp dword [ebp - 0x14], 0
je 0x10016353
mov eax, dword [ebp - 0x14]
push eax
call fcn.10023940
add esp, 4
cmp dword [ebp - 8], 0
je 0x10016365
mov ecx, dword [ebp - 8]
push ecx
call fcn.10023940
add esp, 4
mov eax, dword [ebp - 4]
pop edi
pop esi
add esp, 0x288
cmp ebp, esp
call fcn.10021b10
mov esp, ebp
pop ebp
ret 0x18