Function at 0x576e8c
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x26
push 0
push 0
dec ecx
jne 0x576e95
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x14], ecx
mov esi, edx
mov edi, eax
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x5778ae
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x15], 1
lea eax, [ebp - 4]
call fcn.00406a60
lea eax, [ebp - 8]
call fcn.00406a60
mov eax, dword [ebp - 0x14]
call fcn.00406a60
lea eax, [ebp - 4]
push eax
push ebx
mov ecx, 0x5778d0
mov edx, 0x5778f0
mov eax, 0x80000001
call fcn.0055b7bc
mov eax, dword [ebp - 4]
test eax, eax
je 0x576efb
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x576fa3
lea edx, [ebp - 0x1c]
mov eax, 0x577920
call fcn.0041d238
mov eax, dword [ebp - 0x1c]
call fcn.004075c4
push eax
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0041d238
mov eax, dword [ebp - 0x20]
call fcn.004075c4
pop edx
call fcn.0041ec7c
test eax, eax
je 0x576fa3
lea eax, [ebp - 8]
push eax
push ebx
mov ecx, 0x57793c
mov edx, 0x5778f0
mov eax, 0x80000001
call fcn.0055b7bc
mov eax, dword [ebp - 8]
test eax, eax
je 0x576f5b
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x576fa3
movzx eax, byte [0x57795c]
push eax
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x57796c
mov edx, 0x57797c
mov eax, dword [ebp - 8]
call fcn.004244a8
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 8]
call fcn.00406e88
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0041d61c
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 8]
call fcn.00406e88
jmp 0x57708b
mov eax, dword [ebp - 8]
test eax, eax
je 0x576faf
sub eax, 4
mov eax, dword [eax]
test eax, eax
jne 0x57708b
lea eax, [ebp - 8]
push eax
push ebx
mov ecx, 0x57798c
mov edx, 0x5779d4
mov eax, 0x80000001
call fcn.0055b7bc
mov eax, dword [ebp - 8]
test eax, eax
je 0x576fdc
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x57708b
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.0041d238
mov eax, dword [ebp - 0x2c]
push eax
lea edx, [ebp - 0x30]
mov eax, 0x577a3c
call fcn.0041d238
mov eax, dword [ebp - 0x30]
pop edx
call fcn.00407af4
test eax, eax
je 0x57708b
movzx eax, byte [0x57795c]
push eax
lea eax, [ebp - 0x34]
push eax
mov ecx, 0x57796c
mov edx, 0x57797c
mov eax, dword [ebp - 8]
call fcn.004244a8
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 8]
call fcn.00406e88
movzx eax, byte [0x57795c]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x57796c
mov edx, 0x577a60
mov eax, dword [ebp - 8]
call fcn.004244a8
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 8]
call fcn.00406e88
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 8]
call fcn.0041d61c
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 8]
call fcn.00406e88
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 8]
call fcn.0041e718
mov edx, dword [ebp - 0x40]
lea eax, [ebp - 8]
call fcn.00406e88
lea eax, [ebp - 0xc]
call fcn.00557888
lea eax, [ebp - 0x10]
call fcn.005574d8
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 8]
call fcn.0041d61c
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 8]
call fcn.00406e88
mov edx, dword [ebp - 8]
mov eax, edx
test eax, eax
je 0x5770bf
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x5770f0
mov eax, edx
test eax, eax
je 0x5770ce
sub eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 8]
cmp word [edx + eax*2 - 2], 0x5c
je 0x5770e6
lea eax, [ebp - 8]
mov edx, 0x577a7c
call fcn.004077c0
lea eax, [ebp - 8]
call fcn.00564f70
jmp 0x57711a
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x5770fc
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x57711a
push dword [ebp - 0x10]
push 0x577a8c
push 0x577a7c
lea eax, [ebp - 8]
mov edx, 3
call fcn.004078a0
mov eax, dword [ebp - 8]
test eax, eax
je 0x577126
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x5776d4
lea eax, [ebp - 0x48]
mov ecx, 0x577aac
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x48]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x4c]
mov ecx, 0x577ae4
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x4c]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x50]
mov ecx, 0x577b18
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x50]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x54]
mov ecx, 0x577b4c
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x54]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x58]
mov ecx, 0x577b80
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x58]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x5c]
mov ecx, 0x577ba0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x5c]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x60]
mov ecx, 0x577bd4
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x60]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x64]
mov ecx, 0x577bf4
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x64]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x68]
mov ecx, 0x577c14
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x68]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x6c]
mov ecx, 0x577c34
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x6c]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x70]
mov ecx, 0x577c54
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x70]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x74]
mov ecx, 0x577c74
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x74]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x78]
mov ecx, 0x577c98
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x78]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x7c]
mov ecx, 0x577cd8
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x7c]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x80]
mov ecx, 0x577d18
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x80]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x84]
mov ecx, 0x577d5c
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x84]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x88]
mov ecx, 0x577dc4
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x88]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x8c]
mov ecx, 0x577e14
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x8c]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x90]
mov ecx, 0x577e8c
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x90]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x94]
mov ecx, 0x577f08
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x94]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x98]
mov ecx, 0x577f94
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x98]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x9c]
mov ecx, 0x577fec
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x9c]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xa0]
mov ecx, 0x578040
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xa0]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xa4]
mov ecx, 0x5780a8
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xa4]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xa8]
mov ecx, 0x578104
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xa8]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xac]
mov ecx, 0x578160
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xac]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xb0]
mov ecx, 0x5781dc
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xb0]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xb4]
mov ecx, 0x578230
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xb4]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xb8]
mov ecx, 0x57827c
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xb8]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xbc]
mov ecx, 0x5782cc
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xbc]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xc0]
mov ecx, 0x578324
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xc0]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xc4]
mov ecx, 0x578380
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xc4]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xc8]
mov ecx, 0x5783a0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xc8]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xcc]
mov ecx, 0x5783c0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xcc]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xd0]
mov ecx, 0x5783e0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xd0]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xd4]
mov ecx, 0x578400
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xd4]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xd8]
mov ecx, 0x578420
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xd8]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xdc]
mov ecx, 0x578440
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xdc]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xe0]
mov ecx, 0x578460
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xe0]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xe4]
mov ecx, 0x578480
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xe4]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xe8]
mov ecx, 0x5784a0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xe8]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xec]
mov ecx, 0x5784c0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xec]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xf0]
mov ecx, 0x5784e0
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xf0]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xf4]
mov ecx, 0x578500
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xf4]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xf8]
mov ecx, 0x578524
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xf8]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0xfc]
mov ecx, 0x578544
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0xfc]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x100]
mov ecx, 0x578564
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x100]
mov eax, dword [edi]
call fcn.0055971c
lea eax, [ebp - 0x104]
mov ecx, 0x578584
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x104]
mov eax, dword [edi]
call fcn.0055971c
mov eax, dword [ebp - 8]
test eax, eax
je 0x5776e0
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x577868
lea eax, [ebp - 0x108]
mov ecx, 0x5785a4
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x108]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x10c]
mov ecx, 0x5785b8
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x10c]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x110]
mov ecx, 0x5785d8
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x110]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x114]
mov ecx, 0x5785ec
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x114]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x118]
mov ecx, 0x578600
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x118]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x11c]
mov ecx, 0x578614
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x11c]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x120]
mov ecx, 0x578628
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x120]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x124]
mov ecx, 0x578668
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x124]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x128]
mov ecx, 0x57867c
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x128]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x12c]
mov ecx, 0x578690
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x12c]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x130]
mov ecx, 0x5786a4
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x130]
mov eax, dword [esi]
call fcn.0055971c
lea eax, [ebp - 0x134]
mov ecx, 0x5786b8
mov edx, dword [ebp - 8]
call fcn.00407818
mov edx, dword [ebp - 0x134]
mov eax, dword [esi]
call fcn.0055971c
mov eax, dword [ebp - 8]
test eax, eax
je 0x577874
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x577883
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.00406e40
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5778b5
lea eax, [ebp - 0x134]
mov edx, 0x47
call fcn.00406ac0
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00406ac0
ret