Function at 0x454590
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe14
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x1e8], edx
mov dword [ebp - 0x1ec], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x454b80
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x43bc34]
call fcn.0043bd68
mov dword [ebp - 8], eax
mov edx, 0x80000002
mov eax, dword [ebp - 8]
call fcn.0043bdfc
xor eax, eax
push ebp
push 0x454651
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov edx, 0x454b98
mov eax, dword [ebp - 8]
call fcn.0043bf54
mov eax, dword [ebp - 4]
push dword [eax + 0x214]
push 0x454bd8
lea ecx, [ebp - 0x1e8]
mov edx, 0x454be4
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d08
mov ecx, dword [ebp - 0x1e4]
mov edx, 0x454c1c
mov eax, dword [ebp - 8]
call fcn.0043c1fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45465b
mov eax, dword [ebp - 8]
call fcn.0043bdcc
mov eax, dword [ebp - 8]
call fcn.00402e9c
lea ecx, [ebp - 0x1e8]
mov edx, 0x454c2c
mov eax, dword [ebp - 4]
call fcn.00451bd8
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x210]
lea eax, [ebp - 0x1e4]
call fcn.00403c94
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00404d5a
lea eax, [ebp - 0x1e0]
call fcn.00405142
call fcn.00402744
lea ecx, [ebp - 0x1e4]
mov edx, 0x454c6c
mov eax, dword [ebp - 4]
call fcn.00451bd8
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00403f80
call fcn.00405387
call fcn.00402744
push 0x454c9c
mov eax, dword [ebp - 4]
push dword [eax + 0x214]
push 0x454bd8
lea ecx, [ebp - 0x1e8]
mov edx, 0x454d38
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e8]
push 0x454d68
lea eax, [ebp - 0x1e4]
mov edx, 5
call fcn.00403d08
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00403f80
call fcn.00404dd5
call fcn.00402744
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
call fcn.00403c48
mov edi, eax
test edi, edi
jle 0x454842
mov esi, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
mov bl, byte [eax + esi - 1]
xor eax, eax
mov al, bl
cmp eax, 0xe8
jg 0x45478b
je 0x4547cf
sub eax, 0xc9
je 0x45479a
sub eax, 0x17
je 0x4547b6
jmp 0x45481a
sub eax, 0xe9
je 0x4547e8
dec eax
je 0x454801
jmp 0x45481a
mov dl, 0x90
lea eax, [ebp - 0x1e0]
call fcn.0040539b
call fcn.00404dd5
call fcn.00402744
jmp 0x45483a
mov dl, 0x85
lea eax, [ebp - 0x1e0]
call fcn.0040539b
call fcn.00404dd5
call fcn.00402744
jmp 0x45483a
mov dl, 0x8a
lea eax, [ebp - 0x1e0]
call fcn.0040539b
call fcn.00404dd5
call fcn.00402744
jmp 0x45483a
mov dl, 0x82
lea eax, [ebp - 0x1e0]
call fcn.0040539b
call fcn.00404dd5
call fcn.00402744
jmp 0x45483a
mov dl, 0x88
lea eax, [ebp - 0x1e0]
call fcn.0040539b
call fcn.00404dd5
call fcn.00402744
jmp 0x45483a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
mov edx, ebx
lea eax, [ebp - 0x1e0]
call fcn.0040539b
call fcn.00404dd5
call fcn.00402744
inc esi
dec edi
jne 0x454760
push 0x454bd8
lea ecx, [ebp - 0x1e8]
mov edx, 0x454d74
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e8]
lea ecx, [ebp - 0x1ec]
mov edx, 0x454d9c
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1ec]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d08
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00403f80
call fcn.00404dd5
call fcn.00402744
lea eax, [ebp - 0x1e0]
call fcn.00405387
call fcn.00402744
mov edx, 0x454dc0
lea eax, [ebp - 0x1e0]
call fcn.00403f80
call fcn.00404dd5
call fcn.00402744
lea eax, [ebp - 0x1e0]
call fcn.00405387
call fcn.00402744
lea eax, [ebp - 0x1e0]
call fcn.00404ec4
call fcn.00402744
xor eax, eax
push ebp
push 0x45496e
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x1e8]
mov edx, 0x454c2c
mov eax, dword [ebp - 4]
call fcn.00451bd8
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x210]
lea eax, [ebp - 0x1e4]
call fcn.00403c94
mov eax, dword [ebp - 0x1e4]
mov edx, 1
call fcn.0040732c
mov ebx, eax
mov eax, 0x454e5c
call fcn.00408b2c
fstp qword [ebp - 0x14]
wait
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00407838
mov edx, eax
mov eax, ebx
call fcn.00407474
mov eax, ebx
call fcn.004073f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x454978
mov eax, dword [ebp - 4]
push dword [eax + 0x214]
push 0x454bd8
mov edx, 0x454d38
lea ecx, [ebp - 0x1e8]
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d08
mov eax, dword [ebp - 0x1e4]
call fcn.00407464
test al, al
jne 0x454a69
mov eax, dword [ebp - 4]
push dword [eax + 0x214]
push 0x454bd8
mov edx, 0x454d38
lea ecx, [ebp - 0x1e4]
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403d08
push 0x5c23
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x20c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00454ea8
xor eax, eax
push ebp
push 0x454a5f
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040732c
mov ebx, eax
mov eax, 0x454e78
call fcn.00408b2c
fstp qword [ebp - 0x14]
wait
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00407838
mov edx, eax
mov eax, ebx
call fcn.00407474
mov eax, ebx
call fcn.004073f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x454a69
mov eax, dword [ebp - 4]
push dword [eax + 0x214]
push 0x454bd8
mov edx, 0x454be4
lea ecx, [ebp - 0x1e8]
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d08
mov eax, dword [ebp - 0x1e4]
call fcn.00407464
test al, al
jne 0x454b5a
mov eax, dword [ebp - 4]
push dword [eax + 0x214]
push 0x454bd8
mov edx, 0x454be4
lea ecx, [ebp - 0x1e4]
mov eax, dword [ebp - 4]
call fcn.00451bd8
push dword [ebp - 0x1e4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403d08
push 0x3021
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x20c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00454ea8
xor eax, eax
push ebp
push 0x454b50
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040732c
mov ebx, eax
mov eax, 0x454e94
call fcn.00408b2c
fstp qword [ebp - 0x14]
wait
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00407838
mov edx, eax
mov eax, ebx
call fcn.00407474
mov eax, ebx
call fcn.004073f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x454b5a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x454b87
lea eax, [ebp - 0x1ec]
mov edx, 3
call fcn.004039f0
lea eax, [ebp - 0xc]
call fcn.004039cc
ret