Function at 0x42edd0
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x47c7e0
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a9128]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov dword [esp + 0x2c], ecx
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42ee15
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], 0
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42ee47
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push str..hjm
lea ecx, [esp + 0x24]
mov byte [esp + 0x40], 1
call fcn.00402cf0
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x40], 2
call fcn.00401b60
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ee9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.hjmfile
lea ecx, [esp + 0x24]
call fcn.00402cf0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 3
call fcn.00401b60
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42eee0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
lea ecx, [esp + 0x18]
push ecx
push edi
push SysReAllocStringLen
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
push eax
push 1
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueA]
push SysReAllocStringLen
call edi
push str.hjmfile
lea ecx, [esp + 0x24]
call fcn.00402cf0
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x40], 4
call fcn.00401b60
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42ef52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x48977c
lea ecx, [esp + 0x24]
call fcn.00402cf0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 5
call fcn.00401b60
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ef94
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
push ebx
push SysReAllocStringLen
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
push eax
push 1
push ebx
push SysReAllocStringLen
call edi
push str.888.ico
lea ecx, [esp + 0x2c]
call fcn.00402cf0
mov ebp, eax
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x40], 6
call fcn.0040b0d0
push ebp
push eax
lea eax, [esp + 0x2c]
mov bl, 7
push eax
mov byte [esp + 0x4c], bl
call fcn.00401c40
add esp, 0x10
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 8
call fcn.00401b60
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f01f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f044
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f069
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push ecx
push str.DefaultIcon
push edx
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov eax, dword [esp + 0x20]
push 1
push str.DefaultIcon
push eax
call edi
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.0042b0e0
push str.__1_zhj3
push eax
lea edx, [esp + 0x30]
mov bl, 9
push edx
mov byte [esp + 0x48], bl
call fcn.00401d00
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 0xa
call fcn.00401b60
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x3c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f0eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x3c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f110
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push ecx
push str.ShellOpenCommand
push edx
call esi
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 0xc]
push eax
mov eax, dword [esp + 0x1c]
push esi
push 1
push str.ShellOpenCommand
push eax
call edi
mov dword [esp + 0x2c], 0
push str.InfoTip
push 0x489718
push str.hjmfile
push SysReAllocStringLen
mov byte [esp + 0x4c], 0xb
call fcn.0042a520
push str.NeverShowExt
push 0x481930
push str.hjmfile
push SysReAllocStringLen
call fcn.0042a520
push str.QuickTip
push 0x489718
push str.hjmfile
push SysReAllocStringLen
call fcn.0042a520
push str.TileInfo
push 0x489718
push str.hjmfile
push SysReAllocStringLen
call fcn.0042a520
lea eax, [esi - 0x10]
mov byte [esp + 0x3c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f1ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f1f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret