Function at 0x45d1b4
Capabilities:
Persist via windows service
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x22b
push 0
push 0
dec ecx
jne 0x45d1bc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x45d64e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1139]
mov dword [ebp - 0x34], eax
mov eax, 0x45d65c
mov dword [ebp - 0x34], eax
mov dl, 1
mov eax, dword [0x415bfc]
call fcn.004036e0
mov dword [ebp - 0x24], eax
mov dl, 1
mov eax, dword [0x415bfc]
call fcn.004036e0
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x44]
mov dl, 1
mov eax, dword [0x42b9e8]
call fcn.0042bae8
mov dword [ebp - 0x1c], eax
mov edx, 0x80000002
mov eax, dword [ebp - 0x1c]
call fcn.0042bb88
lea eax, [ebp - 0x14]
mov edx, 0x45d668
call fcn.00404534
lea eax, [ebp - 8]
mov edx, 0x45d6ac
call fcn.00404534
lea eax, [ebp - 0xc]
mov edx, 0x45d6c8
call fcn.00404534
mov ebx, pe_nt_image_headers32
lea eax, [ebp - 0x138]
mov byte [eax], 0
inc eax
dec ebx
jne 0x45d25c
xor eax, eax
mov dword [ebp - 0x2c], eax
xor ecx, ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0042bbec
test al, al
je 0x45d5e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d6e4
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x1c]
call fcn.0042c020
cmp al, 1
jne 0x45d5cd
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
call fcn.0042bd78
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
lea edx, [ebp - 0x1144]
call fcn.0040881c
mov ecx, dword [ebp - 0x1144]
lea eax, [ebp - 0x1140]
mov edx, 0x45d700
call fcn.004047a8
mov edx, dword [ebp - 0x1140]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x45d41b
inc esi
xor ebx, ebx
lea eax, [ebp - 0x138]
mov dword [ebp - 0x38], eax
mov edx, 0x80000002
mov eax, dword [ebp - 0x1c]
call fcn.0042bb88
lea ecx, [ebp - 0x1148]
mov edx, ebx
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x1148]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x45d720
push dword [ebp - 0x14]
push 0x45d720
lea ecx, [ebp - 0x114c]
mov edx, ebx
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x114c]
lea eax, [ebp - 0x30]
mov edx, 4
call fcn.0040481c
xor ecx, ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.0042bbec
test al, al
je 0x45d410
lea ecx, [ebp - 0x20]
mov edx, 0x45d72c
mov eax, dword [ebp - 0x1c]
call fcn.0042beb8
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
call fcn.0040475c
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0x20]
call fcn.004049bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.004048a8
je 0x45d3ec
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.004048a8
jne 0x45d410
lea ecx, [ebp - 0x20]
mov edx, 0x45d740
mov eax, dword [ebp - 0x1c]
call fcn.0042beb8
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
inc dword [ebp - 0x2c]
inc ebx
inc dword [ebp - 0x38]
dec esi
jne 0x45d314
cmp dword [ebp - 0x2c], 0
jle 0x45d5b2
mov eax, dword [ebp - 0x1c]
call fcn.0042bb58
mov edx, 0x80000002
mov eax, dword [ebp - 0x1c]
call fcn.0042bb88
push 0x45d754
lea ecx, [ebp - 0x1150]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x1150]
push 0x45d780
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.0040481c
xor ecx, ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0042bbec
test al, al
je 0x45d4de
xor ecx, ecx
mov edx, 0x45d79c
mov eax, dword [ebp - 0x1c]
call fcn.0042bf30
push 0x11
push 0x45d7a8
push 7
push 0
push 0x45d7bc
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
push eax
call sub.advapi32.dll_RegSetValueExA
test eax, eax
jne 0x45d4c3
push 0xf
push 0x45d7c8
push 7
push 0
push 0x45d7d8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
push eax
call sub.advapi32.dll_RegSetValueExA
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d7ec
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x45d4f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d81c
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea ecx, [ebp - 0x1158]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1158]
lea eax, [ebp - 0x1154]
mov edx, 0x45d83c
call fcn.004047a8
mov edx, dword [ebp - 0x1154]
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
call fcn.0042bbec
test al, al
je 0x45d597
xor ecx, ecx
mov edx, 0x45d79c
mov eax, dword [ebp - 0x1c]
call fcn.0042bf30
push 0x11
push 0x45d7a8
push 7
push 0
push 0x45d7bc
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
push eax
call sub.advapi32.dll_RegSetValueExA
test eax, eax
jne 0x45d57c
push 0xf
push 0x45d7c8
push 7
push 0
push 0x45d7d8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
push eax
call sub.advapi32.dll_RegSetValueExA
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d7ec
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x45d601
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d81c
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x45d601
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d884
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x45d601
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d8a8
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x45d601
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
mov eax, dword [eax + 0x220]
mov edx, 0x45d8c8
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x1c]
call fcn.0042bb58
mov dl, 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx - 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45d655
lea eax, [ebp - 0x1158]
mov edx, 7
call fcn.004044c0
lea eax, [ebp - 0x30]
call fcn.0040449c
lea eax, [ebp - 0x20]
call fcn.0040449c
lea eax, [ebp - 0x18]
mov edx, 5
call fcn.004044c0
ret