Function at 0x40ac83
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x10a4]
mov eax, 0x1124
call fcn.00416a90
mov eax, dword [0x419010]
xor eax, ebp
mov dword [ebp + 0x10a0], eax
mov eax, dword [ebp + 0x10ac]
push ebx
push esi
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x10b0]
push edi
mov esi, ecx
mov edi, edx
mov dword [ebp - 0x80], eax
xor ebx, ebx
lea eax, [ebp + 0xa0]
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], ebx
call fcn.0040a63f
cmp eax, ebx
jl 0x40afd1
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0xa0]
push eax
call fcn.0040aff1
test eax, eax
jne 0x40acf7
mov eax, 0x80020009
jmp 0x40afd1
call fcn.0040b2f8
lea eax, [ebp + 0xa0]
mov ecx, esi
call fcn.0040a63f
cmp eax, ebx
jl 0x40afd1
movzx eax, word [ebp - 0x68]
sub eax, 8
je 0x40afa1
sub eax, 9
je 0x40aea9
dec eax
dec eax
je 0x40adf6
sub eax, 0x3ff5
jne 0x40afc0
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
inc eax
push 1
push eax
mov dword [ebp - 0x64], ebx
call fcn.0040a18a
cmp eax, 0x100
jbe 0x40ad67
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040a168
jmp 0x40ad6d
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov edi, dword [ebp - 0x64]
cmp edi, ebx
je 0x40adda
cmp byte [ebp + 0xa0], bl
lea esi, [ebp + 0xa0]
je 0x40adc3
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [esi]
cmp cl, 0x5c
jne 0x40ada3
cmp byte [eax], 0x30
jne 0x40ada3
mov byte [edi], bl
push eax
inc edi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
jmp 0x40adbf
mov byte [edi], cl
movzx eax, byte [esi]
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x40adbd
inc edi
inc esi
mov al, byte [esi]
cmp al, bl
je 0x40adc3
mov byte [edi], al
inc edi
inc esi
cmp byte [esi], bl
jne 0x40ad82
mov byte [edi], bl
mov byte [edi + 1], bl
push dword [ebp - 0x64]
push dword [ebp - 0x74]
push dword [ebp - 0x6c]
call fcn.0040b085
mov esi, eax
jmp 0x40addd
push 0xe
pop esi
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x64], eax
je 0x40afb3
lea eax, [ebp - 0x64]
call fcn.0040a15e
jmp 0x40afb3
call dword [0x419018]
mov dword [ebp - 0x6c], eax
lea eax, [ebp + 0xa0]
push eax
mov dword [ebp - 0x68], ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push 2
push eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x70]
push eax
call fcn.00409b44
test eax, eax
jl 0x40ae61
mov esi, dword [ebp - 0x70]
cmp esi, 0x400
jg 0x40ae43
push esi
call fcn.00409b74
test al, al
je 0x40ae43
mov eax, esi
call fcn.00416a60
mov eax, esp
jmp 0x40ae4c
push esi
lea ecx, [ebp - 0x68]
call fcn.00409c0e
push dword [ebp - 0x6c]
lea ecx, [ebp + 0xa0]
push esi
push ecx
push eax
call fcn.004092a8
cmp eax, ebx
jne 0x40ae73
lea ecx, [ebp - 0x68]
call fcn.00409088
mov eax, 0x8007000e
jmp 0x40afd1
lea ecx, [ebp - 0x7c]
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov eax, dword [ebp - 0x7c]
push 4
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x6c]
push eax
push 4
push ebx
push dword [ebp - 0x74]
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [ebp - 0x68]
mov esi, eax
call fcn.00409088
jmp 0x40afb3
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test al, 1
mov dword [ebp - 0x70], eax
je 0x40aec7
mov eax, 0x80004005
jmp 0x40afd1
cdq
sub eax, edx
mov edi, eax
push 1
sar edi, 1
push edi
mov dword [ebp - 0x64], ebx
call fcn.0040a18a
cmp eax, 0x100
jbe 0x40aeec
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040a168
jmp 0x40aef2
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], ebx
jne 0x40af08
lea eax, [ebp - 0x60]
test eax, eax
je 0x40aebd
lea eax, [ebp - 0x64]
call fcn.0040a15e
jmp 0x40aebd
push edi
push ebx
push dword [ebp - 0x64]
call sub.MSVCR80.dll_memset
add esp, 0xc
xor esi, esi
cmp dword [ebp - 0x70], ebx
jle 0x40af77
mov cl, byte [ebp + esi + 0xa0]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x64]
cmp cl, 0x30
jl 0x40af5c
cmp cl, 0x39
jle 0x40af55
cmp cl, 0x40
jle 0x40af5c
cmp cl, 0x46
jle 0x40af50
cmp cl, 0x60
jle 0x40af5c
cmp cl, 0x66
jg 0x40af5c
sub cl, 0x57
jmp 0x40af58
sub cl, 0x37
jmp 0x40af58
sub cl, 0x30
mov dl, cl
jmp 0x40af5e
xor dl, dl
mov ebx, esi
and ebx, 1
shl ebx, 2
push 4
pop ecx
sub ecx, ebx
shl dl, cl
xor ebx, ebx
or byte [eax], dl
inc esi
cmp esi, dword [ebp - 0x70]
jl 0x40af1c
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
push edi
push dword [ebp - 0x64]
push 3
push ebx
push dword [ebp - 0x74]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x64], eax
je 0x40afb3
lea eax, [ebp - 0x64]
call fcn.0040a15e
jmp 0x40afb3
lea eax, [ebp + 0xa0]
push eax
push dword [ebp - 0x74]
push edi
call fcn.00408f0e
mov esi, eax
cmp esi, ebx
je 0x40afc0
mov eax, esi
call fcn.0040b2e9
jmp 0x40afd1
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x78]
call fcn.0040a63f
cmp eax, ebx
jl 0x40afd1
xor eax, eax
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x10a0]
xor ecx, ebp
call fcn.00413c2a
add ebp, 0x10a4
leave
ret 8