Function at 0x1203a4
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2d
push 0
push 0
dec ecx
jne 0x1203ac
push ebx
push esi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x120e57
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00014314
mov byte [ebp - 0x3d], 0
lea edx, [ebp - 0x5c]
mov eax, 0x120e68
call fcn.00031d88
mov eax, dword [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
call fcn.0002b2e0
mov eax, dword [ebp - 0x64]
lea edx, [ebp - 0x60]
call fcn.0002b220
mov edx, dword [ebp - 0x60]
lea eax, [ebp - 0x3c]
pop ecx
call fcn.00013f18
lea eax, [ebp - 0x70]
call fcn.0002b6e4
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0x6c]
call fcn.0002b220
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x74]
call fcn.00027f5c
mov edx, dword [ebp - 0x74]
pop eax
call fcn.00013ed4
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x68]
call fcn.0002b220
mov eax, dword [ebp - 0x68]
push eax
lea eax, [ebp - 0x78]
call fcn.00029558
mov ecx, dword [ebp - 0x78]
lea eax, [ebp - 0x1c]
pop edx
call fcn.00013f18
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, 0x40
call fcn.00019220
mov dword [ebp - 0x30], eax
xor edx, edx
push ebp
push 0x120cea
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x58]
push eax
mov eax, dword [0x2a9118]
mov eax, dword [eax]
add eax, 0xf003f
push eax
push 0
lea eax, [ebp - 0x7c]
call fcn.00025330
mov eax, dword [ebp - 0x7c]
call fcn.00014090
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x1204f2
push ebp
lea edx, [ebp - 0x84]
mov eax, 0x120e78
call fcn.00031d88
lea eax, [ebp - 0x84]
push eax
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
mov edx, dword [ebp - 0x88]
pop eax
call fcn.00013ed4
mov edx, dword [ebp - 0x84]
lea eax, [ebp - 0x80]
call fcn.000144c4
mov eax, dword [ebp - 0x80]
call fcn.00120314
pop ecx
jmp 0x120cc0
call fcn.00030064
xor edx, edx
push ebp
push 0x120cb9
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x3c]
call fcn.0001ab4c
lea eax, [ebp - 0x98]
lea edx, [ebp - 0x2c]
call fcn.0001b084
mov bl, 1
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
call fcn.00030fa0
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x400
jl 0x120547
cmp dword [ebp - 0x18], 0xa00000
jle 0x1205ce
push ebp
lea edx, [ebp - 0xa4]
mov eax, 0x120e84
call fcn.00031d88
push dword [ebp - 0xa4]
mov eax, dword [ebp - 0x18]
cdq
push edx
push eax
lea eax, [ebp - 0xa8]
call fcn.0002b0cc
push dword [ebp - 0xa8]
lea edx, [ebp - 0xac]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0xac]
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
push dword [ebp - 0xb0]
lea eax, [ebp - 0xa0]
mov edx, 4
call fcn.00013f8c
mov edx, dword [ebp - 0xa0]
lea eax, [ebp - 0x9c]
call fcn.000144c4
mov eax, dword [ebp - 0x9c]
call fcn.00120314
pop ecx
xor ebx, ebx
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
call fcn.00030fa0
mov esi, eax
cmp esi, 0x400
jl 0x1205ef
cmp esi, 0xa00000
jle 0x120675
push ebp
lea edx, [ebp - 0xbc]
mov eax, 0x120e94
call fcn.00031d88
push dword [ebp - 0xbc]
mov eax, esi
cdq
push edx
push eax
lea eax, [ebp - 0xc0]
call fcn.0002b0cc
push dword [ebp - 0xc0]
lea edx, [ebp - 0xc4]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0xc4]
lea edx, [ebp - 0xc8]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
push dword [ebp - 0xc8]
lea eax, [ebp - 0xb8]
mov edx, 4
call fcn.00013f8c
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0xb4]
call fcn.000144c4
mov eax, dword [ebp - 0xb4]
call fcn.00120314
pop ecx
xor ebx, ebx
test bl, bl
je 0x120680
cmp esi, dword [ebp - 0x18]
je 0x120680
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x20]
call fcn.00029558
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x20]
call fcn.00014090
mov ecx, eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x30]
call fcn.000189b4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x120767
cmp dword [ebp - 0x44], 1
jne 0x120767
cmp dword [ebp - 0x28], 0
jbe 0x120767
mov eax, dword [ebp - 0x30]
call fcn.00018994
cmp eax, dword [ebp - 0x28]
jb 0x120767
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 0x30]
call fcn.0001899c
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x54]
call fcn.00013fdc
jne 0x120767
push ebp
lea edx, [ebp - 0xd0]
mov eax, 0x120ea0
call fcn.00031d88
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0xcc]
call fcn.000144c4
mov eax, dword [ebp - 0xcc]
call fcn.001201f4
pop ecx
mov eax, dword [ebp - 0x1c]
call fcn.000317fc
test al, al
jne 0x120763
push ebp
lea edx, [ebp - 0xd8]
mov eax, 0x120eb0
call fcn.00031d88
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0xd4]
call fcn.000144c4
mov eax, dword [ebp - 0xd4]
call fcn.00120284
pop ecx
jmp 0x120767
mov byte [ebp - 0x3d], 1
cmp byte [ebp - 0x3d], 0
je 0x120775
test bl, bl
jne 0x120ca6
cmp dword [ebp - 0x18], 0x400
jl 0x12078b
cmp dword [ebp - 0x18], 0xa00000
jle 0x120815
push ebp
lea edx, [ebp - 0xe4]
mov eax, 0x120ecc
call fcn.00031d88
push dword [ebp - 0xe4]
mov eax, dword [ebp - 0x18]
cdq
push edx
push eax
lea eax, [ebp - 0xe8]
call fcn.0002b0cc
push dword [ebp - 0xe8]
lea edx, [ebp - 0xec]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0xec]
lea edx, [ebp - 0xf0]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
push dword [ebp - 0xf0]
lea eax, [ebp - 0xe0]
mov edx, 4
call fcn.00013f8c
mov edx, dword [ebp - 0xe0]
lea eax, [ebp - 0xdc]
call fcn.000144c4
mov eax, dword [ebp - 0xdc]
call fcn.00120314
pop ecx
jmp 0x120ca6
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
call fcn.0002aea4
mov dword [ebp - 0x38], 0xffffffff
xor edx, edx
push ebp
push 0x120c9f
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0xf4]
mov edx, dword [ebp - 0x3c]
call fcn.000144c4
mov eax, dword [ebp - 0xf4]
xor edx, edx
call fcn.0003143c
mov dword [ebp - 0x38], eax
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x38], 0xffffffff
jne 0x1208b5
push ebp
lea edx, [ebp - 0xfc]
mov eax, 0x120ed8
call fcn.00031d88
lea eax, [ebp - 0xfc]
push eax
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
mov edx, dword [ebp - 0x100]
pop eax
call fcn.00013ed4
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0xf8]
call fcn.000144c4
mov eax, dword [ebp - 0xf8]
call fcn.00120314
pop ecx
jmp 0x120c78
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
call fcn.000313c8
cdq
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
cdq
cmp edx, dword [ebp - 0xc]
jne 0x1208de
cmp eax, dword [ebp - 0x10]
je 0x12099b
push ebp
lea edx, [ebp - 0x10c]
mov eax, 0x120ee4
call fcn.00031d88
push dword [ebp - 0x10c]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
lea eax, [ebp - 0x110]
call fcn.0002b0cc
push dword [ebp - 0x110]
lea edx, [ebp - 0x114]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0x114]
mov eax, dword [ebp - 0x18]
cdq
push edx
push eax
lea eax, [ebp - 0x118]
call fcn.0002b0cc
push dword [ebp - 0x118]
lea edx, [ebp - 0x11c]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0x11c]
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
push dword [ebp - 0x120]
lea eax, [ebp - 0x108]
mov edx, 6
call fcn.00013f8c
mov edx, dword [ebp - 0x108]
lea eax, [ebp - 0x104]
call fcn.000144c4
mov eax, dword [ebp - 0x104]
call fcn.00120314
pop ecx
jmp 0x120c78
mov ebx, dword [ebp - 0x24]
xor eax, eax
xor esi, esi
jmp 0x1209bb
mov eax, 0x2a8850
mov ecx, 0xc
mov edx, ebx
call fcn.001201b4
test al, al
jne 0x1209bb
inc ebx
inc esi
test al, al
jne 0x1209c9
mov edx, dword [ebp - 0x18]
sub edx, 0xc
cmp esi, edx
jl 0x1209a4
test al, al
jne 0x1209de
push ebp
mov eax, 0x120ef4
call fcn.00120314
pop ecx
jmp 0x120c78
lea eax, [ebp - 0x124]
call fcn.0002782c
mov eax, dword [ebp - 0x124]
mov al, byte [eax]
mov byte [0x2a885e], al
lea eax, [ebp - 0x128]
call fcn.0002782c
mov eax, dword [ebp - 0x128]
mov al, byte [eax + 1]
mov byte [0x2a8860], al
lea eax, [ebp - 0x12c]
call fcn.0002782c
mov eax, dword [ebp - 0x12c]
mov al, byte [eax + 2]
mov byte [0x2a8862], al
mov edx, ebx
mov eax, 0x2a885c
mov ecx, 0xc
call fcn.00012840
mov dword [ebp - 0x14], 0xffffffff
xor eax, eax
push ebp
push 0x120c71
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x130]
mov edx, dword [ebp - 0x1c]
call fcn.000144c4
mov eax, dword [ebp - 0x130]
mov edx, 2
call fcn.000313a0
mov dword [ebp - 0x14], eax
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x14], 0xffffffff
jne 0x120ad1
push ebp
lea edx, [ebp - 0x138]
mov eax, 0x120f08
call fcn.00031d88
lea eax, [ebp - 0x138]
push eax
lea edx, [ebp - 0x13c]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
mov edx, dword [ebp - 0x13c]
pop eax
call fcn.00013ed4
mov edx, dword [ebp - 0x138]
lea eax, [ebp - 0x134]
call fcn.000144c4
mov eax, dword [ebp - 0x134]
call fcn.00120314
pop ecx
jmp 0x120c55
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.000313f4
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
cdq
cmp edx, dword [ebp - 0x4c]
jne 0x120afa
cmp eax, dword [ebp - 0x50]
je 0x120bb7
push ebp
lea edx, [ebp - 0x148]
mov eax, 0x120f14
call fcn.00031d88
push dword [ebp - 0x148]
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
lea eax, [ebp - 0x14c]
call fcn.0002b0cc
push dword [ebp - 0x14c]
lea edx, [ebp - 0x150]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cdq
push edx
push eax
lea eax, [ebp - 0x154]
call fcn.0002b0cc
push dword [ebp - 0x154]
lea edx, [ebp - 0x158]
mov eax, 0x120e90
call fcn.00031d88
push dword [ebp - 0x158]
lea edx, [ebp - 0x15c]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
push dword [ebp - 0x15c]
lea eax, [ebp - 0x144]
mov edx, 6
call fcn.00013f8c
mov edx, dword [ebp - 0x144]
lea eax, [ebp - 0x140]
call fcn.000144c4
mov eax, dword [ebp - 0x140]
call fcn.00120314
pop ecx
jmp 0x120c55
push ebp
mov eax, 0x120f24
call fcn.001201f4
pop ecx
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
call fcn.00013cd4
mov eax, dword [ebp - 0x2c]
call fcn.00013ecc
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00014090
push eax
push 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.00014090
push eax
mov eax, dword [ebp - 0x58]
push eax
call sub.advapi32.dll_RegSetValueExA
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x120c55
push ebp
lea edx, [ebp - 0x164]
mov eax, 0x120f44
call fcn.00031d88
lea eax, [ebp - 0x164]
push eax
lea edx, [ebp - 0x168]
mov eax, dword [ebp - 0x34]
call fcn.0002b100
mov edx, dword [ebp - 0x168]
pop eax
call fcn.00013ed4
mov edx, dword [ebp - 0x164]
lea eax, [ebp - 0x160]
call fcn.000144c4
mov eax, dword [ebp - 0x160]
call fcn.00120314
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x120c78
cmp dword [ebp - 0x14], 0xffffffff
je 0x120c70
mov eax, dword [ebp - 0x14]
call fcn.00031434
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x120ca6
cmp dword [ebp - 0x38], 0xffffffff
je 0x120c93
mov eax, dword [ebp - 0x38]
call fcn.00031434
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
call fcn.0002aecc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x120cc0
call fcn.000300cc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x120cf1
cmp dword [ebp - 0x58], 0
je 0x120cdc
mov eax, dword [ebp - 0x58]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor eax, eax
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x30]
call fcn.00019230
ret