Function at 0x40a2a4
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x10a4]
mov eax, 0x1124
call fcn.00412c70
mov eax, dword [0x415010]
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.00409c15
cmp eax, ebx
jl 0x40a606
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0xa0]
push eax
call fcn.0040a626
test eax, eax
jne 0x40a318
mov eax, 0x80020009
jmp 0x40a606
call fcn.0040a94f
lea eax, [ebp + 0xa0]
mov ecx, esi
call fcn.00409c15
cmp eax, ebx
jl 0x40a606
movzx eax, word [ebp - 0x68]
sub eax, 8
je 0x40a5c2
sub eax, 9
je 0x40a4ca
dec eax
dec eax
je 0x40a417
sub eax, 0x3ff5
jne 0x40a5f5
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.00408a10
cmp eax, 0x100
jbe 0x40a388
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040a701
jmp 0x40a38e
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov edi, dword [ebp - 0x64]
cmp edi, ebx
je 0x40a3fb
cmp byte [ebp + 0xa0], bl
lea esi, [ebp + 0xa0]
je 0x40a3e4
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [esi]
cmp cl, 0x5c
jne 0x40a3c4
cmp byte [eax], 0x30
jne 0x40a3c4
mov byte [edi], bl
push eax
inc edi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
jmp 0x40a3e0
mov byte [edi], cl
movzx eax, byte [esi]
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x40a3de
inc edi
inc esi
mov al, byte [esi]
cmp al, bl
je 0x40a3e4
mov byte [edi], al
inc edi
inc esi
cmp byte [esi], bl
jne 0x40a3a3
mov byte [edi], bl
mov byte [edi + 1], bl
push dword [ebp - 0x64]
push dword [ebp - 0x74]
push dword [ebp - 0x6c]
call fcn.0040a6ba
mov esi, eax
jmp 0x40a3fe
push 0xe
pop esi
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x64], eax
je 0x40a5e8
lea eax, [ebp - 0x64]
call fcn.0040979c
jmp 0x40a5e8
call dword [0x415018]
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.004089c6
test eax, eax
jl 0x40a482
mov esi, dword [ebp - 0x70]
cmp esi, 0x400
jg 0x40a464
push esi
call fcn.00408919
test al, al
je 0x40a464
mov eax, esi
call fcn.00412c40
mov eax, esp
jmp 0x40a46d
push esi
lea ecx, [ebp - 0x68]
call fcn.004088cf
push dword [ebp - 0x6c]
lea ecx, [ebp + 0xa0]
push esi
push ecx
push eax
call fcn.00408898
cmp eax, ebx
jne 0x40a494
lea ecx, [ebp - 0x68]
call fcn.004089f6
mov eax, 0x8007000e
jmp 0x40a606
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.004089f6
jmp 0x40a5e8
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test al, 1
mov dword [ebp - 0x70], eax
je 0x40a4e8
mov eax, 0x80004005
jmp 0x40a606
cdq
sub eax, edx
mov edi, eax
push 1
sar edi, 1
push edi
mov dword [ebp - 0x64], ebx
call fcn.00408a10
cmp eax, 0x100
jbe 0x40a50d
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040a701
jmp 0x40a513
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], ebx
jne 0x40a529
lea eax, [ebp - 0x60]
test eax, eax
je 0x40a4de
lea eax, [ebp - 0x64]
call fcn.0040979c
jmp 0x40a4de
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 0x40a598
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 0x40a57d
cmp cl, 0x39
jle 0x40a576
cmp cl, 0x40
jle 0x40a57d
cmp cl, 0x46
jle 0x40a571
cmp cl, 0x60
jle 0x40a57d
cmp cl, 0x66
jg 0x40a57d
sub cl, 0x57
jmp 0x40a579
sub cl, 0x37
jmp 0x40a579
sub cl, 0x30
mov dl, cl
jmp 0x40a57f
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 0x40a53d
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 0x40a5e8
lea eax, [ebp - 0x64]
call fcn.0040979c
jmp 0x40a5e8
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp + 0xa0]
push eax
push 1
push ebx
push dword [ebp - 0x74]
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
cmp esi, ebx
je 0x40a5f5
mov eax, esi
call fcn.0040a940
jmp 0x40a606
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x78]
call fcn.00409c15
cmp eax, ebx
jl 0x40a606
xor eax, eax
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x10a0]
xor ecx, ebp
call fcn.0040fdc4
add ebp, 0x10a4
leave
ret 8