Function at 0x522b18
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x522b20
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x522d79
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x440eac]
call fcn.00440fac
mov dword [ebp - 4], eax
mov dl, 1
mov eax, dword [0x41a4b8]
call fcn.00403414
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x522d57
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000002
mov eax, dword [ebp - 4]
call fcn.0044104c
mov cl, 1
mov edx, 0x522d90
mov eax, dword [ebp - 4]
call fcn.004410b4
test al, al
je 0x522be3
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004414a0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x522bdb
inc esi
xor ebx, ebx
lea ecx, [ebp - 0xc]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0xc]
mov eax, 0x522dc8
call fcn.0040487c
test eax, eax
jle 0x522bd7
lea ecx, [ebp - 0x10]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00441350
inc ebx
dec esi
jne 0x522ba1
mov eax, dword [ebp - 4]
call fcn.0044101c
mov cl, 1
mov edx, 0x522dd8
mov eax, dword [ebp - 4]
call fcn.004410b4
test al, al
je 0x522c55
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004414a0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x522c4d
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x14]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x14]
mov eax, 0x522dc8
call fcn.0040487c
test eax, eax
jle 0x522c49
lea ecx, [ebp - 0x18]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.00441350
inc ebx
dec esi
jne 0x522c13
mov eax, dword [ebp - 4]
call fcn.0044101c
mov cl, 1
mov edx, 0x522e18
mov eax, dword [ebp - 4]
call fcn.004410b4
test al, al
je 0x522cc7
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004414a0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x522cbf
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x1c]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x1c]
mov eax, 0x522dc8
call fcn.0040487c
test eax, eax
jle 0x522cbb
lea ecx, [ebp - 0x20]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00441350
inc ebx
dec esi
jne 0x522c85
mov eax, dword [ebp - 4]
call fcn.0044101c
mov cl, 1
mov edx, 0x522e5c
mov eax, dword [ebp - 4]
call fcn.004410b4
test al, al
je 0x522d39
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004414a0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x522d31
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x24]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x24]
mov eax, 0x522dc8
call fcn.0040487c
test eax, eax
jle 0x522d2d
lea ecx, [ebp - 0x28]
mov edx, ebx
mov eax, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
call fcn.00441350
inc ebx
dec esi
jne 0x522cf7
mov eax, dword [ebp - 4]
call fcn.0044101c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x522d5e
mov eax, dword [ebp - 4]
call fcn.00403444
mov eax, dword [ebp - 8]
call fcn.00403444
ret