Function at 0x419ae0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d41df
mov eax, dword fs:[0]
push eax
mov eax, 0x13be4
call fcn.004b4820
mov eax, dword [0x540c80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x13bd8], ecx
mov dword [ebp - 4], 1
mov esi, dword [0x545d90]
mov ecx, 0x14
lea edx, [esi + 1]
lea eax, [esi + 2]
imul eax, edx
imul eax, esi
cdq
idiv ecx
cmp edx, 0xb
jne 0x419ba5
xor eax, eax
push 0x13ba0
push eax
mov word [ebp - 0x13bb4], ax
lea eax, [ebp - 0x13bb2]
push eax
call fcn.004b4a90
add esp, 0xc
xor edi, edi
xor esi, esi
xor eax, eax
test edi, edi
je 0x419b8a
test eax, eax
je 0x419b8a
lea ecx, [esi + eax]
lea edx, [ebp - 0x13bb4]
lea edx, [edx + ecx*2]
lea ecx, [esi + eax]
mov cx, word [ebp + ecx*2 - 0x13d46]
inc cx
add cx, word [edx - 2]
mov word [edx], cx
inc eax
cmp eax, 0xc9
jl 0x419b62
add esi, 0xc9
inc edi
cmp esi, 0x9dd1
jl 0x419b60
movsx esi, word [ebp - 0x14]
xor eax, eax
cmp byte [0x545d94], al
lea ecx, [esi + 1]
sete al
mov edi, 0x12
add eax, 0x80000001
mov dword [ebp - 0x13bec], eax
mov eax, ecx
imul eax, esi
cdq
idiv edi
mov eax, dword [0x5406d8]
cmp edx, 0x11
cmove esi, ecx
mov ecx, 0x5406d8
mov dword [0x545d90], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x13bd0], eax
mov byte [ebp - 4], 3
xor edi, edi
mov dword [ebp - 0x13be8], edi
mov dword [ebp - 0x13be4], edi
mov dword [ebp - 0x13be0], edi
mov byte [ebp - 4], 6
mov eax, dword [0x5406d8]
mov ecx, 0x5406d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x13bc0], eax
mov byte [ebp - 4], 8
mov eax, dword [0x5406d8]
mov ecx, 0x5406d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x13bbc], eax
mov byte [ebp - 4], 9
mov eax, 0x51d430
test eax, 0xffff0000
jne 0x419c66
movzx esi, ax
mov ecx, esi
call fcn.00401b90
test eax, eax
je 0x419c76
push esi
push eax
lea ecx, [ebp - 0x13bbc]
call fcn.00402a00
jmp 0x419c76
push 0x51d430
lea ecx, [ebp - 0x13bbc]
call fcn.00403700
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x13bbc]
push eax
lea edx, [ebp - 0x13bd0]
lea ecx, [ebp - 0x13bcc]
call fcn.0040f160
mov byte [ebp - 4], 0xb
push 0x546034
mov edx, eax
lea ecx, [ebp - 0x13bd4]
call fcn.0040f160
mov byte [ebp - 4], 0xc
push 0x51d42c
mov edx, eax
lea ecx, [ebp - 0x13bc8]
call fcn.00418660
mov byte [ebp - 4], 0xd
lea ecx, [ebp + 8]
push ecx
mov edx, eax
lea ecx, [ebp - 0x13bdc]
call fcn.0040f160
add esp, 0x10
mov byte [ebp - 4], 0xe
mov edx, dword [eax]
mov ebx, dword [ebp - 0x13bc0]
lea ecx, [edx - 0x10]
add ebx, 0xfffffff0
or esi, 0xffffffff
cmp ecx, ebx
je 0x419d3c
cmp dword [ebx + 0xc], 0
jl 0x419d2d
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x419d2d
call fcn.004028c0
mov dword [ebp - 0x13bc4], eax
mov ecx, esi
lea edx, [ebx + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x419d22
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x13bc4]
add eax, 0x10
mov dword [ebp - 0x13bc0], eax
jmp 0x419d3c
push dword [edx - 0xc]
lea ecx, [ebp - 0x13bc0]
push edx
call fcn.00402790
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x13bdc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419d5f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x13bc8]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419d82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x13bd4]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419da5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x13bcc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419dc8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x13bbc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419deb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5406d8]
mov ecx, 0x5406d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x13bbc], eax
mov byte [ebp - 4], 0x14
mov eax, 0x51d440
test eax, 0xffff0000
jne 0x419e2e
movzx ebx, ax
mov ecx, ebx
call fcn.00401b90
test eax, eax
je 0x419e3e
push ebx
push eax
lea ecx, [ebp - 0x13bbc]
call fcn.00402a00
jmp 0x419e3e
push 0x51d440
lea ecx, [ebp - 0x13bbc]
call fcn.00403700
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x13bbc]
push eax
lea edx, [ebp - 0x13bd0]
lea ecx, [ebp - 0x13bdc]
call fcn.0040f160
mov byte [ebp - 4], 0x16
push 0x546034
mov edx, eax
lea ecx, [ebp - 0x13bc8]
call fcn.0040f160
mov byte [ebp - 4], 0x17
push 0x51d43c
mov edx, eax
lea ecx, [ebp - 0x13bd4]
call fcn.00418660
mov byte [ebp - 4], 0x18
lea ecx, [ebp + 8]
push ecx
mov edx, eax
lea ecx, [ebp - 0x13bcc]
call fcn.0040f160
add esp, 0x10
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x13bf0]
push ecx
lea ecx, [ebp - 0x13bc4]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push dword [eax]
mov dword [ebp - 0x13bc4], 0
push dword [ebp - 0x13bec]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x419eed
mov edi, dword [ebp - 0x13bc4]
mov dword [ebp - 0x13be4], eax
mov dword [ebp - 0x13be8], edi
test eax, eax
setne bl
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x13bcc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419f13
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x13bd4]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419f36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x13bc8]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419f59
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x13bdc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419f7c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x13bbc]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x419f9f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x419fed
mov eax, dword [ebp - 0x13bd8]
push 4
mov dword [ebp - 0x13bd8], eax
lea eax, [ebp - 0x13bd8]
push eax
push 4
push 0
push dword [ebp + 0xc]
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x41a0bc
test edi, edi
je 0x419fe3
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x13be8], edi
mov dword [ebp - 0x13be4], 0
mov byte [ebp - 0x13bb5], 0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x13bc0]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a017
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test edi, edi
je 0x41a02c
push edi
call ebx
mov dword [ebp - 0x13be8], 0
mov dword [ebp - 0x13be4], 0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x13bd0]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a059
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a079
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp + 0xc]
add edi, 0xfffffff0
lea eax, [edi + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x41a09a
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x13bb5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004af5ba
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x41a0d1
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x13be8], edi
mov dword [ebp - 0x13be4], 0
mov byte [ebp - 0x13bb5], 1
jmp 0x419ff4