Function at 0x42b883
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 [0x4424f4]
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.0042d06e
test eax, eax
je 0x42b8cc
push edi
mov edx, 0x406cdc
mov ecx, eax
call fcn.00421eb6
mov ebx, eax
test edi, edi
jne 0x42b8e5
test ebx, ebx
je 0x42b8db
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x80004003
jmp 0x42bd50
test ebx, ebx
je 0x42bd4e
mov ecx, edi
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x42b8f4
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, 0x40708c
mov ecx, edx
test esi, esi
jne 0x42b92c
mov ecx, 0x407430
lea eax, [ecx + 2]
mov dword [ebp - 0xd0], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xdc]
jne 0x42b935
sub ecx, dword [ebp - 0xd0]
sar ecx, 1
test esi, esi
jne 0x42b955
mov edx, 0x407430
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 0x406cf4
call fcn.0042247c
push 4
push 0x407430
push ecx
push ecx
mov ecx, dword [esi + 0x14]
mov edx, ebx
push 0x406cfc
call fcn.0042247c
mov ecx, edi
call fcn.0041f21e
test eax, eax
je 0x42bd43
push 0x82
call fcn.00440dea
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x42bd43
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 0x42ba80
lea ecx, [ebp - 0xd8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
je 0x42ba74
cmp dword [ebp - 0xd8], 0
push esi
jbe 0x42ba1d
push dword [ebp - 0xd8]
push 0x406d0c
push 0x41
push dword [ebp - 0xd4]
call fcn.0040c0e1
add esp, 0x14
jmp 0x42ba32
push 0x4043e0
push 0x41
push dword [ebp - 0xd4]
call fcn.0040c0e1
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 0x42ba43
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 0x406d1c
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 0x42bc54
mov ecx, edi
call fcn.0041f21e
test eax, eax
je 0x42bd37
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 0x42bd37
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 0x42bc4b
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xf8]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x42bc4b
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 0x42bc4b
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
jle 0x42bb6b
movzx eax, cx
jmp 0x42bb72
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 0x42bb9c
add ax, dx
jmp 0x42bbbd
cmp ax, dx
jae 0x42bbba
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 0x42bbfe
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0x10], ax
mov word [ebp - 0x12], cx
cmp cx, 0x20
jne 0x42bbfe
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 0x42bbfe
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 0x42bc4b
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 0x42bc4b
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 0x42bccd
push eax
call fcn.00440dea
mov dword [ebp - 0xd0], eax
pop ecx
test eax, eax
je 0x42bd37
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 0x42bcc6
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0xe4]
push eax
push 0x4043f0
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x42bcc6
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.00440db7
pop ecx
cmp dword [ebp - 0xdc], 0
jl 0x42bd37
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 0x404308
push 0x41
push dword [ebp - 0xd4]
call fcn.0040c0e1
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 0x42bd0e
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 0x401aec
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0xd4]
call fcn.00440db7
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.00441130
leave
ret 0xc