Function at 0x10039910
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005efe1
mov eax, dword fs:[0]
push eax
sub esp, 0x274
mov eax, dword [0x1007b00c]
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 dword [ebp - 0x278], edx
mov ebx, ecx
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x280], eax
xor eax, eax
mov dword [ebp - 0x254], 7
mov dword [ebp - 0x258], esi
mov word [ebp - 0x268], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x23c], 7
mov dword [ebp - 0x240], eax
mov word [ebp - 0x250], ax
mov dword [ebp - 0x224], 7
mov dword [ebp - 0x228], eax
mov word [ebp - 0x238], ax
push eax
mov byte [ebp - 4], 2
push ebx
mov dword [ebp - 0x26c], eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov edi, eax
test edi, edi
je 0x10039c9c
push 0x1007da74
push edi
call fcn.1005be25
add esp, 8
mov dword [ebp - 0x274], eax
test eax, eax
je 0x10039c9c
push eax
push edi
push esi
push ebx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov ebx, dword [ebp - 0x274]
test eax, eax
je 0x10039c93
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x270]
push eax
push 0x100697e8
push ebx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10039c93
push 0x208
lea eax, [ebp - 0x218]
push esi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor edi, edi
test dword [ebp - 0x220], 0xfffffffc
jbe 0x10039c2e
nop dword [eax]
cmp dword [ebp - 0x258], 0
jne 0x10039adc
mov eax, dword [ebp - 0x270]
push 0x1006981c
lea ecx, [eax + edi*4]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04x_s
push 0xffffffffffffffff
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.1000f290
add esp, 0x1c
mov dword [ebp - 0x26c], 0
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10039adc
mov edx, dword [ebp - 0x26c]
cmp word [edx], 0
jne 0x10039ab9
xor ecx, ecx
jmp 0x10039acf
mov ecx, edx
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10039ac0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x268]
call fcn.10002e00
cmp dword [ebp - 0x240], 0
jne 0x10039b7c
mov eax, dword [ebp - 0x270]
push 0x1006986c
lea ecx, [eax + edi*4]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04x_s
push 0xffffffffffffffff
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.1000f290
add esp, 0x1c
mov dword [ebp - 0x26c], 0
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10039b7c
mov edx, dword [ebp - 0x26c]
cmp word [edx], 0
jne 0x10039b55
xor ecx, ecx
jmp 0x10039b6f
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10039b60
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x250]
call fcn.10002e00
cmp dword [ebp - 0x228], 0
jne 0x10039c1c
mov eax, dword [ebp - 0x270]
push 0x1006988c
lea ecx, [eax + edi*4]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04x_s
push 0xffffffffffffffff
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.1000f290
add esp, 0x1c
mov dword [ebp - 0x26c], 0
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10039c1c
mov edx, dword [ebp - 0x26c]
cmp word [edx], 0
jne 0x10039bf5
xor ecx, ecx
jmp 0x10039c0f
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10039c00
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x238]
call fcn.10002e00
mov eax, dword [ebp - 0x220]
inc edi
shr eax, 2
cmp edi, eax
jb 0x10039a40
mov eax, dword [ebp - 0x278]
test eax, eax
je 0x10039c4e
lea ecx, [ebp - 0x268]
cmp eax, ecx
je 0x10039c4e
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10002f00
mov eax, dword [ebp - 0x27c]
test eax, eax
je 0x10039c6e
lea ecx, [ebp - 0x250]
cmp eax, ecx
je 0x10039c6e
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10002f00
mov eax, dword [ebp - 0x280]
test eax, eax
je 0x10039c8e
lea ecx, [ebp - 0x238]
cmp eax, ecx
je 0x10039c8e
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10002f00
mov esi, 1
push ebx
call fcn.1005be17
add esp, 4
mov eax, dword [ebp - 0x224]
cmp eax, 8
jb 0x10039cb4
inc eax
push eax
push dword [ebp - 0x238]
call fcn.10003020
xor eax, eax
mov dword [ebp - 0x224], 7
mov word [ebp - 0x238], ax
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x228], 0
cmp eax, 8
jb 0x10039ce9
inc eax
push eax
push dword [ebp - 0x250]
call fcn.10003020
mov ecx, dword [ebp - 0x254]
xor eax, eax
mov dword [ebp - 0x23c], 7
mov dword [ebp - 0x240], 0
mov word [ebp - 0x250], ax
cmp ecx, 8
jb 0x10039d1e
inc ecx
push ecx
push dword [ebp - 0x268]
call fcn.10003020
mov eax, esi
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.1005b6db
mov esp, ebp
pop ebp
ret