Function at 0x408df4
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x1124
call fcn.0040f170
mov eax, dword [0x4163c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x1110], 0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov ebx, edx
mov dword [ebp - 0x1124], eax
lea eax, [ebp - 0x1004]
mov dword [ebp - 0x1120], edi
mov dword [ebp - 0x1114], ebx
mov dword [ebp - 0x1118], esi
call fcn.0040959d
test eax, eax
jl 0x40921e
lea eax, [ebp - 0x1110]
push eax
lea eax, [ebp - 0x1004]
push eax
call fcn.00408ba5
test eax, eax
jne 0x408e6d
mov eax, 0x80020009
jmp 0x40921e
call fcn.00409d43
lea eax, [ebp - 0x1004]
mov ecx, edi
call fcn.0040959d
test eax, eax
jl 0x40921e
movzx eax, word [ebp - 0x1110]
sub eax, 8
je 0x4091d3
sub eax, 9
je 0x4090a8
dec eax
dec eax
je 0x408f92
sub eax, 0x3ff5
jne 0x40920b
lea eax, [ebp - 0x1004]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
and dword [ebp - 0x1108], 0
inc eax
inc eax
push eax
call fcn.00408dcf
cmp eax, 0x100
jbe 0x408ee5
push eax
lea eax, [ebp - 0x1108]
push eax
call fcn.00408c44
jmp 0x408ef1
lea eax, [ebp - 0x1104]
mov dword [ebp - 0x1108], eax
mov esi, dword [ebp - 0x1108]
test esi, esi
je 0x408f6d
cmp byte [ebp - 0x1004], 0
lea edi, [ebp - 0x1004]
je 0x408f4b
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
push edi
call ebx
mov cl, byte [edi]
cmp cl, 0x5c
jne 0x408f2a
cmp byte [eax], 0x30
jne 0x408f2a
mov byte [esi], 0
push eax
inc esi
call ebx
mov edi, eax
jmp 0x408f46
mov byte [esi], cl
movzx eax, byte [edi]
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x408f44
inc esi
inc edi
mov al, byte [edi]
test al, al
je 0x408f4b
mov byte [esi], al
inc esi
inc edi
cmp byte [edi], 0
jne 0x408f10
mov byte [esi], 0
mov byte [esi + 1], 0
push dword [ebp - 0x1108]
push dword [ebp - 0x1118]
push dword [ebp - 0x1114]
call fcn.00408c6e
mov esi, eax
jmp 0x408f70
push 0xe
pop esi
lea eax, [ebp - 0x1104]
cmp dword [ebp - 0x1108], eax
je 0x4091f8
lea eax, [ebp - 0x1108]
call fcn.00408dc1
jmp 0x4091f8
lea eax, [ebp - 0x1004]
xor ebx, ebx
push eax
mov dword [ebp - 0x110c], ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
push ebx
mov eax, edi
cdq
push 2
push edx
push eax
mov dword [ebp - 0x1110], edi
call fcn.004126d0
test edx, edx
jg 0x408fdf
jl 0x408fca
cmp eax, 0x7fffffff
ja 0x408fdf
push edx
push eax
lea ecx, [ebp - 0x1110]
call fcn.00408cb7
mov edi, dword [ebp - 0x1110]
jmp 0x408fe4
mov eax, 0x80070057
test eax, eax
jl 0x40909e
cmp edi, 0x400
jg 0x409009
push edi
call fcn.00408d1c
test al, al
je 0x409009
mov eax, edi
call fcn.00412b80
mov eax, esp
jmp 0x40901c
mov eax, edi
lea esi, [ebp - 0x110c]
call fcn.00408d8f
mov ebx, dword [ebp - 0x110c]
push 3
shr edi, 1
push edi
lea ecx, [ebp - 0x1004]
push ecx
mov esi, eax
call fcn.00408ce2
xor edi, edi
cmp eax, edi
je 0x40909a
lea ecx, [ebp - 0x111c]
push ecx
push edi
push edi
push eax
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov eax, dword [ebp - 0x111c]
push 4
mov dword [ebp - 0x110c], eax
lea eax, [ebp - 0x110c]
push eax
mov eax, dword [ebp - 0x1114]
push 4
push edi
push dword [ebp - 0x1118]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
cmp ebx, edi
je 0x4091f8
mov eax, ebx
mov ebx, dword [ebx]
push eax
call fcn.0040bca5
pop ecx
test ebx, ebx
jne 0x40907b
jmp 0x4091f8
mov eax, ebx
mov ebx, dword [ebx]
push eax
call fcn.0040bca5
pop ecx
cmp ebx, edi
jne 0x40908f
mov eax, 0x8007000e
jmp 0x40921e
lea eax, [ebp - 0x1004]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x110c], eax
test al, 1
je 0x4090c9
mov eax, 0x80004005
jmp 0x40921e
cdq
sub eax, edx
mov edi, eax
sar edi, 1
xor esi, esi
push edi
mov dword [ebp - 0x1108], esi
call fcn.00408dcf
cmp eax, 0x100
jbe 0x4090f4
push eax
lea eax, [ebp - 0x1108]
push eax
call fcn.00408c44
jmp 0x409100
lea eax, [ebp - 0x1104]
mov dword [ebp - 0x1108], eax
cmp dword [ebp - 0x1108], esi
jne 0x40911f
lea eax, [ebp - 0x1104]
test eax, eax
je 0x4090bf
lea eax, [ebp - 0x1108]
call fcn.00408dc1
jmp 0x4090bf
push edi
push esi
push dword [ebp - 0x1108]
call fcn.0040f1a0
add esp, 0xc
cmp dword [ebp - 0x110c], esi
jle 0x40919c
mov cl, byte [ebp + esi - 0x1004]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x1108]
cmp cl, 0x30
jl 0x40917a
cmp cl, 0x39
jle 0x409173
cmp cl, 0x40
jle 0x40917a
cmp cl, 0x46
jle 0x40916e
cmp cl, 0x60
jle 0x40917a
cmp cl, 0x66
jg 0x40917a
sub cl, 0x57
jmp 0x409176
sub cl, 0x37
jmp 0x409176
sub cl, 0x30
mov dl, cl
jmp 0x40917c
xor dl, dl
mov ebx, esi
and ebx, 1
shl ebx, 2
push 4
pop ecx
sub ecx, ebx
shl dl, cl
or byte [eax], dl
inc esi
cmp esi, dword [ebp - 0x110c]
jl 0x409137
mov ebx, dword [ebp - 0x1114]
mov eax, dword [ebx]
push edi
push dword [ebp - 0x1108]
push 3
push 0
push dword [ebp - 0x1118]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
lea eax, [ebp - 0x1104]
cmp dword [ebp - 0x1108], eax
je 0x4091f8
lea eax, [ebp - 0x1108]
call fcn.00408dc1
jmp 0x4091f8
lea eax, [ebp - 0x1004]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp - 0x1004]
push eax
push 1
push 0
push esi
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
test esi, esi
je 0x409205
mov eax, esi
call fcn.00409589
jmp 0x40921e
mov edi, dword [ebp - 0x1120]
mov eax, dword [ebp - 0x1124]
mov ecx, edi
call fcn.0040959d
test eax, eax
jl 0x40921e
xor eax, eax
lea esp, [ebp - 0x1130]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040bb7c
leave
ret 8