Function at 0x413da8
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 0x413dd3
push eax
lea ecx, [ebp + 0x18]
call fcn.0041caab
push 0x5c
lea ecx, [ebp + 0x18]
call fcn.0041c9de
cmp dword [ebx + 0x1c], edi
mov dword [ebp - 0xc], edi
mov esi, 0x47f028
jle 0x413feb
push dword [ebp - 0xc]
lea ecx, [ebx + 0x10]
call fcn.0041f2e9
mov edi, eax
push dword [edi + 0x24]
call fcn.004134e1
test al, al
pop ecx
je 0x413fda
push edi
mov ecx, esi
call fcn.00416e92
lea ebx, [edi + 0xc]
mov ecx, esi
push ebx
call fcn.00416e92
push edi
mov ecx, esi
call fcn.0041b21e
push ebx
mov ecx, esi
call fcn.0041b21e
push 0x7fffffff
push edi
mov ecx, esi
call fcn.0041bd98
push 0x7fffffff
push ebx
mov ecx, esi
call fcn.0041bd98
lea ecx, [ebp - 0x28]
call fcn.0041c7ab
mov eax, dword [edi + 0x18]
cmp eax, 1
je 0x413f71
cmp eax, 2
je 0x413f71
cmp eax, 4
jne 0x413e7d
mov ecx, ebx
call fcn.0041d704
push eax
call fcn.00425ad3
pop ecx
mov dword [ebp - 0x18], eax
push 4
lea eax, [ebp - 0x18]
pop ebx
jmp 0x413f7b
cmp eax, 3
jne 0x413f34
and dword [ebp - 8], 0
cmp dword [ebx], 0
jbe 0x413f27
mov eax, dword [ebp - 8]
push 3
xor edx, edx
pop ecx
div ecx
cmp edx, 2
mov dword [ebp - 0x1c], edx
je 0x413f19
push dword [ebp - 8]
mov ecx, ebx
call fcn.0041c9c9
cmp al, 0x30
jl 0x413ec2
cmp al, 0x39
jg 0x413ec2
movsx eax, al
sub eax, 0x30
mov dword [ebp - 4], eax
jmp 0x413efd
cmp al, 0x41
jl 0x413ed2
cmp al, 0x46
jg 0x413ed2
movsx eax, al
sub eax, 0x37
jmp 0x413ee0
cmp al, 0x61
jl 0x413ee5
cmp al, 0x66
jg 0x413ee5
movsx eax, al
sub eax, 0x57
mov dword [ebp - 4], eax
jmp 0x413efa
push 0x42f138
lea ecx, [ebp - 0x28]
call fcn.0041c8f8
lea ecx, [ebp - 0x28]
call fcn.0041d704
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x1c], 0
jne 0x413f0b
shl al, 4
mov byte [ebp - 0x14], al
jmp 0x413f19
add byte [ebp - 0x14], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
call fcn.0041c9de
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx]
jb 0x413e93
lea ecx, [ebp - 0x28]
call fcn.0041d704
mov ebx, dword [ebp - 0x28]
jmp 0x413f7b
push 1
push 0
push 0
push 0x42d208
push str._0_
mov ecx, ebx
call fcn.0041d5df
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 1
call fcn.0041d5af
mov eax, dword [ebx]
mov ecx, ebx
dec eax
push eax
call fcn.0041c9c9
test al, al
je 0x413f71
push 0
mov ecx, ebx
call fcn.0041c9de
mov ecx, ebx
call fcn.0041d704
mov ebx, dword [ebx]
inc ebx
push ebx
push eax
push dword [edi + 0x18]
xor ebx, ebx
mov ecx, edi
push ebx
call fcn.0041d704
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x413fa2
mov eax, dword [ebp + 0x10]
inc dword [eax]
mov dword [edi + 0x1c], ebx
jmp 0x413fa9
mov dword [edi + 0x1c], 1
mov eax, dword [ebp + 0x14]
or dword [edi + 0x1c], 2
inc dword [eax]
mov ecx, dword [0x47f500]
mov eax, dword [eax]
cmp ecx, ebx
jbe 0x413fcf
imul eax, eax, 0x64
xor edx, edx
push ebx
div ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00415658
lea ecx, [ebp - 0x28]
call fcn.0041c8e1
mov ebx, dword [ebp + 0xc]
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebx + 0x1c]
jl 0x413de4
xor edi, edi
cmp dword [ebx + 0x30], edi
mov dword [ebp - 8], edi
jle 0x414148
push dword [ebp - 8]
lea ecx, [ebx + 0x24]
call fcn.0041f2e9
mov edi, eax
push dword [edi + 0x40]
call fcn.004134e1
test al, al
pop ecx
je 0x414139
lea ebx, [edi + 4]
mov ecx, esi
push ebx
call fcn.00416e92
push ebx
mov ecx, esi
call fcn.0041b21e
push 0x7fffffff
push ebx
mov ecx, esi
call fcn.0041bd98
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.0041d704
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x4140d7
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.0041d704
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x4140d7
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.0041d704
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x4140d7
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
inc dword [eax]
inc dword [ecx]
mov ecx, dword [0x47f500]
test ecx, ecx
jbe 0x414136
mov eax, dword [eax]
xor edx, edx
imul eax, eax, 0x64
div ecx
mov ecx, dword [ebp - 0x10]
push 0
push eax
call fcn.00415658
jmp 0x414136
mov ebx, dword [ebp + 0x14]
inc dword [ebx]
mov ecx, dword [0x47f500]
mov eax, dword [ebx]
test ecx, ecx
jbe 0x4140fa
imul eax, eax, 0x64
xor edx, edx
push 0
div ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00415658
push 1
pop eax
cmp dword [ebp - 0x14], eax
jne 0x414107
mov dword [edi + 0x38], eax
jmp 0x41410b
and dword [edi + 0x38], 0
or dword [edi + 0x38], 2
sub esp, 0xc
lea eax, [ebp + 0x18]
mov ecx, esp
push eax
call fcn.0041c87f
push ebx
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x10]
push edi
push dword [ebp - 0xc]
call fcn.00413da8
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 0x413ff7
lea ecx, [ebp + 0x18]
call fcn.0041c8e1
pop edi
pop esi
pop ebx
leave
ret 0x1c