Function at 0x44b920
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52c1b6
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x583bb4]
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
call fcn.0043e4f0
mov ecx, eax
call fcn.00437d10
mov esi, eax
call fcn.0043e4f0
mov ecx, eax
call fcn.00437cb0
mov edi, eax
call fcn.0043e4f0
mov ecx, eax
call fcn.00437f30
mov ebx, eax
call fcn.0043e4f0
mov ecx, eax
call fcn.004397e0
test eax, eax
mov edx, 0x544b70
mov ecx, 0x5440dc
cmove ecx, edx
push ecx
lea ecx, [ebp - 0x7c]
call fcn.0040df50
lea eax, [ebp - 0x8c]
mov dword [ebp - 4], 0
push eax
call fcn.0043e4f0
mov ecx, eax
call fcn.00437e50
mov byte [ebp - 4], 1
call fcn.0043e4f0
mov ecx, eax
call fcn.00437cf0
mov dword [ebp - 0x60], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x5c], str.SOFTWARELudashi
mov dword [ebp - 0x58], str.VendorID
mov ecx, dword [esi]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x4c], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x48], str.SOFTWARELudashi
mov dword [ebp - 0x44], str.AppType
mov eax, dword [edi]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x34], str.SOFTWARELudashi
mov dword [ebp - 0x30], str.Type
mov eax, dword [ebx]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x20], str.SOFTWARELudashi
mov dword [ebp - 0x1c], 0x54593c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 1
call fcn.0043e4f0
cmp dword [eax + 0x5c], 0
jne 0x44ba9e
call fcn.0043e4f0
mov ecx, eax
call fcn.004397e0
test eax, eax
je 0x44ba9e
mov dword [ebp - 0x74], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x70], str.SOFTWARELudashi
mov dword [ebp - 0x6c], str.CreateShortcut
mov dword [ebp - 0x68], 0x5440dc
mov dword [ebp - 0x64], 1
call fcn.0045f250
lea edx, [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
lea esi, [ebp - 0x60]
mov edi, 4
call fcn.0045f250
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
add esi, 0x14
sub edi, 1
jne 0x44baa6
call fcn.0043e4f0
mov ecx, eax
call fcn.00437f10
push eax
lea ecx, [ebp - 0x80]
call fcn.004103d0
mov esi, dword [ebp - 0x80]
mov byte [ebp - 4], 2
cmp dword [esi - 0xc], edi
je 0x44bb09
mov dword [ebp - 0x74], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x70], str.SOFTWARELudashi
mov dword [ebp - 0x6c], str.tagID
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], 1
call fcn.0045f250
lea edx, [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
call fcn.0043e4f0
mov ecx, eax
call fcn.00437f00
push eax
lea ecx, [ebp - 0x84]
call fcn.004103d0
mov edi, dword [ebp - 0x84]
mov byte [ebp - 4], 3
cmp dword [edi - 0xc], 0
je 0x44bb5f
mov dword [ebp - 0x74], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x70], str.SOFTWARELudashi
mov dword [ebp - 0x6c], str.softID
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], 1
call fcn.0045f250
lea edx, [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov ebx, dword [ebp - 0x88]
mov ecx, 0x540960
mov eax, dword [ebx]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44bb96
test dx, dx
je 0x44bb92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44bb96
add eax, 4
add ecx, 4
test dx, dx
jne 0x44bb70
xor eax, eax
jmp 0x44bb9b
sbb eax, eax
or eax, 1
test eax, eax
je 0x44bc83
lea eax, [ebp - 0x78]
push 1
push eax
call fcn.00433360
mov edx, dword [ebp - 0x64]
add esp, 8
cmp edx, 8
jb 0x44bbeb
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44bbe1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44bd18
push edx
push ecx
call fcn.0049a03e
add esp, 8
lea eax, [ebp - 0x78]
push 1
push eax
call fcn.00433360
mov edx, dword [ebx]
mov ecx, eax
add esp, 8
cmp dword [ecx + 0x14], 8
mov eax, dword [edx - 0xc]
jb 0x44bc08
mov ecx, dword [ecx]
add eax, eax
push eax
push edx
push 1
push str.oldversion
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov edx, dword [ebp - 0x64]
test eax, eax
setne bl
cmp edx, 8
jb 0x44bc5e
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44bc54
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44bd1d
push edx
push ecx
call fcn.0049a03e
add esp, 8
xor eax, eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 7
mov word [ebp - 0x78], ax
test bl, bl
je 0x44bc83
push str.write_register_oldversion_is_failed
call fcn.00446390
add esp, 4
lea edx, [edi - 0x10]
mov byte [ebp - 4], 2
or edi, 0xffffffff
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x44bca1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x44bcbc
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x8c]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x44bcdd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x44bcfc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
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.0049a028
mov esp, ebp
pop ebp
ret
call fcn.004ee7a3
call fcn.004ee7a3
int3