Function at 0x510fd8
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.0040436c
xor eax, eax
push ebp
push 0x5113c1
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 [0x4783fc]
call fcn.004784fc
mov dword [ebp - 0xc], eax
mov dl, 1
mov eax, dword [0x4106ec]
call fcn.00403168
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x511382
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
mov eax, 0x5113d8
call fcn.004044a4
test eax, eax
jle 0x5110d5
mov eax, dword [ebp - 8]
mov edx, 0x5113d8
call fcn.004042c8
jne 0x51107d
lea eax, [ebp - 0x24]
mov edx, 0x5113e8
call fcn.00403fd0
jmp 0x5110c6
mov eax, dword [ebp - 8]
mov edx, 0x511420
call fcn.004042c8
jne 0x51109b
lea eax, [ebp - 0x24]
mov edx, 0x511430
call fcn.00403fd0
jmp 0x5110c6
mov eax, dword [ebp - 8]
mov edx, 0x51146c
call fcn.004042c8
jne 0x5110b9
lea eax, [ebp - 0x24]
mov edx, 0x51147c
call fcn.00403fd0
jmp 0x5110c6
lea eax, [ebp - 0x24]
mov edx, 0x5114bc
call fcn.00403fd0
mov edx, 0x80000001
mov eax, dword [ebp - 0xc]
call fcn.0047859c
jmp 0x511149
mov eax, dword [ebp - 8]
mov edx, 0x511500
call fcn.004042c8
jne 0x5110f3
lea eax, [ebp - 0x24]
mov edx, 0x5113e8
call fcn.00403fd0
jmp 0x51113c
mov eax, dword [ebp - 8]
mov edx, 0x511510
call fcn.004042c8
jne 0x511111
lea eax, [ebp - 0x24]
mov edx, 0x511430
call fcn.00403fd0
jmp 0x51113c
mov eax, dword [ebp - 8]
mov edx, 0x511520
call fcn.004042c8
jne 0x51112f
lea eax, [ebp - 0x24]
mov edx, 0x51147c
call fcn.00403fd0
jmp 0x51113c
lea eax, [ebp - 0x24]
mov edx, 0x5114bc
call fcn.00403fd0
mov edx, 0x80000002
mov eax, dword [ebp - 0xc]
call fcn.0047859c
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.00478604
test al, al
je 0x511364
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.004789f0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x51135c
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.00478b80
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x20c]
call fcn.00462450
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
call fcn.00461f24
mov eax, dword [ebp - 0x1c]
call fcn.0040437c
mov ebx, eax
mov eax, ebx
call fcn.0040a410
inc eax
call fcn.004027bc
mov esi, eax
mov edx, ebx
mov eax, esi
call fcn.0040a478
cmp byte [esi], 0x22
jne 0x5111e9
lea ebx, [esi + 1]
jmp 0x5111eb
mov ebx, esi
mov eax, ebx
call fcn.0040a638
mov edx, eax
lea eax, [ebp - 0x34]
call fcn.004040f0
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x30]
call fcn.004098e8
mov eax, dword [ebp - 0x30]
call fcn.0040437c
mov ebx, eax
mov dl, 0x22
mov eax, ebx
call fcn.0040a5c0
test eax, eax
je 0x51122c
mov dl, 0x22
mov eax, ebx
call fcn.0040a5c0
mov byte [eax], 0
jmp 0x51128b
lea eax, [ebp - 0x38]
mov edx, ebx
call fcn.004040f0
mov edx, dword [ebp - 0x38]
mov eax, 0x511530
call fcn.004044a4
dec eax
jne 0x51126b
add ebx, 0xd
mov edx, 0x511540
mov eax, ebx
call fcn.0040a5e4
test eax, eax
je 0x51128b
mov edx, 0x511540
mov eax, ebx
call fcn.0040a5e4
mov byte [eax + 4], 0
jmp 0x51128b
mov edx, 0x511548
mov eax, ebx
call fcn.0040a5e4
test eax, eax
je 0x51128b
mov edx, 0x511548
mov eax, ebx
call fcn.0040a5e4
mov byte [eax + 4], 0
lea eax, [ebp - 0x3c]
mov edx, ebx
call fcn.004040f0
mov eax, dword [ebp - 0x3c]
call fcn.005101e0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.0043f8dc
inc eax
je 0x5112cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
call fcn.0043f974
mov ecx, eax
dec ecx
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.004620c8
jmp 0x5112d9
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.004620c8
mov edx, dword [ebp - 8]
mov eax, 0x511558
call fcn.004044a4
test eax, eax
jle 0x511300
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00461ec8
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00461fc4
jmp 0x511315
mov dl, 1
mov eax, dword [ebp - 0x20]
call fcn.00461ec8
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x20]
call fcn.00461fc4
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.004040f0
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.004027d4
inc dword [ebp - 0x14]
dec dword [ebp - 0x2c]
jne 0x511185
mov eax, dword [ebp - 0xc]
call fcn.0047856c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x511389
mov eax, dword [ebp - 0x10]
call fcn.00403198
mov eax, dword [ebp - 0xc]
call fcn.00403198
ret