Function at 0x4cd638
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 0x4cda48
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4cd9e0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4db1ac]
cmp byte [eax], 1
je 0x4cd678
mov eax, dword [0x4db1ac]
cmp byte [eax], 2
jne 0x4cd688
mov eax, dword [0x4dab7c]
mov byte [eax], 0
mov eax, dword [0x4daebc]
mov byte [eax], 1
lea eax, [ebp - 8]
call fcn.004c51f4
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3b0]
call fcn.0049450c
mov eax, dword [0x4dac20]
cmp byte [eax], 0
jne 0x4cd6ad
call fcn.004bacd0
mov eax, dword [0x4daba0]
cmp byte [eax], 0
jne 0x4cd6bc
call fcn.004b7570
lea eax, [ebp - 4]
call fcn.00405984
mov eax, dword [esi + 0x39c]
mov edx, dword [eax]
call dword [edx + 0xe8]
mov edi, 0x1d
mov ebx, dword [0x4dab48]
mov eax, dword [esi + 0x39c]
call fcn.004962e8
mov edx, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xc]
lea edx, [ebx + 0xc]
call fcn.004053e0
mov eax, dword [ebp - 0xc]
mov edx, dword [0x4dafd0]
mov edx, dword [edx]
call fcn.004055a4
jne 0x4cd716
lea eax, [ebp - 4]
mov edx, dword [ebx]
call fcn.004059e8
add ebx, 0x24
dec edi
jne 0x4cd6dd
mov eax, dword [ebp - 4]
xor edx, edx
call fcn.00405ca0
jbe 0x4cd749
mov ebx, dword [esi + 0x39c]
mov eax, ebx
call fcn.004962e8
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 + 0xe0]
call fcn.004bfb20
mov eax, dword [0x4dabfc]
cmp byte [eax], 0
je 0x4cd7c3
mov eax, dword [0x4dad68]
cmp byte [eax], 0
jne 0x4cd772
mov eax, dword [esi + 0x3dc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [esi + 0x3bc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [esi + 0x3e4]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xdc]
push 0x80000001
mov ecx, 0x4cda60
mov edx, 1
mov eax, 0x4cda88
call fcn.004ae2c4
test eax, eax
setg dl
mov eax, dword [esi + 0x3d4]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
jmp 0x4cd8b7
lea eax, [ebp - 0x10]
call fcn.004c4da0
lea eax, [ebp - 0x10]
mov edx, 0x4cdaa4
call fcn.00405b88
mov eax, dword [ebp - 0x10]
call fcn.00477cbc
test al, al
jne 0x4cd809
lea eax, [ebp - 0x14]
call fcn.004c4eb4
lea eax, [ebp - 0x14]
mov edx, 0x4cdaa4
call fcn.00405b88
mov eax, dword [ebp - 0x14]
call fcn.00477cbc
test al, al
jne 0x4cd809
xor edx, edx
jmp 0x4cd80b
mov dl, 1
mov eax, dword [esi + 0x3bc]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov ecx, 0x80000001
mov edx, 0x4cdac0
mov eax, 0x4cdaf4
call fcn.004ae590
mov edx, eax
mov eax, dword [esi + 0x3dc]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
push 0x80000001
mov ecx, 0x4cdb08
mov edx, 1
mov eax, 0x4cdb2c
call fcn.004ae2c4
dec eax
sete dl
mov eax, dword [esi + 0x3e4]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [0x4dac3c]
cmp byte [eax], 0
je 0x4cd88b
mov edx, dword [0x4dad18]
movzx edx, byte [edx]
mov eax, dword [esi + 0x3d4]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
jmp 0x4cd8b7
push 0x80000001
mov ecx, 0x4cda60
mov edx, 1
mov eax, 0x4cda88
call fcn.004ae2c4
test eax, eax
setg dl
mov eax, dword [esi + 0x3d4]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, esi
call fcn.004cd2c0
mov edx, eax
mov eax, dword [esi + 0x3cc]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, esi
call fcn.004cd4ac
mov edx, eax
mov eax, dword [esi + 0x3c4]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [0x4dac3c]
cmp byte [eax], 0
je 0x4cd916
mov eax, dword [esi + 0x3a4]
xor edx, edx
call fcn.0044f718
mov eax, dword [esi + 0x3b8]
xor edx, edx
call fcn.0044f718
mov eax, dword [esi + 0x3d8]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4dad68]
cmp byte [eax], 0
je 0x4cd92d
mov eax, dword [esi + 0x3d8]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4dab7c]
cmp byte [eax], 0
je 0x4cd944
mov eax, dword [esi + 0x3e0]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4db0f4]
cmp byte [eax], 0
je 0x4cd95b
mov eax, dword [esi + 0x3b8]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4dae7c]
cmp byte [eax], 0
je 0x4cd97f
mov eax, dword [esi + 0x36c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [esi + 0x36c]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4dab8c]
cmp byte [eax], 0
je 0x4cd996
mov eax, dword [esi + 0x3d0]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4daf40]
cmp byte [eax], 0
jne 0x4cd9a9
call fcn.004b6598
test al, al
jne 0x4cd9b6
mov eax, dword [esi + 0x3c8]
xor edx, edx
call fcn.0044f718
mov eax, dword [0x4daf40]
cmp byte [eax], 0
jne 0x4cd9c9
call fcn.004b6a10
test al, al
jne 0x4cd9d6
mov eax, dword [esi + 0x3c0]
xor edx, edx
call fcn.0044f718
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cda10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cda4f
lea eax, [ebp - 0x18]
call fcn.0040517c
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0040599c
lea eax, [ebp - 0xc]
call fcn.0040517c
lea eax, [ebp - 8]
mov edx, 2
call fcn.0040599c
ret