Function at 0x45461c
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 0x454c0c
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x43bc94]
call fcn.0043bdc8
mov dword [ebp - 8], eax
mov edx, 0x80000002
mov eax, dword [ebp - 8]
call fcn.0043be5c
xor eax, eax
push ebp
push 0x4546dd
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov edx, 0x454c24
mov eax, dword [ebp - 8]
call fcn.0043bfb4
mov eax, dword [ebp - 4]
push dword [eax + 0x218]
push 0x454c64
lea ecx, [ebp - 0x1e8]
mov edx, 0x454c70
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d68
mov ecx, dword [ebp - 0x1e4]
mov edx, 0x454ca0
mov eax, dword [ebp - 8]
call fcn.0043c25c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4546e7
mov eax, dword [ebp - 8]
call fcn.0043be2c
mov eax, dword [ebp - 8]
call fcn.00402efc
lea ecx, [ebp - 0x1e8]
mov edx, 0x454cb0
mov eax, dword [ebp - 4]
call fcn.00451c64
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x214]
lea eax, [ebp - 0x1e4]
call fcn.00403cf4
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00404dba
lea eax, [ebp - 0x1e0]
call fcn.004051a2
call fcn.00402744
lea ecx, [ebp - 0x1e4]
mov edx, 0x454cf0
mov eax, dword [ebp - 4]
call fcn.00451c64
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00403fe0
call fcn.004053e7
call fcn.00402744
push 0x454d20
mov eax, dword [ebp - 4]
push dword [eax + 0x218]
push 0x454c64
lea ecx, [ebp - 0x1e8]
mov edx, 0x454dbc
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e8]
push 0x454df4
lea eax, [ebp - 0x1e4]
mov edx, 5
call fcn.00403d68
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00403fe0
call fcn.00404e35
call fcn.00402744
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x224]
call fcn.00403ca8
mov edi, eax
test edi, edi
jle 0x4548ce
mov esi, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x224]
mov bl, byte [eax + esi - 1]
xor eax, eax
mov al, bl
cmp eax, 0xe8
jg 0x454817
je 0x45485b
sub eax, 0xc9
je 0x454826
sub eax, 0x17
je 0x454842
jmp 0x4548a6
sub eax, 0xe9
je 0x454874
dec eax
je 0x45488d
jmp 0x4548a6
mov dl, 0x90
lea eax, [ebp - 0x1e0]
call fcn.004053fb
call fcn.00404e35
call fcn.00402744
jmp 0x4548c6
mov dl, 0x85
lea eax, [ebp - 0x1e0]
call fcn.004053fb
call fcn.00404e35
call fcn.00402744
jmp 0x4548c6
mov dl, 0x8a
lea eax, [ebp - 0x1e0]
call fcn.004053fb
call fcn.00404e35
call fcn.00402744
jmp 0x4548c6
mov dl, 0x82
lea eax, [ebp - 0x1e0]
call fcn.004053fb
call fcn.00404e35
call fcn.00402744
jmp 0x4548c6
mov dl, 0x88
lea eax, [ebp - 0x1e0]
call fcn.004053fb
call fcn.00404e35
call fcn.00402744
jmp 0x4548c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x224]
mov edx, ebx
lea eax, [ebp - 0x1e0]
call fcn.004053fb
call fcn.00404e35
call fcn.00402744
inc esi
dec edi
jne 0x4547ec
push 0x454c64
lea ecx, [ebp - 0x1e8]
mov edx, 0x454e00
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e8]
lea ecx, [ebp - 0x1ec]
mov edx, 0x454e28
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1ec]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d68
mov edx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
call fcn.00403fe0
call fcn.00404e35
call fcn.00402744
lea eax, [ebp - 0x1e0]
call fcn.004053e7
call fcn.00402744
mov edx, 0x454e4c
lea eax, [ebp - 0x1e0]
call fcn.00403fe0
call fcn.00404e35
call fcn.00402744
lea eax, [ebp - 0x1e0]
call fcn.004053e7
call fcn.00402744
lea eax, [ebp - 0x1e0]
call fcn.00404f24
call fcn.00402744
xor eax, eax
push ebp
push 0x4549fa
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x1e8]
mov edx, 0x454cb0
mov eax, dword [ebp - 4]
call fcn.00451c64
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x214]
lea eax, [ebp - 0x1e4]
call fcn.00403cf4
mov eax, dword [ebp - 0x1e4]
mov edx, 1
call fcn.0040738c
mov ebx, eax
mov eax, 0x454ee8
call fcn.00408b8c
fstp qword [ebp - 0x14]
wait
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00407898
mov edx, eax
mov eax, ebx
call fcn.004074d4
mov eax, ebx
call fcn.00407454
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x454a04
mov eax, dword [ebp - 4]
push dword [eax + 0x218]
push 0x454c64
mov edx, 0x454dbc
lea ecx, [ebp - 0x1e8]
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d68
mov eax, dword [ebp - 0x1e4]
call fcn.004074c4
test al, al
jne 0x454af5
mov eax, dword [ebp - 4]
push dword [eax + 0x218]
push 0x454c64
mov edx, 0x454dbc
lea ecx, [ebp - 0x1e4]
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403d68
push 0x5c23
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x210]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00454f34
xor eax, eax
push ebp
push 0x454aeb
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040738c
mov ebx, eax
mov eax, 0x454f04
call fcn.00408b8c
fstp qword [ebp - 0x14]
wait
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00407898
mov edx, eax
mov eax, ebx
call fcn.004074d4
mov eax, ebx
call fcn.00407454
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x454af5
mov eax, dword [ebp - 4]
push dword [eax + 0x218]
push 0x454c64
mov edx, 0x454c70
lea ecx, [ebp - 0x1e8]
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00403d68
mov eax, dword [ebp - 0x1e4]
call fcn.004074c4
test al, al
jne 0x454be6
mov eax, dword [ebp - 4]
push dword [eax + 0x218]
push 0x454c64
mov edx, 0x454c70
lea ecx, [ebp - 0x1e4]
mov eax, dword [ebp - 4]
call fcn.00451c64
push dword [ebp - 0x1e4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403d68
push 0x3021
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x210]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00454f34
xor eax, eax
push ebp
push 0x454bdc
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040738c
mov ebx, eax
mov eax, 0x454f20
call fcn.00408b8c
fstp qword [ebp - 0x14]
wait
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00407898
mov edx, eax
mov eax, ebx
call fcn.004074d4
mov eax, ebx
call fcn.00407454
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x454be6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x454c13
lea eax, [ebp - 0x1ec]
mov edx, 3
call fcn.00403a50
lea eax, [ebp - 0xc]
call fcn.00403a2c
ret