Function at 0x42bd24
Capabilities:
Get file size
Get file version info
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x4434f4]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov eax, ecx
mov dword [ebp - 0xdc], ebx
push ebx
mov dword [ebp - 0xd4], eax
mov esi, 0x8007000e
call fcn.0042d52a
test eax, eax
je 0x42bd6d
push edi
mov edx, 0x406ccc
mov ecx, eax
call fcn.0042217c
mov ebx, eax
test edi, edi
jne 0x42bd86
test ebx, ebx
je 0x42bd7c
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x80004003
jmp 0x42c1f1
test ebx, ebx
je 0x42c1ef
mov ecx, edi
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x42bd95
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
xor eax, eax
inc eax
push eax
push esi
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, dword [ebp + 0xc]
mov edx, 0x40707c
mov ecx, edx
test esi, esi
jne 0x42bdcd
mov ecx, 0x407420
lea eax, [ecx + 2]
mov dword [ebp - 0xd0], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xdc]
jne 0x42bdd6
sub ecx, dword [ebp - 0xd0]
sar ecx, 1
test esi, esi
jne 0x42bdf6
mov edx, 0x407420
mov esi, dword [ebp - 0xd4]
lea eax, [ecx*2 + 2]
push eax
push edx
push ecx
push ecx
mov ecx, dword [esi + 0x14]
mov edx, ebx
push 0x406ce4
call fcn.00422749
push 4
push 0x407420
push ecx
push ecx
mov ecx, dword [esi + 0x14]
mov edx, ebx
push 0x406cec
call fcn.00422749
mov ecx, edi
call fcn.0041f47f
test eax, eax
je 0x42c1e4
push 0x82
call fcn.0044183a
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x42c1e4
xor eax, eax
push eax
push 0x8000080
push 3
push eax
push 3
push eax
push edi
mov esi, eax
mov dword [ebp - 0xd8], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xe0], eax
cmp eax, 0xffffffff
je 0x42bf21
lea ecx, [ebp - 0xd8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
je 0x42bf15
cmp dword [ebp - 0xd8], 0
push esi
jbe 0x42bebe
push dword [ebp - 0xd8]
push 0x406cfc
push 0x41
push dword [ebp - 0xd4]
call fcn.0040c0b5
add esp, 0x14
jmp 0x42bed3
push 0x4043d0
push 0x41
push dword [ebp - 0xd4]
call fcn.0040c0b5
add esp, 0x10
mov edx, dword [ebp - 0xd4]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0xd0], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xdc]
jne 0x42bee4
sub ecx, dword [ebp - 0xd0]
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push 1
xor eax, eax
push eax
push 0x406d0c
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0xe0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0xe0]
push eax
push edi
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0xe4], eax
test eax, eax
jne 0x42c0f5
mov ecx, edi
call fcn.0041f47f
test eax, eax
je 0x42c1d8
xor eax, eax
push eax
push 0x80
push 3
push eax
push 1
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x42c1d8
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xdc], 0x80004005
push eax
xor eax, eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x42c0ec
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xf8]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x42c0ec
xor eax, eax
push 0xac
push eax
lea eax, [ebp - 0xcc]
push eax
call sub.msvcrt.dll_memset
movzx eax, word [ebp - 0x18]
add esp, 0xc
movzx esi, word [ebp - 0x16]
mov dword [ebp - 0xd8], eax
movzx eax, word [ebp - 0x12]
shl esi, 0x10
or esi, eax
xor eax, eax
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
cmp eax, 0xffffffff
je 0x42c0ec
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
jle 0x42c00c
movzx eax, cx
jmp 0x42c013
mov eax, ecx
neg eax
movzx eax, ax
xor edx, edx
movzx eax, ax
mov dword [ebp - 0xd0], 0x3c
div dword [ebp - 0xd0]
cmp ecx, 1
mov cx, word [ebp - 0x12]
movzx edx, ax
mov ax, word [ebp - 0x10]
jge 0x42c03d
add ax, dx
jmp 0x42c05e
cmp ax, dx
jae 0x42c05b
mov dword [ebp - 0xd0], 0xffff
add cx, word [ebp - 0xd0]
add ax, 0x18
mov word [ebp - 0x12], cx
sub ax, dx
mov word [ebp - 0x10], ax
cmp ax, 0x17
jbe 0x42c09f
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0x10], ax
mov word [ebp - 0x12], cx
cmp cx, 0x20
jne 0x42c09f
mov ax, word [ebp - 0x16]
xor ecx, ecx
inc ecx
inc ax
mov word [ebp - 0x12], cx
mov word [ebp - 0x16], ax
cmp ax, 0xd
jne 0x42c09f
inc word [ebp - 0x18]
mov word [ebp - 0x16], cx
fldz
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x18]
push eax
fstp qword [ebp - 0xec]
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
test eax, eax
je 0x42c0ec
fld qword [ebp - 0xec]
lea eax, [ebp - 0x18]
push eax
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x42c0ec
movzx eax, word [ebp - 0x18]
movzx esi, word [ebp - 0x16]
mov dword [ebp - 0xd8], eax
movzx eax, word [ebp - 0x12]
shl esi, 0x10
or esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x42c16e
push eax
call fcn.0044183a
mov dword [ebp - 0xd0], eax
pop ecx
test eax, eax
je 0x42c1d8
push eax
push dword [ebp - 0xe4]
xor eax, eax
mov dword [ebp - 0xdc], 0x80004005
push eax
push edi
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov edi, dword [ebp - 0xd0]
test eax, eax
je 0x42c167
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0xe4]
push eax
push 0x4043e0
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x42c167
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xd8], eax
xor eax, eax
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0xdc], eax
push edi
call fcn.00441807
pop ecx
cmp dword [ebp - 0xdc], 0
jl 0x42c1d8
mov ecx, dword [ebp - 0xd8]
movzx eax, si
push eax
shr esi, 0x10
push esi
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push 0x4042f8
push 0x41
push dword [ebp - 0xd4]
call fcn.0040c0b5
mov edx, dword [ebp - 0xd4]
add esp, 0x1c
mov ecx, edx
xor edi, edi
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x42c1af
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
xor eax, eax
inc eax
push eax
push edi
push 0x401adc
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0xd4]
call fcn.00441807
pop ecx
xor eax, eax
push ebx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441b90
mov esp, ebp
pop ebp
ret 0xc