Function at 0x523410
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x11
push 0
push 0
dec ecx
jne 0x523418
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x523c3e
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x486684]
call fcn.004867e0
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x523c19
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000001
mov eax, dword [ebp - 8]
call fcn.00486878
xor ecx, ecx
mov edx, 0x523c54
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x52356b
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523c54
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x5234a3
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x5234ad
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486d58
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x523563
inc esi
xor ebx, ebx
push 0x523c8c
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523c9c
lea ecx, [ebp - 0x14]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x14]
push 0x523ca8
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x5e8]
lea eax, [ebp - 0x20]
mov edx, 0x523cb4
call fcn.00404c48
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
pop ecx
call fcn.00525ffc
push dword [ebp - 0x18]
lea eax, [ebp - 0x10]
mov edx, 6
call fcn.00404cbc
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x5234e5
mov eax, dword [ebp - 0xc]
call fcn.00403b54
mov edx, 0x80000002
mov eax, dword [ebp - 8]
call fcn.00486878
xor ecx, ecx
mov edx, 0x523cd0
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x52368b
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523cd0
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x5235bd
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x5235c7
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x523684
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486c90
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x52366e
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x28]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
mov edx, 0x523d10
call fcn.00404c48
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x52366a
push 0x523d50
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523d60
lea ecx, [ebp - 0x30]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov edx, 4
call fcn.00404cbc
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x523601
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52368b
mov eax, dword [ebp - 0xc]
call fcn.00403b54
ret
xor ecx, ecx
mov edx, 0x523d6c
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x52379e
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523d6c
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x5236d0
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x5236da
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x523797
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486c90
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x523781
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x38]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
mov edx, 0x523dac
call fcn.00404c48
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x52377d
push 0x523d50
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523d60
lea ecx, [ebp - 0x40]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x40]
lea eax, [ebp - 0x3c]
mov edx, 4
call fcn.00404cbc
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x523714
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52379e
mov eax, dword [ebp - 0xc]
call fcn.00403b54
ret
xor ecx, ecx
mov edx, 0x523c54
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x5238ab
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523c54
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x5237e3
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x5237ed
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486d58
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x5238a3
inc esi
xor ebx, ebx
push 0x523d50
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523c9c
lea ecx, [ebp - 0x48]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x48]
push 0x523ca8
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x50]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x5e8]
lea eax, [ebp - 0x54]
mov edx, 0x523df0
call fcn.00404c48
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
pop ecx
call fcn.00525ffc
push dword [ebp - 0x4c]
lea eax, [ebp - 0x44]
mov edx, 6
call fcn.00404cbc
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x523825
mov eax, dword [ebp - 0xc]
call fcn.00403b54
xor ecx, ecx
mov edx, 0x523e0c
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x5239b8
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523e0c
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x5238f0
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x5238fa
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486d58
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x5239b0
inc esi
xor ebx, ebx
push 0x523d50
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523c9c
lea ecx, [ebp - 0x5c]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x5c]
push 0x523ca8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x64]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x5e8]
lea eax, [ebp - 0x68]
mov edx, 0x523df0
call fcn.00404c48
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 4]
pop ecx
call fcn.00525ffc
push dword [ebp - 0x60]
lea eax, [ebp - 0x58]
mov edx, 6
call fcn.00404cbc
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x523932
mov eax, dword [ebp - 0xc]
call fcn.00403b54
xor ecx, ecx
mov edx, 0x523e4c
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x523ac5
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523e4c
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x5239fd
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x523a07
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486d58
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x523abd
inc esi
xor ebx, ebx
push 0x523d50
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523c9c
lea ecx, [ebp - 0x70]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x70]
push 0x523ca8
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x78]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x5e8]
lea eax, [ebp - 0x7c]
mov edx, 0x523df0
call fcn.00404c48
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 4]
pop ecx
call fcn.00525ffc
push dword [ebp - 0x74]
lea eax, [ebp - 0x6c]
mov edx, 6
call fcn.00404cbc
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x523a3f
mov eax, dword [ebp - 0xc]
call fcn.00403b54
xor ecx, ecx
mov edx, 0x523e94
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x523c03
mov eax, dword [ebp - 4]
add eax, 0x5e8
mov edx, 0x523e94
call fcn.00404998
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5e7], 0
jne 0x523b0a
mov eax, dword [0x530968]
mov eax, dword [eax]
cmp byte [eax + 0x9c], 0
je 0x523b14
call fcn.004043cc
jmp 0x523c20
mov dl, 1
mov eax, dword [0x41562c]
call fcn.00403b24
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x523bfc
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00486c90
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x523be6
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x84]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x80]
mov edx, 0x523ec4
call fcn.00404c48
mov edx, dword [ebp - 0x80]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.004868e0
test al, al
je 0x523bde
mov edx, 0x523ef4
mov eax, dword [ebp - 8]
call fcn.00487260
test al, al
je 0x523bde
push 0x523d50
mov eax, dword [ebp - 4]
push dword [eax + 0x5e8]
push 0x523d60
lea ecx, [ebp - 0x8c]
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x8c]
lea eax, [ebp - 0x88]
mov edx, 4
call fcn.00404cbc
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 4]
call fcn.00525da0
inc ebx
dec esi
jne 0x523b52
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523c03
mov eax, dword [ebp - 0xc]
call fcn.00403b54
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523c20
mov eax, dword [ebp - 8]
call fcn.00403b54
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523c45
lea eax, [ebp - 0x8c]
mov edx, 0x20
call fcn.00404968
ret