Function at 0x40ab40
Capabilities:
Set registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xffffffe0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51ad03
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
add esp, 0xfffffc10
mov dword [ebp - 4], 2
mov ecx, 0x55be7a
call fcn.0051a674
lea eax, [ebx + 0x20]
push eax
lea ecx, [ebp - 0x17c]
call fcn.0040f0c0
mov byte [ebp - 4], 3
lea ecx, [ebx + 0x20]
push ecx
lea ecx, [ebp - 0x164]
call fcn.0040f0c0
mov byte [ebp - 4], 4
lea edx, [ebx + 0x20]
push edx
lea ecx, [ebp - 0x14c]
call fcn.0040f0c0
mov byte [ebp - 4], 5
mov dword [ebp - 0x24], 0
xor eax, eax
mov byte [ebp - 0x51], al
xor ecx, ecx
mov byte [ebp - 0x25], cl
xor edx, edx
mov byte [ebp - 0x26], dl
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x24]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
movzx edx, byte [ebp - 0x51]
push edx
movzx eax, byte [ebp - 0x25]
push eax
movzx ecx, byte [ebp - 0x26]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00412be0
mov ecx, eax
call fcn.0040cc20
push eax
lea ecx, [ebp - 0x17c]
call fcn.0040f080
mov ecx, eax
call fcn.00405220
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x40ac89
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x14c]
call fcn.00405270
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x164]
call fcn.00405270
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x17c]
call fcn.00405270
mov byte [ebp - 4], 1
lea ecx, [ebx + 8]
call fcn.00405270
mov byte [ebp - 4], 0
lea ecx, [ebx + 0x20]
call fcn.00405270
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x38]
call fcn.00405270
jmp 0x40b5b0
xor edx, edx
mov byte [ebp - 0x27], dl
xor eax, eax
mov byte [ebp - 0x28], al
xor ecx, ecx
mov byte [ebp - 0x29], cl
movzx edx, byte [ebp - 0x27]
push edx
movzx eax, byte [ebp - 0x28]
push eax
movzx ecx, byte [ebp - 0x29]
push ecx
lea ecx, [ebp - 0x250]
call fcn.00412d10
mov ecx, eax
call fcn.0040cc20
mov dword [ebp - 0x9c], eax
xor edx, edx
mov byte [ebp - 0x2a], dl
xor eax, eax
mov byte [ebp - 0x2b], al
xor ecx, ecx
mov byte [ebp - 0x2c], cl
movzx edx, byte [ebp - 0x2a]
push edx
movzx eax, byte [ebp - 0x2b]
push eax
movzx ecx, byte [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x1e0]
call fcn.00412cc0
mov ecx, eax
call fcn.0040caf0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040ff80
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x88], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x8c], eax
xor ecx, ecx
mov byte [ebp - 0x2d], cl
xor edx, edx
mov byte [ebp - 0x2e], dl
xor eax, eax
mov byte [ebp - 0x2f], al
movzx ecx, byte [ebp - 0x2d]
push ecx
movzx edx, byte [ebp - 0x2e]
push edx
movzx eax, byte [ebp - 0x2f]
push eax
lea ecx, [ebp - 0x1f0]
call fcn.00412c70
mov ecx, eax
call fcn.0040caf0
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x8c]
push ecx
mov edx, dword [ebp - 0x90]
push edx
lea eax, [ebp - 0xa4]
push eax
call fcn.0040f550
add esp, 0xc
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x98], ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
lea edx, [ebp - 0x74]
push edx
call fcn.0040f600
add esp, 0xc
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xa4]
call fcn.0040fee0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xa8]
call fcn.0040fee0
lea ecx, [ebp - 0x74]
call fcn.004100e0
lea eax, [eax + eax + 2]
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0x74]
call fcn.004100c0
mov dword [ebp - 0xb0], eax
xor ecx, ecx
mov byte [ebp - 0x30], cl
xor edx, edx
mov byte [ebp - 0x31], dl
xor eax, eax
mov byte [ebp - 0x32], al
movzx ecx, byte [ebp - 0x30]
push ecx
movzx edx, byte [ebp - 0x31]
push edx
movzx eax, byte [ebp - 0x32]
push eax
lea ecx, [ebp - 0x340]
call fcn.00412da0
mov ecx, eax
call fcn.0040cdf0
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xac]
push edx
mov eax, dword [ebp - 0xb0]
push eax
push 1
push 0
mov ecx, dword [ebp - 0xb4]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor eax, eax
mov byte [ebp - 0x33], al
xor ecx, ecx
mov byte [ebp - 0x34], cl
xor edx, edx
mov byte [ebp - 0x35], dl
movzx eax, byte [ebp - 0x33]
push eax
movzx ecx, byte [ebp - 0x34]
push ecx
movzx edx, byte [ebp - 0x35]
push edx
lea ecx, [ebp - 0x200]
call fcn.00412e60
mov ecx, eax
call fcn.0040caf0
push eax
lea ecx, [ebp - 0x70]
call fcn.0040ff80
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x70]
call fcn.004100e0
lea eax, [eax + eax + 2]
mov dword [ebp - 0xbc], eax
lea ecx, [ebp - 0x70]
call fcn.004100c0
mov dword [ebp - 0xc0], eax
xor ecx, ecx
mov byte [ebp - 0x36], cl
xor edx, edx
mov byte [ebp - 0x37], dl
xor eax, eax
mov byte [ebp - 0x38], al
movzx ecx, byte [ebp - 0x36]
push ecx
movzx edx, byte [ebp - 0x37]
push edx
movzx eax, byte [ebp - 0x38]
push eax
lea ecx, [ebp - 0x380]
call fcn.00412eb0
mov ecx, eax
call fcn.0040cdf0
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
push 1
push 0
mov ecx, dword [ebp - 0xc4]
push ecx
mov edx, dword [ebp - 0xc8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea ecx, [ebx + 8]
call fcn.00405220
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
add eax, 2
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0x58]
mov dx, word [ecx]
mov word [ebp - 0x7a], dx
add dword [ebp - 0x58], 2
cmp word [ebp - 0x7a], 0
jne 0x40af28
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0xcc]
sar eax, 1
mov dword [ebp - 0xd0], eax
lea ecx, [ebx + 8]
call fcn.00405220
mov dword [ebp - 0xd4], eax
xor ecx, ecx
mov byte [ebp - 0x39], cl
xor edx, edx
mov byte [ebp - 0x3a], dl
xor eax, eax
mov byte [ebp - 0x3b], al
movzx ecx, byte [ebp - 0x39]
push ecx
movzx edx, byte [ebp - 0x3a]
push edx
movzx eax, byte [ebp - 0x3b]
push eax
lea ecx, [ebp - 0x270]
call fcn.00412f70
mov ecx, eax
call fcn.0040cc20
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0xd0]
lea eax, [edx + edx + 2]
push eax
mov ecx, dword [ebp - 0xd4]
push ecx
push 1
push 0
mov edx, dword [ebp - 0xd8]
push edx
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor ecx, ecx
mov byte [ebp - 0x3c], cl
xor edx, edx
mov byte [ebp - 0x3d], dl
xor eax, eax
mov byte [ebp - 0x3e], al
movzx ecx, byte [ebp - 0x3c]
push ecx
movzx edx, byte [ebp - 0x3d]
push edx
movzx eax, byte [ebp - 0x3e]
push eax
lea ecx, [ebp - 0x210]
call fcn.00412cc0
mov ecx, eax
call fcn.0040caf0
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040ff80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6c]
call fcn.004100e0
lea ecx, [eax + eax + 2]
mov dword [ebp - 0xe0], ecx
lea ecx, [ebp - 0x6c]
call fcn.004100c0
mov dword [ebp - 0xe4], eax
xor edx, edx
mov byte [ebp - 0x3f], dl
xor eax, eax
mov byte [ebp - 0x40], al
xor ecx, ecx
mov byte [ebp - 0x41], cl
movzx edx, byte [ebp - 0x3f]
push edx
movzx eax, byte [ebp - 0x40]
push eax
movzx ecx, byte [ebp - 0x41]
push ecx
lea ecx, [ebp - 0x290]
call fcn.00413000
mov ecx, eax
call fcn.0040cc20
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xe0]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
push 1
push 0
mov edx, dword [ebp - 0xe8]
push edx
mov eax, dword [ebp - 0xec]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor ecx, ecx
mov byte [ebp - 0x42], cl
xor edx, edx
mov byte [ebp - 0x43], dl
xor eax, eax
mov byte [ebp - 0x44], al
movzx ecx, byte [ebp - 0x42]
push ecx
movzx edx, byte [ebp - 0x43]
push edx
movzx eax, byte [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2b0]
call fcn.00413090
mov ecx, eax
call fcn.0040cc20
push eax
lea ecx, [ebp - 0x68]
call fcn.0040ff80
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x68]
call fcn.004100e0
lea ecx, [eax + eax + 2]
mov dword [ebp - 0xf0], ecx
lea ecx, [ebp - 0x68]
call fcn.004100c0
mov dword [ebp - 0xf4], eax
xor edx, edx
mov byte [ebp - 0x45], dl
xor eax, eax
mov byte [ebp - 0x46], al
xor ecx, ecx
mov byte [ebp - 0x47], cl
movzx edx, byte [ebp - 0x45]
push edx
movzx eax, byte [ebp - 0x46]
push eax
movzx ecx, byte [ebp - 0x47]
push ecx
lea ecx, [ebp - 0x2d0]
call fcn.00413120
mov ecx, eax
call fcn.0040cc20
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0xf0]
push eax
mov ecx, dword [ebp - 0xf4]
push ecx
push 1
push 0
mov edx, dword [ebp - 0xf8]
push edx
mov eax, dword [ebp - 0xfc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor ecx, ecx
mov byte [ebp - 0x48], cl
xor edx, edx
mov byte [ebp - 0x49], dl
xor eax, eax
mov byte [ebp - 0x4a], al
lea ecx, [ebp - 0x80]
push ecx
lea edx, [ebp - 0x24]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
movzx eax, byte [ebp - 0x48]
push eax
movzx ecx, byte [ebp - 0x49]
push ecx
movzx edx, byte [ebp - 0x4a]
push edx
lea ecx, [ebp - 0x2f0]
call fcn.004131b0
mov ecx, eax
call fcn.0040cc20
push eax
lea ecx, [ebp - 0x164]
call fcn.0040f080
mov ecx, eax
call fcn.00405220
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x40b243
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x68]
call fcn.0040fee0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6c]
call fcn.0040fee0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x70]
call fcn.0040fee0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74]
call fcn.0040fee0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x14c]
call fcn.00405270
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x164]
call fcn.00405270
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x17c]
call fcn.00405270
mov byte [ebp - 4], 1
lea ecx, [ebx + 8]
call fcn.00405270
mov byte [ebp - 4], 0
lea ecx, [ebx + 0x20]
call fcn.00405270
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x38]
call fcn.00405270
jmp 0x40b5b0
lea ecx, [ebx + 8]
call fcn.00405220
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
add eax, 2
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x5c]
mov dx, word [ecx]
mov word [ebp - 0x76], dx
add dword [ebp - 0x5c], 2
cmp word [ebp - 0x76], 0
jne 0x40b25a
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x100]
sar eax, 1
mov dword [ebp - 0x104], eax
lea ecx, [ebx + 8]
call fcn.00405220
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x104]
lea eax, [edx + edx + 2]
push eax
mov ecx, dword [ebp - 0x108]
push ecx
push 1
push 0
push 0x544068
mov edx, dword [ebp - 0x10c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor eax, eax
mov byte [ebp - 0x4b], al
xor ecx, ecx
mov byte [ebp - 0x4c], cl
xor edx, edx
mov byte [ebp - 0x4d], dl
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x24]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
movzx edx, byte [ebp - 0x4b]
push edx
movzx eax, byte [ebp - 0x4c]
push eax
movzx ecx, byte [ebp - 0x4d]
push ecx
lea ecx, [ebp - 0x3c0]
call fcn.00413240
mov ecx, eax
call fcn.0040cdf0
push eax
lea ecx, [ebp - 0x14c]
call fcn.0040f080
mov ecx, eax
call fcn.00405220
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x40b3b9
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x68]
call fcn.0040fee0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6c]
call fcn.0040fee0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x70]
call fcn.0040fee0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74]
call fcn.0040fee0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x14c]
call fcn.00405270
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x164]
call fcn.00405270
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x17c]
call fcn.00405270
mov byte [ebp - 4], 1
lea ecx, [ebx + 8]
call fcn.00405270
mov byte [ebp - 4], 0
lea ecx, [ebx + 0x20]
call fcn.00405270
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x38]
call fcn.00405270
jmp 0x40b5b0
xor edx, edx
mov byte [ebp - 0x4e], dl
xor eax, eax
mov byte [ebp - 0x4f], al
xor ecx, ecx
mov byte [ebp - 0x50], cl
movzx edx, byte [ebp - 0x4e]
push edx
movzx eax, byte [ebp - 0x4f]
push eax
movzx ecx, byte [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x400]
call fcn.004133a0
mov ecx, eax
call fcn.0040cdf0
mov dword [ebp - 0x120], eax
lea edx, [ebx + 0x38]
push edx
push 0x544070
lea eax, [ebp - 0x1c4]
push eax
call fcn.00413300
add esp, 0xc
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x114], ecx
mov byte [ebp - 4], 0xe
push 0x54406c
mov edx, dword [ebp - 0x114]
push edx
lea eax, [ebp - 0x1ac]
push eax
call fcn.00412060
add esp, 0xc
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x11c], ecx
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
lea edx, [ebp - 0x194]
push edx
call fcn.00412060
add esp, 0xc
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1ac]
call fcn.00405270
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1c4]
call fcn.00405270
lea ecx, [ebp - 0x194]
call fcn.00405220
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
add eax, 2
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x64]
mov dx, word [ecx]
mov word [ebp - 0x78], dx
add dword [ebp - 0x64], 2
cmp word [ebp - 0x78], 0
jne 0x40b4af
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x128]
sar eax, 1
mov dword [ebp - 0x12c], eax
lea ecx, [ebp - 0x194]
call fcn.00405220
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x12c]
lea eax, [edx + edx + 2]
push eax
mov ecx, dword [ebp - 0x130]
push ecx
push 1
push 0
push 0x544074
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x194]
call fcn.00405270
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x68]
call fcn.0040fee0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6c]
call fcn.0040fee0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x70]
call fcn.0040fee0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74]
call fcn.0040fee0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x14c]
call fcn.00405270
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x164]
call fcn.00405270
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x17c]
call fcn.00405270
mov byte [ebp - 4], 1
lea ecx, [ebx + 8]
call fcn.00405270
mov byte [ebp - 4], 0
lea ecx, [ebx + 0x20]
call fcn.00405270
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x38]
call fcn.00405270
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret