Function at 0x500949
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd00
xor eax, eax
mov ecx, 0x30c
push ebx
push esi
push edi
xor esi, esi
lea edi, [ebp - 0xd00]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xbc9]
mov edi, dword [ebp + 0x14]
push eax
push edi
push str.38810806
call fcn.005010e1
cmp byte [ebp - 0xbc9], 0
jne 0x50098e
mov eax, 0xc
jmp 0x500e84
lea eax, [ebp - 0x944]
push eax
push edi
push str.SAA_482
call fcn.005010e1
cmp byte [ebp - 0x944], 0
jne 0x5009b3
mov eax, 0xc
jmp 0x500e84
lea eax, [ebp - 0x8e2]
push eax
push edi
push str.YAP00667
call fcn.005010e1
cmp byte [ebp - 0x8e2], 0
jne 0x5009d8
mov eax, 0xc
jmp 0x500e84
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0xcfb]
push eax
xor ebx, ebx
mov byte [ebp - 0xcfc], 1
push edi
push ecx
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xcfb]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xcc8]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xcc8]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xc95]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xc95]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xc62]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xc62]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xc2f]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0xc2f]
push eax
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xbfc]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xbfc]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xbbf]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xbbf]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xb8c]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xb8c]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xb59]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xb59]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
push ecx
push edi
lea eax, [ebp - 0xb26]
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xb26]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xaf3]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xaf3]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xac0]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xac0]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xa8d]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xa8d]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xa5a]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xa5a]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0xa27]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xa27]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0x9f4]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x9f4]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0x9c1]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x9c1]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0x98e]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x98e]
push ecx
call fcn.005008fc
add esp, 0xc
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0x95b]
push ecx
push edi
push eax
call fcn.005010e1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x95b]
push ecx
call fcn.005008fc
movsx ecx, byte [edi + 2]
movsx edx, byte [edi]
imul ecx, edx
add esp, 0xc
add dword [ebp - 0x958], ecx
add dword [ebp - 0x954], ecx
add dword [ebp - 0x950], ecx
add dword [ebp - 0x94c], ecx
add dword [ebp - 0x948], ecx
add dword [ebp - 0x93a], ecx
add dword [ebp - 0x936], ecx
add dword [ebp - 0x932], ecx
add dword [ebp - 0x92e], ecx
add dword [ebp - 0x92a], ecx
add dword [ebp - 0x926], ecx
add dword [ebp - 0x922], ecx
sub dword [ebp - 0x91e], ecx
sub dword [ebp - 0x91a], ecx
sub dword [ebp - 0x916], ecx
sub dword [ebp - 0x912], ecx
sub dword [ebp - 0x90e], ecx
sub dword [ebp - 0x90a], ecx
sub dword [ebp - 0x906], ecx
sub dword [ebp - 0x902], ecx
sub dword [ebp - 0x8fe], ecx
add dword [ebp - 0x8fa], ecx
add dword [ebp - 0x8f6], ecx
add dword [ebp - 0x8f2], ecx
sub dword [ebp - 0x8ee], ecx
sub dword [ebp - 0x8ea], ecx
sub dword [ebp - 0x8e6], ecx
sub dword [ebp - 0x8d8], ecx
sub dword [ebp - 0x8d4], ecx
sub dword [ebp - 0x8d0], ecx
sub dword [ebp - 0x8cc], ecx
sub dword [ebp - 0x8c8], ecx
sub dword [ebp - 0x8c4], ecx
sub dword [ebp - 0x8c0], ecx
sub dword [ebp - 0x8bc], ecx
mov eax, 4
sub dword [ebp - 0x8b8], ecx
sub dword [ebp - 0x8b4], ecx
sub dword [ebp - 0x8b0], ecx
sub dword [ebp - 0x8ac], ecx
movsx ecx, byte [ebp + eax - 0xd00]
add esi, ecx
inc eax
cmp eax, 0xc30
jb 0x500d99
xor eax, eax
mov dword [ebp - 0xd00], esi
lea esi, [ebp + eax - 0xd00]
lea ecx, [ebp - 0xd1]
sub ecx, eax
mov dl, byte [esi]
add eax, 2
mov bl, byte [ecx]
mov byte [esi], bl
cmp eax, 0x616
mov byte [ecx], dl
jb 0x500db3
mov eax, dword [ebp + 0x10]
cmp eax, 1
je 0x500def
cmp eax, 2
je 0x500e8d
mov eax, 0xe
jmp 0x500e84
test byte [ebp + 0xc], 1
jne 0x500e0f
push 0
mov esi, dword [ebp + 8]
push esi
call sub.MSVCRT.dll__access
add esp, 8
cmp eax, 0xffffffff
je 0x500e12
mov eax, 0x29
jmp 0x500e84
mov esi, dword [ebp + 8]
cmp dword [ebp + 0x18], 8
jl 0x500e1f
mov eax, 2
jmp 0x500e84
push 0
push esi
call fcn.00500fb1
add esp, 8
push dword [ebp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll__lcreat]
cmp eax, 0xffffffff
mov ebx, eax
jne 0x500e42
mov eax, 9
jmp 0x500e84
mov edi, 0xc30
lea eax, [ebp - 0xd00]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll__lwrite]
cmp eax, edi
je 0x500e61
mov eax, 5
jmp 0x500e84
push ebx
call dword [sym.imp.KERNEL32.dll__lclose]
test eax, eax
je 0x500e73
mov eax, 6
jmp 0x500e84
push dword [ebp + 0x18]
push esi
call fcn.00500fb1
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
xor edi, edi
mov esi, dword [ebp + 8]
mov al, byte [edi + esi]
test al, al
je 0x500eb1
movsx eax, al
push eax
inc edi
call sub.MSVCRT.dll_toupper
add esp, 4
add al, 7
mov byte [ebp + edi - 0x6d], al
cmp edi, 0x32
jl 0x500e92
push str.softwareclasses_vdsp
lea eax, [ebp - 0xd0]
mov byte [ebp + edi - 0x6c], 0
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
cmp byte [esi], 0x3a
jne 0x500f04
xor eax, eax
cmp byte [esi + 4], 0x3a
je 0x500eea
mov cl, byte [eax + esi + 4]
inc eax
cmp byte [eax + esi + 4], 0x3a
mov byte [ebp + eax - 0xd1], cl
jne 0x500ed7
mov byte [ebp + eax - 0xd0], 0
add eax, esi
lea ecx, [ebp - 0x6c]
add eax, 5
push eax
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
lea eax, [ebp - 4]
lea ecx, [ebp - 0xd0]
push eax
push ecx
push SysStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x500f28
mov eax, 0x2a
jmp 0x500e84
push 0xc30
lea eax, [ebp - 0xd00]
push eax
lea ecx, [ebp - 0x6c]
push 3
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x500f53
mov eax, 0x2e
jmp 0x500e84
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x500e7f
mov eax, 0x2c
jmp 0x500e84