Function at 0x414ee2
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
lea eax, [ebx + 4]
xor edi, edi
mov dword [ebp - 0x10], ecx
cmp dword [eax], edi
jbe 0x414f0d
push eax
lea ecx, [ebp + 0x18]
call fcn.0041e4c7
push 0x5c
lea ecx, [ebp + 0x18]
call fcn.0041e3fa
cmp dword [ebx + 0x1c], edi
mov dword [ebp - 0xc], edi
mov esi, 0x481080
jle 0x415125
push dword [ebp - 0xc]
lea ecx, [ebx + 0x10]
call fcn.004211d1
mov edi, eax
push dword [edi + 0x24]
call fcn.004145cc
test al, al
pop ecx
je 0x415114
push edi
mov ecx, esi
call fcn.0041843c
lea ebx, [edi + 0xc]
mov ecx, esi
push ebx
call fcn.0041843c
push edi
mov ecx, esi
call fcn.0041cafa
push ebx
mov ecx, esi
call fcn.0041cafa
push 0x7fffffff
push edi
mov ecx, esi
call fcn.0041d79d
push 0x7fffffff
push ebx
mov ecx, esi
call fcn.0041d79d
lea ecx, [ebp - 0x28]
call fcn.0041e1c7
mov eax, dword [edi + 0x18]
cmp eax, 1
je 0x4150ab
cmp eax, 2
je 0x4150ab
cmp eax, 4
jne 0x414fb7
mov ecx, ebx
call fcn.0041f120
push eax
call fcn.00427a53
pop ecx
mov dword [ebp - 0x18], eax
push 4
lea eax, [ebp - 0x18]
pop ebx
jmp 0x4150b5
cmp eax, 3
jne 0x41506e
and dword [ebp - 8], 0
cmp dword [ebx], 0
jbe 0x415061
mov eax, dword [ebp - 8]
push 3
xor edx, edx
pop ecx
div ecx
cmp edx, 2
mov dword [ebp - 0x1c], edx
je 0x415053
push dword [ebp - 8]
mov ecx, ebx
call fcn.0041e3e5
cmp al, 0x30
jl 0x414ffc
cmp al, 0x39
jg 0x414ffc
movsx eax, al
sub eax, 0x30
mov dword [ebp - 4], eax
jmp 0x415037
cmp al, 0x41
jl 0x41500c
cmp al, 0x46
jg 0x41500c
movsx eax, al
sub eax, 0x37
jmp 0x41501a
cmp al, 0x61
jl 0x41501f
cmp al, 0x66
jg 0x41501f
movsx eax, al
sub eax, 0x57
mov dword [ebp - 4], eax
jmp 0x415034
push 0x431188
lea ecx, [ebp - 0x28]
call fcn.0041e314
lea ecx, [ebp - 0x28]
call fcn.0041f120
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x1c], 0
jne 0x415045
shl al, 4
mov byte [ebp - 0x14], al
jmp 0x415053
add byte [ebp - 0x14], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
call fcn.0041e3fa
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx]
jb 0x414fcd
lea ecx, [ebp - 0x28]
call fcn.0041f120
mov ebx, dword [ebp - 0x28]
jmp 0x4150b5
push 1
push 0
push 0
push 0x42f078
push str._0_
mov ecx, ebx
call fcn.0041effb
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 1
call fcn.0041efcb
mov eax, dword [ebx]
mov ecx, ebx
dec eax
push eax
call fcn.0041e3e5
test al, al
je 0x4150ab
push 0
mov ecx, ebx
call fcn.0041e3fa
mov ecx, ebx
call fcn.0041f120
mov ebx, dword [ebx]
inc ebx
push ebx
push eax
push dword [edi + 0x18]
xor ebx, ebx
mov ecx, edi
push ebx
call fcn.0041f120
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x4150dc
mov eax, dword [ebp + 0x10]
inc dword [eax]
mov dword [edi + 0x1c], ebx
jmp 0x4150e3
mov dword [edi + 0x1c], 1
mov eax, dword [ebp + 0x14]
or dword [edi + 0x1c], 2
inc dword [eax]
mov ecx, dword [0x481588]
mov eax, dword [eax]
cmp ecx, ebx
jbe 0x415109
imul eax, eax, 0x64
xor edx, edx
push ebx
div ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00416817
lea ecx, [ebp - 0x28]
call fcn.0041e2fd
mov ebx, dword [ebp + 0xc]
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebx + 0x1c]
jl 0x414f1e
xor edi, edi
cmp dword [ebx + 0x30], edi
mov dword [ebp - 8], edi
jle 0x415282
push dword [ebp - 8]
lea ecx, [ebx + 0x24]
call fcn.004211d1
mov edi, eax
push dword [edi + 0x40]
call fcn.004145cc
test al, al
pop ecx
je 0x415273
lea ebx, [edi + 4]
mov ecx, esi
push ebx
call fcn.0041843c
push ebx
mov ecx, esi
call fcn.0041cafa
push 0x7fffffff
push ebx
mov ecx, esi
call fcn.0041d79d
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc]
push eax
xor eax, eax
push eax
push 0x2001f
push eax
push eax
push eax
call fcn.0041f120
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x415211
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc]
push eax
xor eax, eax
push eax
push 0x20006
push eax
push eax
push eax
call fcn.0041f120
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x415211
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc]
push eax
xor eax, eax
push eax
push 0x20019
push eax
push eax
push eax
call fcn.0041f120
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x415211
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
inc dword [eax]
inc dword [ecx]
mov ecx, dword [0x481588]
test ecx, ecx
jbe 0x415270
mov eax, dword [eax]
xor edx, edx
imul eax, eax, 0x64
div ecx
mov ecx, dword [ebp - 0x10]
push 0
push eax
call fcn.00416817
jmp 0x415270
mov ebx, dword [ebp + 0x14]
inc dword [ebx]
mov ecx, dword [0x481588]
mov eax, dword [ebx]
test ecx, ecx
jbe 0x415234
imul eax, eax, 0x64
xor edx, edx
push 0
div ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00416817
push 1
pop eax
cmp dword [ebp - 0x14], eax
jne 0x415241
mov dword [edi + 0x38], eax
jmp 0x415245
and dword [edi + 0x38], 0
or dword [edi + 0x38], 2
sub esp, 0xc
lea eax, [ebp + 0x18]
mov ecx, esp
push eax
call fcn.0041e29b
push ebx
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x10]
push edi
push dword [ebp - 0xc]
call fcn.00414ee2
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp + 0xc]
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x30]
jl 0x415131
lea ecx, [ebp + 0x18]
call fcn.0041e2fd
pop edi
pop esi
pop ebx
leave
ret 0x1c