Function at 0x4baf80
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x4bb35c
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4bb2f4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4c44f8]
cmp byte [eax], 1
je 0x4bafc0
mov eax, dword [0x4c44f8]
cmp byte [eax], 2
jne 0x4bafd0
mov eax, dword [0x4c3f54]
mov byte [eax], 0
mov eax, dword [0x4c4254]
mov byte [eax], 1
lea eax, [ebp - 8]
call fcn.004b4c58
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x334]
call fcn.00488c9c
mov eax, dword [0x4c3fe8]
cmp byte [eax], 0
jne 0x4baff5
call fcn.004a7a50
lea eax, [ebp - 4]
call fcn.004054b0
mov eax, dword [esi + 0x320]
mov edx, dword [eax]
call dword [edx + 0xd8]
mov edi, 0x1d
mov ebx, dword [0x4c3f24]
mov eax, dword [esi + 0x320]
call fcn.0048ab88
mov edx, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xc]
lea edx, [ebx + 0xc]
call fcn.00404fcc
mov eax, dword [ebp - 0xc]
mov edx, dword [0x4c4354]
mov edx, dword [edx]
call fcn.00405174
jne 0x4bb04f
lea eax, [ebp - 4]
mov edx, dword [ebx]
call fcn.00405510
add ebx, 0x20
dec edi
jne 0x4bb016
mov eax, dword [ebp - 4]
xor edx, edx
call fcn.0040582c
jbe 0x4bb082
mov ebx, dword [esi + 0x320]
mov eax, ebx
call fcn.0048ab88
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov edx, eax
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0xd0]
call fcn.004b0878
mov eax, dword [0x4c3fc4]
cmp byte [eax], 0
je 0x4bb0fc
mov eax, dword [0x4c4120]
cmp byte [eax], 0
jne 0x4bb0ab
mov eax, dword [esi + 0x364]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [esi + 0x344]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [esi + 0x36c]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
push 0x80000001
mov ecx, 0x4bb374
mov edx, 1
mov eax, 0x4bb39c
call fcn.004a22f0
test eax, eax
setg dl
mov eax, dword [esi + 0x35c]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4bb1ef
lea eax, [ebp - 0x10]
call fcn.004b4808
lea eax, [ebp - 0x10]
mov edx, 0x4bb3b8
call fcn.0040571c
mov eax, dword [ebp - 0x10]
call fcn.00482b6c
test al, al
jne 0x4bb142
lea eax, [ebp - 0x14]
call fcn.004b491c
lea eax, [ebp - 0x14]
mov edx, 0x4bb3b8
call fcn.0040571c
mov eax, dword [ebp - 0x14]
call fcn.00482b6c
test al, al
jne 0x4bb142
xor edx, edx
jmp 0x4bb144
mov dl, 1
mov eax, dword [esi + 0x344]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov ecx, 0x80000001
mov edx, 0x4bb3d4
mov eax, 0x4bb408
call fcn.004a25b4
mov edx, eax
mov eax, dword [esi + 0x364]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
push 0x80000001
mov ecx, 0x4bb41c
mov edx, 1
mov eax, 0x4bb440
call fcn.004a22f0
dec eax
sete dl
mov eax, dword [esi + 0x36c]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [0x4c4000]
cmp byte [eax], 0
je 0x4bb1c3
mov edx, dword [0x4c40d0]
mov dl, byte [edx]
mov eax, dword [esi + 0x35c]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4bb1ef
push 0x80000001
mov ecx, 0x4bb374
mov edx, 1
mov eax, 0x4bb39c
call fcn.004a22f0
test eax, eax
setg dl
mov eax, dword [esi + 0x35c]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, esi
call fcn.004bac30
mov edx, eax
mov eax, dword [esi + 0x354]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, esi
call fcn.004bae08
mov edx, eax
mov eax, dword [esi + 0x34c]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [0x4c4000]
cmp byte [eax], 0
je 0x4bb24e
mov eax, dword [esi + 0x32c]
xor edx, edx
call fcn.004656cc
mov eax, dword [esi + 0x340]
xor edx, edx
call fcn.004656cc
mov eax, dword [esi + 0x360]
xor edx, edx
call fcn.004656cc
mov eax, dword [0x4c4120]
cmp byte [eax], 0
je 0x4bb265
mov eax, dword [esi + 0x360]
xor edx, edx
call fcn.004656cc
mov eax, dword [0x4c3f54]
cmp byte [eax], 0
je 0x4bb27c
mov eax, dword [esi + 0x368]
xor edx, edx
call fcn.004656cc
mov eax, dword [0x4c4450]
cmp byte [eax], 0
je 0x4bb293
mov eax, dword [esi + 0x340]
xor edx, edx
call fcn.004656cc
mov eax, dword [0x4c3f64]
cmp byte [eax], 0
je 0x4bb2aa
mov eax, dword [esi + 0x358]
xor edx, edx
call fcn.004656cc
mov eax, dword [0x4c42cc]
cmp byte [eax], 0
jne 0x4bb2bd
call fcn.004b7f88
test al, al
jne 0x4bb2ca
mov eax, dword [esi + 0x350]
xor edx, edx
call fcn.004656cc
mov eax, dword [0x4c42cc]
cmp byte [eax], 0
jne 0x4bb2dd
call fcn.004b83fc
test al, al
jne 0x4bb2ea
mov eax, dword [esi + 0x348]
xor edx, edx
call fcn.004656cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4bb324
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4bb363
lea eax, [ebp - 0x18]
call fcn.00404d58
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004054c8
lea eax, [ebp - 0xc]
call fcn.00404d58
lea eax, [ebp - 8]
mov edx, 2
call fcn.004054c8
ret