Function at 0x10004102
Capabilities:
Get file version info

Disassembly:
push ebp
lea ebp, [esp - 0x2b0]
sub esp, 0x330
mov eax, dword [0x10027410]
xor eax, ebp
mov dword [ebp + 0x2ac], eax
push esi
push edi
mov esi, 0x103
push esi
xor edi, edi
lea eax, [ebp + 0x1a9]
push edi
push eax
mov byte [ebp + 0x1a8], 0
call fcn.100063b0
push esi
lea eax, [ebp + 0xa5]
push edi
push eax
mov byte [ebp + 0xa4], 0
call fcn.100063b0
push esi
lea eax, [ebp - 0x5f]
push edi
push eax
mov byte [ebp - 0x60], 0
call fcn.100063b0
mov eax, dword [ebp + 0x2bc]
mov dword [0x100286ac], eax
mov eax, dword [ebp + 0x2c4]
mov dword [0x100286a8], eax
mov eax, dword [ebp + 0x2c0]
mov dword [0x100286b0], eax
add esp, 0x24
lea eax, [ebp + 0xa4]
push eax
call fcn.10001954
lea eax, [ebp + 0xa4]
push eax
call fcn.10006cd0
cmp eax, 1
pop ecx
jne 0x10004381
mov al, byte [ebp + 0xa4]
sub al, 0x30
cmp al, 9
ja 0x10004381
lea eax, [ebp + 0xa4]
push eax
call fcn.10006b5b
cmp eax, edi
pop ecx
mov dword [ebp - 0x64], eax
jle 0x10004381
push ebx
lea eax, [ebp - 0x60]
xor ebx, ebx
and dword [ebp - 0x68], ebx
and dword [ebp - 0x6c], ebx
push eax
call fcn.10003ecd
test eax, eax
pop ecx
je 0x1000426a
xor eax, eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x60]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
test eax, eax
mov dword [ebp - 0x7c], eax
je 0x1000426a
push eax
call fcn.10005fe4
test eax, eax
pop ecx
mov dword [ebp - 0x78], eax
je 0x1000426a
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x60]
push dword [ebp - 0x74]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x1000425b
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x70]
push eax
push 0x10022650
push dword [ebp - 0x78]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x1000425b
mov eax, dword [ebp - 0x70]
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xa]
movzx ebx, word [eax + 8]
movzx eax, word [eax + 0xc]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x6c], eax
push dword [ebp - 0x78]
call fcn.1000729c
cmp di, 6
pop ecx
ja 0x100042e8
cmp dword [ebp - 0x64], 4
jg 0x100042e8
lea eax, [ebp + 0x1a8]
push eax
call fcn.10003fdd
lea eax, [ebp + 0x1a8]
push eax
call fcn.10006cd0
test eax, eax
pop ecx
pop ecx
jbe 0x10004380
lea eax, [ebp + 0x1a8]
push eax
xor edi, edi
xor esi, esi
call fcn.10006cd0
test eax, eax
pop ecx
jbe 0x10004380
mov al, byte [ebp + esi + 0x1a8]
test al, al
je 0x10004380
cmp al, 0x2e
jne 0x100042c4
inc edi
cmp edi, dword [ebp - 0x64]
jge 0x100042db
lea eax, [ebp + 0x1a8]
push eax
inc esi
call fcn.10006cd0
cmp esi, eax
pop ecx
jb 0x100042ab
jmp 0x10004380
mov byte [ebp + esi + 0x1a8], 0
jmp 0x10004380
mov eax, dword [ebp - 0x64]
dec eax
je 0x10004367
dec eax
je 0x10004348
dec eax
je 0x10004324
dec eax
jne 0x10004380
movzx eax, word [ebp - 0x6c]
push eax
movzx eax, word [ebp - 0x68]
push eax
movzx eax, bx
push eax
movzx eax, di
push eax
push str._d._d._d._d
lea eax, [ebp + 0x1a8]
push esi
push eax
call fcn.1000719d
add esp, 0x1c
jmp 0x10004380
movzx eax, word [ebp - 0x68]
push eax
movzx eax, bx
push eax
movzx eax, di
push eax
push str._d._d._d
lea eax, [ebp + 0x1a8]
push esi
push eax
call fcn.1000719d
add esp, 0x18
jmp 0x10004380
movzx eax, bx
push eax
movzx eax, di
push eax
push str._d._d
lea eax, [ebp + 0x1a8]
push esi
push eax
call fcn.1000719d
add esp, 0x14
jmp 0x10004380
movzx eax, di
push eax
push 0x10022500
lea eax, [ebp + 0x1a8]
push esi
push eax
call fcn.1000719d
add esp, 0x10
pop ebx
lea eax, [ebp + 0x1a8]
push eax
call fcn.1000198e
mov ecx, dword [ebp + 0x2ac]
pop edi
xor ecx, ebp
pop esi
call fcn.100061c6
add ebp, 0x2b0
leave
ret