Function at 0x40582a
Capabilities:
Set registry value

Disassembly:
push ebp
push ebx
push edi
mov edx, 0x11
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x405832
call fcn.00485db0
mov edx, dword [esp + 0x58]
lea ecx, [esp]
call fcn.0043c000
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 4]
call fcn.0043c000
mov edx, dword [esp + 0x60]
lea ecx, [esp + 8]
call fcn.0043c000
mov dword [esp + 0x10], 0x20006
cmp dword [esp + 0x68], 0
je 0x405887
mov ebx, dword [esp + 0x10]
or ebx, 0x100
mov dword [esp + 0x10], ebx
push edx
call fcn.00485c40
pop edx
push eax
push edx
call fcn.00485c40
pop edx
push eax
push 1
push dword [esp + 0xc]
call fcn.00483710
call fcn.00485e10
mov edx, 0x542028
call fcn.0043c330
mov ecx, eax
call fcn.0043c340
je 0x4058ed
push edx
call fcn.00485c40
pop edx
push eax
push edx
call fcn.00485c40
pop edx
push eax
push dword [esp + 8]
call fcn.00483780
mov ebx, eax
dec ebx
push ebx
push dword [esp + 0xc]
call fcn.004837b0
lea eax, [esp + 4]
push eax
call fcn.00485ce0
push edx
call fcn.00485c40
pop edx
push eax
push edx
call fcn.00485c40
pop edx
push eax
push 1
push dword [esp + 0xc]
call fcn.004837b0
call fcn.00485e10
mov edx, 0x542028
call fcn.0043c330
mov ecx, eax
call fcn.0043c340
je 0x405953
push edx
call fcn.00485c40
pop edx
push eax
push edx
call fcn.00485c40
pop edx
push eax
push dword [esp + 8]
call fcn.00483780
mov ebx, eax
dec ebx
push ebx
push dword [esp + 0xc]
call fcn.00483710
lea eax, [esp + 4]
push eax
call fcn.00485ce0
mov ebx, dword [esp + 0x6c]
and ebx, ebx
je 0x4059d0
mov ebx, dword [esp + 0x64]
cmp ebx, 3
je 0x405979
push 0x555b04
push 0x24
push dword [esp + 0x74]
call fcn.00484b00
jmp 0x4059d0
mov ebp, dword [esp + 0x6c]
mov dword [ebp], 0
mov ebp, dword [esp + 0x6c]
mov dword [ebp + 8], 0
mov ebp, dword [esp + 0x6c]
mov edx, 0x54003e
lea ecx, [ebp + 0xc]
call fcn.0043c008
mov ebp, dword [esp + 0x6c]
mov dword [ebp + 0x10], 0
mov ebp, dword [esp + 0x6c]
lea eax, [ebp + 0x14]
mov dword [eax + 4], 0
mov dword [eax], 0
mov ebp, dword [esp + 0x6c]
mov edx, 0x54003e
lea ecx, [ebp + 0x20]
call fcn.0043c008
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x18]
push eax
push 0
push dword [esp + 0x1c]
push 0
xor eax, eax
push eax
push 0
push dword [esp + 0x1c]
push dword [esp + 0x74]
call sub.ADVAPI32.dll_RegCreateKeyExW
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x405a50
mov ebx, dword [esp + 0x6c]
and ebx, ebx
je 0x405a39
push dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
pop dword [ebp + 8]
push edx
call fcn.00485c40
pop edx
push eax
push dword [esp + 0x10]
call fcn.004069de
mov ebp, dword [esp + 0x70]
lea eax, [ebp + 0xc]
push eax
call fcn.00485ce0
cmp dword [esp + 0x14], 0
je 0x405a49
push dword [esp + 0x14]
call sub.ADVAPI32.dll_RegCloseKey
xor eax, eax
jmp 0x405e38
push dword [esp + 0x64]
mov ebx, 3
cmp ebx, dword [esp]
jne 0x405b5b
mov ebx, dword [esp + 0x70]
and ebx, ebx
jne 0x405aa1
mov ebx, dword [esp + 0x70]
and ebx, ebx
je 0x405a8e
mov ebp, dword [esp + 0x70]
mov dword [ebp + 8], 0xfffffffd
mov ebp, dword [esp + 0x70]
mov edx, 0x5530c0
lea ecx, [ebp + 0xc]
call fcn.0043c008
push dword [esp + 0x18]
call sub.ADVAPI32.dll_RegCloseKey
xor eax, eax
add esp, 4
jmp 0x405e38
mov ebp, dword [esp + 0x70]
mov eax, dword [ebp + 4]
cdq
push edx
push eax
pop dword [esp + 0x24]
pop dword [esp + 0x24]
mov ebp, dword [esp + 0x70]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
and ebx, ebx
jne 0x405afd
mov ebx, dword [esp + 0x70]
and ebx, ebx
je 0x405aea
mov ebp, dword [esp + 0x70]
mov dword [ebp + 8], 0xfffffffe
mov ebp, dword [esp + 0x70]
mov edx, str.Error:_No_Pointer_to_BINARY_defined_
lea ecx, [ebp + 0xc]
call fcn.0043c008
push dword [esp + 0x18]
call sub.ADVAPI32.dll_RegCloseKey
xor eax, eax
add esp, 4
jmp 0x405e38
push dword [esp + 0x24]
push dword [esp + 0x24]
pop ebx
pop edi
cmp ebx, 0
jne 0x405b11
cmp edi, 0
je 0x405b15
xor eax, eax
jmp 0x405b1a
mov eax, 1
or eax, eax
je 0x405b32
push dword [esp + 0x1c]
call fcn.00484b10
cdq
push edx
push eax
pop dword [esp + 0x24]
pop dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push eax
push dword [esp + 0x20]
push 3
push 0
push dword [esp + 0x18]
push dword [esp + 0x2c]
call sub.ADVAPI32.dll_RegSetValueExW
mov dword [esp + 0x10], eax
jmp 0x405dea
mov ebx, 4
cmp ebx, dword [esp]
jne 0x405b9c
push dword [esp + 0xc]
call fcn.00483830
mov dword [esp + 0x3c], eax
push 4
lea eax, [esp + 0x40]
push eax
push 4
push 0
push dword [esp + 0x18]
push dword [esp + 0x2c]
call sub.ADVAPI32.dll_RegSetValueExW
mov dword [esp + 0x10], eax
jmp 0x405dea
mov ebx, 0xb
cmp ebx, dword [esp]
jne 0x405be3
push dword [esp + 0xc]
call fcn.00483830
push edx
push eax
pop dword [esp + 0x44]
pop dword [esp + 0x44]
push 8
lea eax, [esp + 0x44]
push eax
push 0xb
push 0
push dword [esp + 0x18]
push dword [esp + 0x2c]
call sub.ADVAPI32.dll_RegSetValueExW
mov dword [esp + 0x10], eax
jmp 0x405dea
mov ebx, 2
cmp ebx, dword [esp]
je 0x405bf7
mov ebx, 1
cmp ebx, dword [esp]
jne 0x405c2a
push dword [esp + 0xc]
call fcn.00483970
mov ebx, eax
add ebx, 2
push ebx
mov eax, dword [esp + 0x10]
push eax
push dword [esp + 0x70]
push 0
push dword [esp + 0x18]
push dword [esp + 0x2c]
call sub.ADVAPI32.dll_RegSetValueExW
mov dword [esp + 0x10], eax
jmp 0x405dea
mov ebx, 7
cmp ebx, dword [esp]
jne 0x405dea
mov eax, 0x540588
push eax
push dword [esp + 0x10]
call fcn.004839a0
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0
jmp 0x405c55
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x30]
jl 0x405cc3
push edx
call fcn.00485c40
pop edx
push eax
push edx
call fcn.00485c40
pop edx
push eax
mov eax, 0x540588
push eax
mov ebx, dword [esp + 0x3c]
inc ebx
push ebx
push dword [esp + 0x1c]
call fcn.00483a30
lea eax, [esp + 0x38]
push eax
call fcn.00485ce0
push dword [esp + 0x24]
push dword [esp + 0x24]
push 0x19
push dword [esp + 0x40]
call fcn.00483b60
cdq
add dword [esp], eax
adc dword [esp + 4], edx
add dword [esp], 2
adc dword [esp + 4], 0
pop dword [esp + 0x24]
pop dword [esp + 0x24]
inc dword [esp + 0x30]
jno 0x405c55
push dword [esp + 0x24]
push dword [esp + 0x24]
pop ebx
pop edi
cmp ebx, 0
jne 0x405cdb
cmp edi, 0
jne 0x405cdb
xor eax, eax
jmp 0x405ce0
mov eax, 1
or eax, eax
je 0x405dea
mov eax, dword [esp + 0x20]
push eax
call fcn.00484b70
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0
je 0x405db6
mov dword [esp + 0x30], 0
jmp 0x405d0b
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x30]
jl 0x405d81
push edx
call fcn.00485c40
pop edx
push eax
push edx
call fcn.00485c40
pop edx
push eax
mov eax, 0x540588
push eax
mov ebx, dword [esp + 0x3c]
inc ebx
push ebx
push dword [esp + 0x1c]
call fcn.00483a30
lea eax, [esp + 0x38]
push eax
call fcn.00485ce0
push 0x19
push 0xffffffff
push dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x44]
push ebx
call fcn.00484b90
mov ebx, dword [esp + 0x38]
push 0x19
push dword [esp + 0x38]
call fcn.00483b60
add ebx, eax
add ebx, 2
mov dword [esp + 0x38], ebx
inc dword [esp + 0x30]
jno 0x405d0b
sub esp, 4
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x24]
push dword [esp + 0x74]
push 0
push dword [esp + 0x1c]
push dword [esp + 0x30]
call dword [0x628df0]
add esp, 4
mov dword [esp + 0x10], eax
push dword [esp + 0x1c]
call fcn.00484ce0
jmp 0x405dea
mov ebx, dword [esp + 0x70]
and ebx, ebx
je 0x405dda
mov ebp, dword [esp + 0x70]
mov dword [ebp + 8], 0xffffffff
mov ebp, dword [esp + 0x70]
mov edx, str.Error:_Cant_allocate_memory
lea ecx, [ebp + 0xc]
call fcn.0043c008
push dword [esp + 0x18]
call sub.ADVAPI32.dll_RegCloseKey
xor eax, eax
add esp, 4
jmp 0x405e38
pop eax
push dword [esp + 0x14]
call sub.ADVAPI32.dll_RegCloseKey
cmp dword [esp + 0xc], 0
je 0x405e30
mov ebx, dword [esp + 0x6c]
and ebx, ebx
je 0x405e2c
push dword [esp + 0xc]
mov ebp, dword [esp + 0x70]
pop dword [ebp + 8]
push edx
call fcn.00485c40
pop edx
push eax
push dword [esp + 0x10]
call fcn.004069de
mov ebp, dword [esp + 0x70]
lea eax, [ebp + 0xc]
push eax
call fcn.00485ce0
xor eax, eax
jmp 0x405e38
mov eax, dword [esp + 0x28]
jmp 0x405e38
push dword [esp + 0x30]
call fcn.00485e40
push dword [esp]
call fcn.00485e40
push dword [esp + 8]
call fcn.00485e40
push dword [esp + 4]
call fcn.00485e40
add esp, 0x44
pop edi
pop ebx
pop ebp
ret 0x1c