Function at 0x41a250
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x489798
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebp
push esi
push edi
mov eax, dword [0x4b47a8]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
call fcn.0044d630
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41a290
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], 0
call fcn.0044d630
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41a2c2
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
push 4
push str..hjm
lea ecx, [esp + 0x20]
mov byte [esp + 0x38], 1
call fcn.004068a0
push 7
push str.hjmfile
lea ecx, [esp + 0x18]
call fcn.004068a0
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
lea ecx, [esp + 0x14]
push ecx
push edi
push SysReAllocString
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
push 1
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueA]
push SysReAllocString
call edi
push 7
push str.hjmfile
lea ecx, [esp + 0x20]
call fcn.004068a0
push 0x4b92b8
lea ecx, [esp + 0x14]
call fcn.00406820
push 7
push 0x497d64
lea ecx, [esp + 0x18]
call fcn.0040a140
mov ebp, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
push ebp
push SysReAllocString
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
push 1
push ebp
push SysReAllocString
call edi
push 0x4b92a4
lea ecx, [esp + 0x14]
call fcn.00406820
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x20]
push eax
push str.DefaultIcon
push ecx
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
mov edx, dword [esp + 0x14]
push ecx
push eax
push 1
push str.DefaultIcon
push edx
call edi
mov eax, dword [esp + 0x38]
push str.__1_zhj3
add eax, 0x260c
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.00406070
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], 2
call fcn.00406820
mov byte [esp + 0x30], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a3ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x20]
push ecx
push str.ShellOpenCommand
push edx
call esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 0xc]
push eax
mov eax, dword [esp + 0x18]
push ecx
push 1
push str.ShellOpenCommand
push eax
call edi
mov dword [esp + 0x24], 0
mov byte [esp + 0x30], 3
call fcn.0044d630
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41a44e
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
push 7
push 0x497d98
lea ecx, [esp + 0x40]
mov byte [esp + 0x38], 4
call fcn.004068a0
mov eax, dword [0x4b92b4]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.0040a140
mov esi, dword [esp + 0x38]
push str.InfoTip
mov edi, esi
mov edx, str.hjmfile
call fcn.004251c0
push str.NeverShowExt
mov edi, 0x494704
mov edx, str.hjmfile
call fcn.004251c0
push str.QuickTip
mov edi, esi
mov edx, str.hjmfile
call fcn.004251c0
push str.TileInfo
mov edx, str.hjmfile
call fcn.004251c0
lea eax, [esi - 0x10]
mov byte [esp + 0x30], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a4f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x30], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a515
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 0xfffffff0
mov dword [esp + 0x30], 0xffffffff
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a53a
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x24
ret 4