Function at 0x44c1d0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x530a36
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x589bb4]
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.0043ec20
mov ecx, eax
call fcn.00438440
mov esi, eax
call fcn.0043ec20
mov ecx, eax
call fcn.004383e0
mov edi, eax
call fcn.0043ec20
mov ecx, eax
call fcn.00438660
mov ebx, eax
call fcn.0043ec20
mov ecx, eax
call fcn.00439f10
test eax, eax
mov edx, 0x549ce8
mov ecx, 0x549254
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.0043ec20
mov ecx, eax
call fcn.00438580
mov byte [ebp - 4], 1
call fcn.0043ec20
mov ecx, eax
call fcn.00438420
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], 0x54ab24
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 1
call fcn.0043ec20
cmp dword [eax + 0x5c], 0
jne 0x44c34e
call fcn.0043ec20
mov ecx, eax
call fcn.00439f10
test eax, eax
je 0x44c34e
mov dword [ebp - 0x74], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x70], str.SOFTWARELudashi
mov dword [ebp - 0x6c], str.CreateShortcut
mov dword [ebp - 0x68], 0x549254
mov dword [ebp - 0x64], 1
call fcn.0045f9f0
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.0045f9f0
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
add esi, 0x14
sub edi, 1
jne 0x44c356
call fcn.0043ec20
mov ecx, eax
call fcn.00438640
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 0x44c3b9
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.0045f9f0
lea edx, [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
call fcn.0043ec20
mov ecx, eax
call fcn.00438630
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 0x44c40f
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.0045f9f0
lea edx, [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov ebx, dword [ebp - 0x88]
mov ecx, 0x545970
mov eax, dword [ebx]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44c446
test dx, dx
je 0x44c442
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44c446
add eax, 4
add ecx, 4
test dx, dx
jne 0x44c420
xor eax, eax
jmp 0x44c44b
sbb eax, eax
or eax, 1
test eax, eax
je 0x44c533
lea eax, [ebp - 0x78]
push 1
push eax
call fcn.004338e0
mov edx, dword [ebp - 0x64]
add esp, 8
cmp edx, 8
jb 0x44c49b
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44c491
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c5c8
push edx
push ecx
call fcn.0049a80e
add esp, 8
lea eax, [ebp - 0x78]
push 1
push eax
call fcn.004338e0
mov edx, dword [ebx]
mov ecx, eax
add esp, 8
cmp dword [ecx + 0x14], 8
mov eax, dword [edx - 0xc]
jb 0x44c4b8
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 0x44c50e
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44c504
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c5cd
push edx
push ecx
call fcn.0049a80e
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 0x44c533
push str.write_register_oldversion_is_failed
call fcn.00446c40
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 0x44c551
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 0x44c56c
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 0x44c58d
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 0x44c5ac
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.0049a7f8
mov esp, ebp
pop ebp
ret
call fcn.004f2bd6
call fcn.004f2bd6
int3