Function at 0x4fb8e0
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404258
xor eax, eax
push ebp
push 0x4fbcc9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov dword [ebp - 0x28], eax
mov dl, 1
mov eax, dword [0x458670]
call fcn.00458770
mov dword [ebp - 0xc], eax
mov dl, 1
mov eax, dword [0x40fd08]
call fcn.0040308c
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x4fbc8a
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
mov eax, 0x4fbce0
call fcn.00404390
test eax, eax
jle 0x4fb9dd
mov eax, dword [ebp - 8]
mov edx, 0x4fbce0
call fcn.004041b4
jne 0x4fb985
lea eax, [ebp - 0x24]
mov edx, 0x4fbcf0
call fcn.00403ebc
jmp 0x4fb9ce
mov eax, dword [ebp - 8]
mov edx, 0x4fbd28
call fcn.004041b4
jne 0x4fb9a3
lea eax, [ebp - 0x24]
mov edx, 0x4fbd38
call fcn.00403ebc
jmp 0x4fb9ce
mov eax, dword [ebp - 8]
mov edx, 0x4fbd74
call fcn.004041b4
jne 0x4fb9c1
lea eax, [ebp - 0x24]
mov edx, 0x4fbd84
call fcn.00403ebc
jmp 0x4fb9ce
lea eax, [ebp - 0x24]
mov edx, 0x4fbdc4
call fcn.00403ebc
mov edx, 0x80000001
mov eax, dword [ebp - 0xc]
call fcn.00458810
jmp 0x4fba51
mov eax, dword [ebp - 8]
mov edx, 0x4fbe08
call fcn.004041b4
jne 0x4fb9fb
lea eax, [ebp - 0x24]
mov edx, 0x4fbcf0
call fcn.00403ebc
jmp 0x4fba44
mov eax, dword [ebp - 8]
mov edx, 0x4fbe18
call fcn.004041b4
jne 0x4fba19
lea eax, [ebp - 0x24]
mov edx, 0x4fbd38
call fcn.00403ebc
jmp 0x4fba44
mov eax, dword [ebp - 8]
mov edx, 0x4fbe28
call fcn.004041b4
jne 0x4fba37
lea eax, [ebp - 0x24]
mov edx, 0x4fbd84
call fcn.00403ebc
jmp 0x4fba44
lea eax, [ebp - 0x24]
mov edx, 0x4fbdc4
call fcn.00403ebc
mov edx, 0x80000002
mov eax, dword [ebp - 0xc]
call fcn.00458810
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.00458954
test al, al
je 0x4fbc6c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00458e28
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x4fbc64
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea ecx, [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.00458f94
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x20c]
call fcn.004625dc
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
call fcn.004620b0
mov eax, dword [ebp - 0x1c]
call fcn.00404268
mov ebx, eax
mov eax, ebx
call fcn.00409a80
inc eax
call fcn.004027b4
mov esi, eax
mov edx, ebx
mov eax, esi
call fcn.00409ae8
cmp byte [esi], 0x22
jne 0x4fbaf1
lea ebx, [esi + 1]
jmp 0x4fbaf3
mov ebx, esi
mov eax, ebx
call fcn.00409ca8
mov edx, eax
lea eax, [ebp - 0x34]
call fcn.00403fdc
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x30]
call fcn.004091ac
mov eax, dword [ebp - 0x30]
call fcn.00404268
mov ebx, eax
mov dl, 0x22
mov eax, ebx
call fcn.00409c30
test eax, eax
je 0x4fbb34
mov dl, 0x22
mov eax, ebx
call fcn.00409c30
mov byte [eax], 0
jmp 0x4fbb93
lea eax, [ebp - 0x38]
mov edx, ebx
call fcn.00403fdc
mov edx, dword [ebp - 0x38]
mov eax, 0x4fbe38
call fcn.00404390
dec eax
jne 0x4fbb73
add ebx, 0xd
mov edx, 0x4fbe48
mov eax, ebx
call fcn.00409c54
test eax, eax
je 0x4fbb93
mov edx, 0x4fbe48
mov eax, ebx
call fcn.00409c54
mov byte [eax + 4], 0
jmp 0x4fbb93
mov edx, 0x4fbe50
mov eax, ebx
call fcn.00409c54
test eax, eax
je 0x4fbb93
mov edx, 0x4fbe50
mov eax, ebx
call fcn.00409c54
mov byte [eax + 4], 0
lea eax, [ebp - 0x3c]
mov edx, ebx
call fcn.00403fdc
mov eax, dword [ebp - 0x3c]
call fcn.004faae8
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.0043e644
inc eax
je 0x4fbbd5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.0043e6dc
mov ecx, eax
dec ecx
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00462254
jmp 0x4fbbe1
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00462254
mov edx, dword [ebp - 8]
mov eax, 0x4fbe60
call fcn.00404390
test eax, eax
jle 0x4fbc08
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00462054
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00462150
jmp 0x4fbc1d
mov dl, 1
mov eax, dword [ebp - 0x20]
call fcn.00462054
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x20]
call fcn.00462150
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x40]
mov edx, ebx
call fcn.00403fdc
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, esi
call fcn.004027cc
inc dword [ebp - 0x14]
dec dword [ebp - 0x2c]
jne 0x4fba8d
mov eax, dword [ebp - 0xc]
call fcn.004587e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fbc91
mov eax, dword [ebp - 0x10]
call fcn.004030bc
mov eax, dword [ebp - 0xc]
call fcn.004030bc
ret