Function at 0x40ecb0
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x64
push 0xffffffffffffffff
push 0x43a520
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x44b160]
xor eax, ebp
mov dword [ebp + 0x60], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov esi, ecx
mov dword [ebp], ebx
mov dword [ebp + 0x5c], 0xf
mov dword [ebp + 0x58], ebx
mov byte [ebp + 0x48], bl
lea eax, [ebp + 0x44]
push eax
mov dword [ebp - 4], ebx
call fcn.0040c6b0
test eax, eax
jne 0x40ed1d
cmp dword [ebp + 0x5c], 0x10
jb 0x40ed16
mov ecx, dword [ebp + 0x48]
push ecx
call fcn.00425b1e
add esp, 4
xor eax, eax
jmp 0x40ed9d
cmp dword [ebp + 0x5c], 0x10
mov edx, dword [ebp + 0x48]
jae 0x40ed29
lea edx, [ebp + 0x48]
mov eax, 8
cmp dword [esi + 0x38], eax
jb 0x40ed38
mov ecx, dword [esi + 0x24]
jmp 0x40ed3b
lea ecx, [esi + 0x24]
cmp dword [esi + 0x1c], eax
jb 0x40ed45
mov eax, dword [esi + 8]
jmp 0x40ed48
lea eax, [esi + 8]
mov edi, dword [ebp + 0x58]
push edi
push edx
mov edx, dword [esi]
push 3
push ecx
push eax
push edx
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
cmp dword [esi + 0x38], 8
mov edi, eax
jb 0x40ed67
mov eax, dword [esi + 0x24]
jmp 0x40ed6a
lea eax, [esi + 0x24]
push eax
push edi
push str._wdswfsafe__UpdateRegData_set_Error_0x_08X__s
call 0x40a700
add esp, 0xc
cmp edi, ebx
jne 0x40edc2
mov dword [ebp], 1
mov edi, 0x10
cmp dword [ebp + 0x5c], edi
jb 0x40ed9a
mov edx, dword [ebp + 0x48]
push edx
call fcn.00425b1e
add esp, 4
mov eax, dword [ebp]
lea esp, [ebp - 0x8c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x60]
xor ecx, ebp
call fcn.00425cbc
add ebp, 0x64
mov esp, ebp
pop ebp
ret
cmp edi, 5
jne 0x40ed84
mov dword [ebp + 8], ebx
cmp dword [esi + 0x38], 8
mov byte [ebp - 4], 1
jb 0x40edd9
mov esi, dword [esi + 0x24]
jmp 0x40eddc
add esi, 0x24
cmp esi, ebx
je 0x40ed84
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push ebx
inc eax
cdq
push 2
push edx
push eax
call fcn.00426a40
mov edi, eax
add eax, 0x80000000
adc edx, ebx
cmp edx, ebx
ja 0x40ed84
jb 0x40ee0b
cmp eax, 0xffffffff
ja 0x40ed84
cmp edi, 0x400
jg 0x40ee2b
push edi
call 0x409870
add esp, 4
test al, al
je 0x40ee2b
mov eax, edi
call fcn.00426560
mov eax, esp
jmp 0x40ee34
push edi
lea ecx, [ebp + 8]
call 0x409930
push 3
push edi
push esi
push eax
call 0x409630
cmp eax, ebx
je 0x40f09f
push eax
lea ecx, [ebp + 0xc]
call fcn.0040c820
mov eax, 1
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 2
mov word [ebp - 0x7c], ax
call fcn.0041e250
mov ecx, dword [str.regeditw]
push ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.0040c820
mov edx, dword [0x44a028]
push edx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.0040c820
lea eax, [ebp - 0x28]
push eax
push 0x65
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 5
call fcn.00412380
mov edi, 0x10
cmp dword [ebp - 0x2c], edi
jb 0x40eeb6
mov edx, dword [ebp - 0x40]
push edx
call fcn.00425b1e
add esp, 4
mov esi, 0xf
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x40], bl
mov byte [ebp - 4], 3
cmp dword [ebp - 0x10], edi
jb 0x40eed9
mov eax, dword [ebp - 0x24]
push eax
call fcn.00425b1e
add esp, 4
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x24], edi
jae 0x40eee4
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x60]
call fcn.0040c820
mov ecx, dword [str.value]
push ecx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 6
call fcn.0040c820
lea edx, [ebp - 0x60]
push edx
push 0x65
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 7
call fcn.00412380
cmp dword [ebp - 0x2c], edi
jb 0x40ef27
mov ecx, dword [ebp - 0x40]
push ecx
call fcn.00425b1e
add esp, 4
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x40], bl
mov byte [ebp - 4], 3
cmp dword [ebp - 0x48], edi
jb 0x40ef45
mov edx, dword [ebp - 0x5c]
push edx
call fcn.00425b1e
add esp, 4
mov eax, dword [str.type]
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x5c], bl
call fcn.0040c820
push 4
lea ecx, [ebp + 4]
push ecx
push 7
lea edx, [ebp - 0x28]
push edx
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 8
mov dword [ebp + 4], 3
call fcn.00412440
mov byte [ebp - 4], 3
cmp dword [ebp - 0x10], edi
jb 0x40ef90
mov eax, dword [ebp - 0x24]
push eax
call fcn.00425b1e
add esp, 4
mov ecx, dword [str.cbdata]
push ecx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x24], bl
call fcn.0040c820
mov edx, dword [ebp + 0x58]
push 4
lea eax, [ebp + 4]
push eax
push 7
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 9
mov dword [ebp + 4], edx
call fcn.00412440
mov byte [ebp - 4], 3
cmp dword [ebp - 0x48], edi
jb 0x40efdb
mov edx, dword [ebp - 0x5c]
push edx
call fcn.00425b1e
add esp, 4
mov eax, dword [str.data]
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x5c], bl
call fcn.0040c820
mov eax, dword [ebp + 0x48]
mov byte [ebp - 4], 0xa
cmp dword [ebp + 0x5c], edi
jae 0x40f001
lea eax, [ebp + 0x48]
mov ecx, dword [ebp + 0x58]
push ecx
push eax
push 0x64
lea edx, [ebp - 0x28]
push edx
lea ecx, [ebp - 0x7c]
call fcn.00412440
cmp dword [ebp - 0x10], edi
jb 0x40f025
mov eax, dword [ebp - 0x24]
push eax
call fcn.00425b1e
add esp, 4
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x3c], ebx
mov byte [ebp + 0x2c], bl
push 4
push 0x43d908
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 0xb
call fcn.0040c060
lea ecx, [ebp + 0x28]
push ecx
lea ecx, [ebp - 0x7c]
call fcn.0040ea90
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x40], edi
jae 0x40f058
lea eax, [ebp + 0x2c]
mov edx, dword [ebp + 0x3c]
push 0x4d47534d
push edx
push eax
call 0x409590
add esp, 0xc
cmp dword [ebp + 0x40], edi
jb 0x40f07b
mov eax, dword [ebp + 0x2c]
push eax
call fcn.00425b1e
add esp, 4
lea ecx, [ebp - 0x78]
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x3c], ebx
mov byte [ebp + 0x2c], bl
call fcn.0040e3b0
cmp dword [ebp + 0x24], edi
jb 0x40f0a4
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00425b1e
add esp, 4
jmp 0x40f0a4
mov edi, 0x10
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x40ed89
jmp 0x40f0b4
mov eax, dword [ebp + 8]
mov esi, dword [eax]
push eax
mov dword [ebp + 8], esi
call fcn.00425e63
add esp, 4
cmp esi, ebx
jne 0x40f0b1
jmp 0x40ed89