Function at 0x4204f0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a3ed6
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1228
call fcn.0042da30
mov eax, dword [0x4c4024]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1230], ecx
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x1238], eax
lea eax, [ebp - 0x1014]
push eax
mov dword [ebp - 0x1018], ecx
mov dword [ebp - 0x122c], ebx
mov dword [ebp - 0x1228], edi
call fcn.00420f80
test eax, eax
js 0x420aa6
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0x1014]
push str.SMDB
push eax
call esi
test eax, eax
jne 0x42057e
lea esi, [eax + 8]
jmp 0x4205c7
push 0x4bce28
lea eax, [ebp - 0x1014]
push eax
call esi
test eax, eax
jne 0x420597
mov esi, 0x4008
jmp 0x4205c7
push 0x4bce2c
lea eax, [ebp - 0x1014]
push eax
call esi
test eax, eax
jne 0x4205ae
lea esi, [eax + 0x13]
jmp 0x4205c7
push 0x4bce30
lea eax, [ebp - 0x1014]
push eax
call esi
test eax, eax
jne 0x420aa1
lea esi, [eax + 0x11]
mov ecx, dword [ebp - 0x1230]
call fcn.00421880
mov ecx, dword [ebp - 0x1230]
lea eax, [ebp - 0x1014]
push eax
call fcn.00420f80
test eax, eax
js 0x420aa6
cmp esi, 0x13
ja 0x420916
je 0x4207ae
cmp esi, 8
je 0x42077d
cmp esi, 0x11
jne 0x420a85
lea ebx, [ebp - 0x1014]
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x420616
sub ebx, ecx
mov dword [ebp - 0x101c], ebx
test bl, 1
jne 0x4206c5
mov eax, ebx
cdq
sub eax, edx
mov esi, eax
lea eax, [ebp - 0x1120]
push 0x104
push 0
sar esi, 1
push eax
mov dword [ebp - 0x1234], esi
call fcn.0047c720
add esp, 0xc
mov dword [ebp - 0x1120], 0
mov dword [ebp - 4], 4
mov byte [ebp - 4], 5
cmp esi, 0x100
jbe 0x4206aa
push esi
lea ecx, [ebp - 0x1120]
call fcn.0041fcf0
mov eax, dword [ebp - 0x1120]
jmp 0x4206b6
lea eax, [ebp - 0x111c]
mov dword [ebp - 0x1120], eax
test eax, eax
jne 0x4206cf
lea ecx, [ebp - 0x1120]
call fcn.0041fcb0
mov eax, 0x80004005
jmp 0x420aa6
push esi
push 0
push eax
call fcn.0047c720
add esp, 0xc
xor edi, edi
test ebx, ebx
jle 0x42073a
mov dl, byte [ebp + edi - 0x1014]
mov esi, edi
shr esi, 1
add esi, dword [ebp - 0x1120]
movsx eax, dl
add eax, 0xffffffd0
cmp eax, 0x36
ja case.0x420704.58
movzx eax, byte [eax + 0x420ae4]
jmp dword [eax*4 + 0x420ad4]
sub dl, 0x30
jmp 0x42071c
sub dl, 0x37
jmp 0x42071c
sub dl, 0x57
jmp 0x42071c
xor dl, dl
mov eax, edi
mov ecx, 4
and eax, 1
inc edi
shl eax, 2
sub ecx, eax
shl dl, cl
or byte [esi], dl
cmp edi, ebx
jl 0x4206e1
mov esi, dword [ebp - 0x1234]
mov eax, dword [ebp - 0x122c]
push esi
push dword [ebp - 0x1120]
push 3
push 0
push dword [ebp - 0x1228]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebx, eax
lea eax, [ebp - 0x111c]
cmp dword [ebp - 0x1120], eax
je 0x420a78
lea ecx, [ebp - 0x1120]
call fcn.0041fcb0
jmp 0x420a78
lea ecx, [ebp - 0x1014]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420786
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x1014]
push eax
push 1
push 0
push edi
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebx, eax
jmp 0x420a78
xor esi, esi
mov dword [ebp - 0x1018], esi
lea ecx, [ebp - 0x1014]
mov dword [ebp - 4], 3
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4207c6
sub ecx, edx
lea eax, [ecx + 1]
mov ecx, 2
imul ecx
mov edi, eax
test edx, edx
jg 0x420871
jl 0x4207f1
cmp edi, 0x7fffffff
ja 0x420871
cmp edx, 0xffffffff
jl 0x420871
jg 0x420800
cmp edi, 0x80000000
jb 0x420871
cmp edi, 0x400
jg 0x420821
mov ecx, edi
call fcn.00420440
test al, al
je 0x420821
mov eax, edi
call fcn.0042d440
mov dword [ebp - 0x10], esp
mov ebx, esp
jmp 0x420849
mov eax, edi
not eax
cmp eax, 8
jb 0x420aca
lea eax, [edi + 8]
push eax
call fcn.0047e300
add esp, 4
test eax, eax
je 0x420871
mov dword [eax], 0
lea ebx, [eax + 8]
mov esi, eax
test ebx, ebx
je 0x420871
shr edi, 1
xor eax, eax
push edi
push ebx
push 0xffffffffffffffff
mov word [ebx], ax
lea eax, [ebp - 0x1014]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb eax, eax
and eax, ebx
jmp 0x420873
xor eax, eax
test eax, eax
jne 0x420899
test esi, esi
je 0x42088f
nop dword [eax + eax]
push esi
mov esi, dword [esi]
call fcn.0047e30b
add esp, 4
test esi, esi
jne 0x420880
mov eax, 0x8007000e
jmp 0x420aa6
lea ecx, [ebp - 0x101c]
push ecx
push 0
push 0
push eax
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov edi, eax
test edi, edi
jns 0x4208cb
test esi, esi
je 0x4208c4
push esi
mov esi, dword [esi]
call fcn.0047e30b
add esp, 4
test esi, esi
jne 0x4208b5
mov eax, edi
jmp 0x420aa6
mov eax, dword [ebp - 0x101c]
push 4
mov dword [ebp - 0x1018], eax
lea eax, [ebp - 0x1018]
push eax
mov eax, dword [ebp - 0x122c]
push 4
push 0
push dword [ebp - 0x1228]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebx, eax
test esi, esi
je 0x420a78
push esi
mov esi, dword [esi]
call fcn.0047e30b
add esp, 4
test esi, esi
jne 0x420902
jmp 0x420a78
cmp esi, 0x4008
jne 0x420a85
lea ecx, [ebp - 0x1014]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420930
sub ecx, edx
lea eax, [ebp - 0x1224]
push 0x104
push 0
push eax
lea esi, [ecx + 2]
call fcn.0047c720
add esp, 0xc
mov dword [ebp - 0x1224], 0
mov dword [ebp - 4], 0
mov byte [ebp - 4], 1
cmp esi, 0x100
jbe 0x42099d
push esi
lea ecx, [ebp - 0x1224]
call fcn.0041fcf0
mov edi, dword [ebp - 0x1224]
jmp 0x4209a9
lea edi, [ebp - 0x1220]
mov dword [ebp - 0x1224], edi
test edi, edi
je 0x420a5e
cmp byte [ebp - 0x1014], 0
lea esi, [ebp - 0x1014]
je 0x420a01
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
push esi
call ebx
mov cl, byte [esi]
cmp cl, 0x5c
jne 0x4209df
cmp byte [eax], 0x30
jne 0x4209df
push eax
mov byte [edi], 0
call ebx
mov esi, eax
jmp 0x4209fb
mov byte [edi], cl
movzx eax, byte [esi]
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x4209fa
mov al, byte [esi + 1]
inc esi
inc edi
test al, al
je 0x420a01
mov byte [edi], al
inc esi
inc edi
cmp byte [esi], 0
jne 0x4209c6
mov word [edi], 0
mov edi, dword [ebp - 0x1224]
test edi, edi
jne 0x420a15
lea ebx, [edi + 0xd]
jmp 0x420a63
xor esi, esi
mov edx, edi
nop dword [eax]
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420a25
sub ecx, ebx
lea eax, [ecx + 1]
add edx, eax
add esi, eax
cmp eax, 1
jne 0x420a20
mov eax, dword [ebp - 0x122c]
push esi
push edi
push 7
push 0
push dword [ebp - 0x1228]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, dword [ebp - 0x1224]
mov ebx, eax
jmp 0x420a63
mov ebx, 0xe
lea eax, [ebp - 0x1220]
cmp edi, eax
je 0x420a78
lea ecx, [ebp - 0x1224]
call fcn.0041fcb0
test ebx, ebx
je 0x420a85
mov ecx, ebx
call fcn.00420f70
jmp 0x420aa6
push dword [ebp - 0x1238]
mov ecx, dword [ebp - 0x1230]
call fcn.00420f80
xor ecx, ecx
test eax, eax
cmovs ecx, eax
mov eax, ecx
jmp 0x420aa6
mov eax, 0x80020009
lea esp, [ebp - 0x1248]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042ca6a
mov esp, ebp
pop ebp
ret 0xc
push 0x80070216
call fcn.00420b30
or eax, dword [edi]
inc edx
add byte [eax], dl
pop es
inc edx
add byte [0x1a004207], dl
pop es
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
int3