Function at 0x487e70
Capabilities:
Set registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x493811
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2c8
mov eax, dword [0x4ba030]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push edx
mov edx, esi
mov dword [ebp - 0x2d0], 0
lea ecx, [ebp - 0x2c0]
call fcn.00488a20
add esp, 4
push 0x200
lea eax, [ebp - 0x218]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.00428be0
add esp, 0xc
lea eax, [ebp - 0x218]
push dword [ebx + 8]
push 0x4a9f28
push eax
call fcn.0040888e
xorps xmm0, xmm0
mov dword [ebp - 0x268], 0
movups xmmword [ebp - 0x278], xmm0
add esp, 0xc
mov dword [ebp - 0x264], 0xf
mov byte [ebp - 0x278], 0
mov ecx, esi
mov byte [ebp - 4], 1
movups xmmword [ebp - 0x248], xmm0
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x487f50
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x248]
call fcn.00401fb2
mov byte [ebp - 4], 3
xor ecx, ecx
mov edi, dword [ebp - 0x238]
mov edx, 0xf
mov dword [ebp - 0x2c8], ecx
xorps xmm0, xmm0
mov dword [ebp - 0x220], ecx
mov dword [ebp - 0x2d4], edx
mov dword [ebp - 0x21c], edx
mov dword [ebp - 0x2d0], 1
movups xmmword [ebp - 0x230], xmm0
mov byte [ebp - 0x230], cl
cmp edi, edx
jbe 0x48805e
cmp edi, 0x7fffffff
ja 0x48868a
or edi, edx
cmp edi, 0x7fffffff
jbe 0x487fdc
mov ecx, connect
mov edi, SysReAllocString
add ecx, 0x23
jmp 0x487ffb
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x488017
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x488685
push ecx
call fcn.00426ce4
add esp, 4
test eax, eax
je 0x48868f
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x48802a
test eax, eax
je 0x488028
push eax
call fcn.00426ce4
add esp, 4
mov ecx, eax
jmp 0x48802a
xor ecx, ecx
mov al, byte [ebp - 0x230]
mov dword [ebp - 0x21c], edi
mov byte [ecx], al
mov edx, dword [ebp - 0x21c]
mov edi, dword [ebp - 0x238]
mov dword [ebp - 0x230], ecx
xor ecx, ecx
mov dword [ebp - 0x2c8], ecx
mov dword [ebp - 0x220], ecx
mov dword [ebp - 0x2d4], edx
cmp dword [ebp - 0x234], 8
lea esi, [ebp - 0x248]
cmovae esi, dword [ebp - 0x248]
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
lea eax, [eax + edi*2]
cmp esi, eax
je 0x488244
mov al, byte [esi]
mov byte [ebp - 0x2c1], al
cmp ecx, edx
jae 0x4880c9
lea eax, [ecx + 1]
cmp edx, 0x10
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
add eax, ecx
mov cl, byte [ebp - 0x2c1]
mov byte [eax + 1], 0
mov byte [eax], cl
jmp 0x48821e
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x48868a
lea edi, [ecx + 1]
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x4880f6
mov ecx, connect
mov edi, SysReAllocString
add ecx, 0x23
jmp 0x488140
mov eax, edx
shr eax, 1
mov dword [ebp - 0x2cc], eax
mov eax, SysReAllocString
sub eax, dword [ebp - 0x2cc]
cmp edx, eax
jbe 0x48811e
mov ecx, connect
mov edi, SysReAllocString
add ecx, 0x23
jmp 0x488140
mov eax, dword [ebp - 0x2cc]
add eax, edx
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x488164
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x488685
push ecx
call fcn.00426ce4
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x48868f
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
mov ecx, dword [ebp - 0x2c8]
jmp 0x48817b
test eax, eax
je 0x488179
push eax
call fcn.00426ce4
mov ecx, dword [ebp - 0x2c8]
add esp, 4
jmp 0x48817b
xor eax, eax
cmp dword [ebp - 0x2d4], 0x10
lea edx, [ecx + 1]
mov dword [ebp - 0x21c], edi
lea edi, [ecx + eax]
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x220], edx
mov dword [ebp - 0x2c8], edi
push ecx
jb 0x4881f6
mov edi, dword [ebp - 0x230]
push edi
push eax
call fcn.00428660
mov eax, dword [ebp - 0x2c8]
add esp, 0xc
mov cl, byte [ebp - 0x2c1]
mov byte [eax], cl
mov ecx, dword [ebp - 0x2d4]
inc ecx
mov byte [eax + 1], 0
cmp ecx, 0x1000
jb 0x4881ea
mov edx, dword [edi - 4]
add ecx, 0x23
sub edi, edx
lea eax, [edi - 4]
cmp eax, 0x1f
ja 0x48868f
mov edi, edx
push ecx
push edi
call fcn.00426cb3
add esp, 8
jmp 0x488212
lea ecx, [ebp - 0x230]
push ecx
push eax
call fcn.00428660
mov cl, byte [ebp - 0x2c1]
add esp, 0xc
mov byte [edi], cl
mov byte [edi + 1], 0
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x230], eax
mov edx, dword [ebp - 0x21c]
add esi, 2
mov ecx, dword [ebp - 0x220]
mov edi, dword [ebp - 0x238]
mov dword [ebp - 0x2d4], edx
mov dword [ebp - 0x2c8], ecx
jmp 0x488072
cmp edx, 0x10
lea eax, [ebp - 0x278]
lea ecx, [ebp - 0x230]
cmovae ecx, dword [ebp - 0x230]
lea edx, [ebp - 0x218]
push eax
call fcn.0040d075
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0x21c]
cmp ecx, 0x10
jb 0x4882a7
mov edx, dword [ebp - 0x230]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x48829d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48868f
push ecx
push edx
call fcn.00426cb3
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
cmp ecx, 8
jb 0x488306
mov edx, dword [ebp - 0x248]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4882fc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48868f
push ecx
push edx
call fcn.00426cb3
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x250], 0
movups xmmword [ebp - 0x260], xmm0
mov dword [ebp - 0x24c], 0xf
mov byte [ebp - 0x260], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x278]
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x2d0]
mov edi, dword [ebp - 0x264]
cmp edi, 0x10
mov esi, dword [ebp - 0x278]
mov dword [ebp - 0x2d0], eax
cmovae ecx, esi
lea eax, [ebp - 0x260]
push eax
call fcn.0040d1e8
add esp, 4
mov dword [ebp - 0x280], 0
cmp dword [ebp - 0x2ac], 0x10
lea edx, [ebp - 0x2c0]
xorps xmm0, xmm0
mov dword [ebp - 0x27c], 0
cmovae edx, dword [ebp - 0x2c0]
mov ecx, edx
movups xmmword [ebp - 0x290], xmm0
lea eax, [ecx + 1]
mov dword [ebp - 0x2d0], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4883a5
sub ecx, dword [ebp - 0x2d0]
push ecx
push edx
lea ecx, [ebp - 0x290]
call fcn.0040600c
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2a8]
cmp dword [0x4e4bd4], 0x10
mov edx, 0x4e4bc0
push str.yh87Yx6EotW2RHhQlrSlh3ep1
cmovae edx, dword [0x4e4bc0]
call fcn.0040d396
add esp, 4
mov edx, eax
mov byte [ebp - 4], 6
cmp dword [edx + 0x14], 0x10
jb 0x4883f7
mov edx, dword [edx]
mov ecx, edx
mov dword [ebp - 0x220], 0
xorps xmm0, xmm0
mov dword [ebp - 0x21c], 0
movups xmmword [ebp - 0x230], xmm0
lea eax, [ecx + 1]
mov dword [ebp - 0x2d0], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x488420
sub ecx, dword [ebp - 0x2d0]
push ecx
push edx
lea ecx, [ebp - 0x230]
call fcn.0040600c
cmp dword [ebp - 0x21c], 0x10
lea ecx, [ebp - 0x2d4]
push ecx
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 0
push ecx
push 0
push 0x20006
push 0
push 0x4a9901
lea eax, [ebp - 0x230]
mov dword [ebp - 0x2d4], 0
cmovae eax, dword [ebp - 0x230]
push 0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push dword [ebp - 0x250]
cmp dword [ebp - 0x24c], 0x10
lea ecx, [ebp - 0x260]
lea eax, [ebp - 0x290]
cmovae ecx, dword [ebp - 0x260]
cmp dword [ebp - 0x27c], 0x10
push ecx
cmovae eax, dword [ebp - 0x290]
push 1
push 0
push eax
push dword [ebp - 0x2c8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0x21c]
cmp ecx, 0x10
jb 0x488506
mov edx, dword [ebp - 0x230]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4884fc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x488694
push ecx
push edx
call fcn.00426cb3
add esp, 8
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
cmp ecx, 0x10
jb 0x48855b
mov edx, dword [ebp - 0x2a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x488551
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x488694
push ecx
push edx
call fcn.00426cb3
add esp, 8
mov ecx, dword [ebp - 0x27c]
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0xf
mov byte [ebp - 0x2a8], 0
cmp ecx, 0x10
jb 0x4885b0
mov edx, dword [ebp - 0x290]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4885a6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x488694
push ecx
push edx
call fcn.00426cb3
add esp, 8
mov ecx, dword [ebp - 0x24c]
cmp ecx, 0x10
jb 0x4885ea
mov edx, dword [ebp - 0x260]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4885e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x488699
push ecx
push edx
call fcn.00426cb3
add esp, 8
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0xf
mov byte [ebp - 0x260], 0
cmp edi, 0x10
jb 0x488631
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x488627
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x488699
push ecx
push esi
call fcn.00426cb3
add esp, 8
mov ecx, dword [ebp - 0x2ac]
cmp ecx, 0x10
jb 0x488667
mov edx, dword [ebp - 0x2c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x48865d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x488699
push ecx
push edx
call fcn.00426cb3
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00426ca5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004025d1
call fcn.0040247b
call fcn.0043289f
call fcn.0043289f
call fcn.0043289f
int3