Function at 0x464084
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
mov esi, eax
xor eax, eax
push ebp
push 0x4643a4
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, 0x4643bc
mov dl, 1
mov eax, dword [0x45c344]
call fcn.0045c3ec
mov ebx, eax
push 0
mov ecx, 0x4643d4
mov edx, 0x4643f0
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
test al, al
jne 0x46411c
push 0
mov cx, word [0x4643f8]
mov dl, 3
mov eax, 0x464404
call fcn.0044ba8c
cmp eax, 2
jne 0x4640f4
mov edx, esi
mov eax, esi
call fcn.00465904
jmp 0x46411c
push 0
mov cx, word [0x4644c8]
mov dl, 2
mov eax, 0x4644d4
call fcn.0044ba8c
push 1
mov ecx, 0x4643d4
mov edx, 0x4643f0
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
push 0
mov ecx, 0x4645b4
mov edx, 0x4645c8
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
mov edx, eax
mov eax, dword [esi + 0x2f8]
mov ecx, dword [eax]
call dword [ecx + 0xbc]
mov eax, dword [esi + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xb8]
mov edx, eax
xor dl, 1
mov eax, dword [esi + 0x2fc]
mov ecx, dword [eax]
call dword [ecx + 0xbc]
mov eax, dword [esi + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xb8]
mov edx, eax
mov eax, dword [esi + 0x330]
call fcn.00439984
push 1
mov ecx, 0x4645e0
mov edx, 0x4645c8
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
mov edx, eax
mov eax, dword [esi + 0x300]
mov ecx, dword [eax]
call dword [ecx + 0xbc]
push 0
mov ecx, 0x4645fc
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov edx, eax
mov eax, dword [esi + 0x308]
call fcn.0044a2dc
push 0x1e
mov ecx, 0x464638
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov dword [0x4698cc], eax
push 0x7530
mov ecx, 0x46465c
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov edx, eax
mov eax, dword [esi + 0x30c]
call fcn.0044a2dc
push 0
mov ecx, 0x46467c
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
mov byte [0x4698c4], al
push 0x3c
mov ecx, 0x46469c
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov dword [0x4698d8], eax
push 1
mov ecx, 0x4646c0
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
mov byte [0x4698c9], al
push 1
mov ecx, 0x4646dc
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
mov byte [0x4698c6], al
push 0
mov ecx, 0x4646fc
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x10]
mov byte [0x4698c7], al
push 0
mov ecx, 0x46471c
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov byte [0x4698ca], al
push 0xbb8
mov ecx, 0x464734
mov edx, 0x46461c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov dword [0x4698d4], eax
xor eax, eax
mov dword [0x4698d0], eax
mov eax, dword [esi + 0x300]
mov edx, dword [eax]
call dword [edx + 0xb8]
test al, al
jne 0x464328
mov eax, dword [esi + 0x2dc]
mov eax, dword [eax + 0x22c]
dec eax
test eax, eax
jle 0x464328
mov dword [ebp - 8], eax
mov dword [ebp - 4], 1
push 0
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
xor edx, edx
mov eax, dword [esi + 0x2dc]
call fcn.004573e4
mov ecx, dword [ebp - 0xc]
mov edx, 0x464750
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 8]
mov edi, eax
lea edx, [ebp - 0xc]
mov eax, edi
call fcn.00407a60
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
mov edx, 2
mov eax, dword [esi + 0x2dc]
call fcn.00457454
inc dword [ebp - 4]
dec dword [ebp - 8]
jne 0x4642d8
mov dl, 1
mov eax, dword [0x45cfc8]
call fcn.0045d108
mov ebx, eax
mov edx, 0x80000002
mov eax, ebx
call fcn.0045d1a0
xor ecx, ecx
mov edx, 0x464764
mov eax, ebx
call fcn.0045d204
lea ecx, [ebp - 0xc]
mov edx, 0x46479c
mov eax, ebx
call fcn.0045d3ec
mov eax, dword [ebp - 0xc]
push eax
lea edx, [ebp - 0x10]
mov eax, dword [0x467ef4]
mov eax, dword [eax]
call fcn.00446f30
mov edx, dword [ebp - 0x10]
pop eax
call fcn.00403c94
sete byte [0x467c08]
mov eax, ebx
call fcn.00402d68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4643ab
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0040392c
ret