Function at 0x413399
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 0x4133c4
push eax
lea ecx, [ebp + 0x18]
call fcn.0041c0c5
push 0x5c
lea ecx, [ebp + 0x18]
call fcn.0041bff8
cmp dword [ebx + 0x1c], edi
mov dword [ebp - 0xc], edi
mov esi, 0x47dfb8
jle 0x4135dc
push dword [ebp - 0xc]
lea ecx, [ebx + 0x10]
call fcn.0041e860
mov edi, eax
push dword [edi + 0x24]
call fcn.00412ba7
test al, al
pop ecx
je 0x4135cb
push edi
mov ecx, esi
call fcn.004164b1
lea ebx, [edi + 0xc]
mov ecx, esi
push ebx
call fcn.004164b1
push edi
mov ecx, esi
call fcn.0041a81a
push ebx
mov ecx, esi
call fcn.0041a81a
push 0x7fffffff
push edi
mov ecx, esi
call fcn.0041b3b9
push 0x7fffffff
push ebx
mov ecx, esi
call fcn.0041b3b9
lea ecx, [ebp - 0x28]
call fcn.0041bdc5
mov eax, dword [edi + 0x18]
cmp eax, 1
je 0x413562
cmp eax, 2
je 0x413562
cmp eax, 4
jne 0x41346e
mov ecx, ebx
call fcn.0041cd1e
push eax
call fcn.00424fc3
pop ecx
mov dword [ebp - 0x18], eax
push 4
lea eax, [ebp - 0x18]
pop ebx
jmp 0x41356c
cmp eax, 3
jne 0x413525
and dword [ebp - 8], 0
cmp dword [ebx], 0
jbe 0x413518
mov eax, dword [ebp - 8]
push 3
xor edx, edx
pop ecx
div ecx
cmp edx, 2
mov dword [ebp - 0x1c], edx
je 0x41350a
push dword [ebp - 8]
mov ecx, ebx
call fcn.0041bfe3
cmp al, 0x30
jl 0x4134b3
cmp al, 0x39
jg 0x4134b3
movsx eax, al
sub eax, 0x30
mov dword [ebp - 4], eax
jmp 0x4134ee
cmp al, 0x41
jl 0x4134c3
cmp al, 0x46
jg 0x4134c3
movsx eax, al
sub eax, 0x37
jmp 0x4134d1
cmp al, 0x61
jl 0x4134d6
cmp al, 0x66
jg 0x4134d6
movsx eax, al
sub eax, 0x57
mov dword [ebp - 4], eax
jmp 0x4134eb
push 0x42e0c8
lea ecx, [ebp - 0x28]
call fcn.0041bf12
lea ecx, [ebp - 0x28]
call fcn.0041cd1e
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x1c], 0
jne 0x4134fc
shl al, 4
mov byte [ebp - 0x14], al
jmp 0x41350a
add byte [ebp - 0x14], al
push dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
call fcn.0041bff8
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx]
jb 0x413484
lea ecx, [ebp - 0x28]
call fcn.0041cd1e
mov ebx, dword [ebp - 0x28]
jmp 0x41356c
push 1
push 0
push 0
push 0x42c1f0
push str._0_
mov ecx, ebx
call fcn.0041cbf9
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 1
call fcn.0041cbc9
mov eax, dword [ebx]
mov ecx, ebx
dec eax
push eax
call fcn.0041bfe3
test al, al
je 0x413562
push 0
mov ecx, ebx
call fcn.0041bff8
mov ecx, ebx
call fcn.0041cd1e
mov ebx, dword [ebx]
inc ebx
push ebx
push eax
push dword [edi + 0x18]
xor ebx, ebx
mov ecx, edi
push ebx
call fcn.0041cd1e
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x413593
mov eax, dword [ebp + 0x10]
inc dword [eax]
mov dword [edi + 0x1c], ebx
jmp 0x41359a
mov dword [edi + 0x1c], 1
mov eax, dword [ebp + 0x14]
or dword [edi + 0x1c], 2
inc dword [eax]
mov ecx, dword [0x47e490]
mov eax, dword [eax]
cmp ecx, ebx
jbe 0x4135c0
imul eax, eax, 0x64
xor edx, edx
push ebx
div ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00414c1b
lea ecx, [ebp - 0x28]
call fcn.0041befb
mov ebx, dword [ebp + 0xc]
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebx + 0x1c]
jl 0x4133d5
xor edi, edi
cmp dword [ebx + 0x30], edi
mov dword [ebp - 8], edi
jle 0x413739
push dword [ebp - 8]
lea ecx, [ebx + 0x24]
call fcn.0041e860
push dword [ebx + 0x40]
mov edi, eax
call fcn.00412ba7
test al, al
pop ecx
je 0x41372a
lea ebx, [edi + 4]
mov ecx, esi
push ebx
call fcn.004164b1
push ebx
mov ecx, esi
call fcn.0041a81a
push 0x7fffffff
push ebx
mov ecx, esi
call fcn.0041b3b9
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.0041cd1e
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x4136c8
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.0041cd1e
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x4136c8
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.0041cd1e
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x4136c8
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
inc dword [eax]
inc dword [ecx]
mov ecx, dword [0x47e490]
test ecx, ecx
jbe 0x413727
mov eax, dword [eax]
xor edx, edx
imul eax, eax, 0x64
div ecx
mov ecx, dword [ebp - 0x10]
push 0
push eax
call fcn.00414c1b
jmp 0x413727
mov ebx, dword [ebp + 0x14]
inc dword [ebx]
mov ecx, dword [0x47e490]
mov eax, dword [ebx]
test ecx, ecx
jbe 0x4136eb
imul eax, eax, 0x64
xor edx, edx
push 0
div ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.00414c1b
push 1
pop eax
cmp dword [ebp - 0x14], eax
jne 0x4136f8
mov dword [edi + 0x38], eax
jmp 0x4136fc
and dword [edi + 0x38], 0
or dword [edi + 0x38], 2
sub esp, 0xc
lea eax, [ebp + 0x18]
mov ecx, esp
push eax
call fcn.0041be99
push ebx
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x10]
push edi
push dword [ebp - 0xc]
call fcn.00413399
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 0x4135e8
lea ecx, [ebp + 0x18]
call fcn.0041befb
pop edi
pop esi
pop ebx
leave
ret 0x1c