Function at 0x465ca4
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 ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x465f96
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x467c08], 1
je 0x465cd3
cmp byte [0x4698c7], 1
jne 0x465cfb
push 0
mov cx, word [0x465fa4]
xor edx, edx
mov eax, 0x465fb0
call fcn.0044ba8c
cmp eax, 7
jne 0x465cfb
mov byte [0x467c08], 0
mov byte [0x4698c7], 0
lea eax, [ebp - 8]
mov ebx, dword [esi + 0x304]
mov edx, dword [ebx + 0x1f4]
call fcn.004039a0
mov edx, 0x4660ac
mov eax, ebx
call fcn.0045ba34
mov eax, dword [esi + 0x304]
call fcn.0042aa00
mov ecx, 0x4660d4
mov dl, 1
mov eax, dword [0x45c344]
call fcn.0045c3ec
mov ebx, eax
mov eax, dword [esi + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xb8]
push eax
mov ecx, 0x4660ec
mov edx, 0x466100
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
mov eax, dword [esi + 0x300]
mov edx, dword [eax]
call dword [edx + 0xb8]
push eax
mov ecx, 0x466118
mov edx, 0x466100
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
mov eax, dword [esi + 0x308]
mov eax, dword [eax + 0x24]
push eax
mov ecx, 0x466134
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [esi + 0x30c]
mov eax, dword [eax + 0x24]
push eax
mov ecx, 0x466170
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [0x4698cc]
push eax
mov ecx, 0x466190
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov al, byte [0x4698c4]
push eax
mov ecx, 0x4661b4
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
mov eax, dword [0x4698d8]
push eax
mov ecx, 0x4661d4
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov al, byte [0x4698c9]
push eax
mov ecx, 0x4661f8
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
mov al, byte [0x4698c6]
push eax
mov ecx, 0x466214
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
mov al, byte [0x4698c7]
push eax
mov ecx, 0x466234
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x14]
xor eax, eax
mov al, byte [0x4698ca]
push eax
mov ecx, 0x466254
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [0x4698d4]
push eax
mov ecx, 0x46626c
mov edx, 0x466154
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, 0x466288
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [esi + 0x300]
mov edx, dword [eax]
call dword [edx + 0xb8]
test al, al
jne 0x465ee8
mov eax, dword [esi + 0x2dc]
mov eax, dword [eax + 0x22c]
dec eax
test eax, eax
jle 0x465ee8
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], 1
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 4]
mov edx, 2
mov eax, dword [esi + 0x2dc]
call fcn.004573e4
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
xor edx, edx
mov eax, dword [esi + 0x2dc]
call fcn.004573e4
mov ecx, dword [ebp - 0x14]
mov edx, 0x466288
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 4]
inc dword [ebp - 4]
dec dword [ebp - 0xc]
jne 0x465ea2
mov eax, ebx
call fcn.00402d68
mov dl, 1
mov eax, dword [0x45cfc8]
call fcn.0045d108
mov ebx, eax
mov edx, 0x80000002
mov eax, ebx
call fcn.0045d1a0
mov byte [ebx + 0xc], 0
xor ecx, ecx
mov edx, 0x46629c
mov eax, ebx
call fcn.0045d204
cmp byte [0x467c08], 1
jne 0x465f44
lea edx, [ebp - 0x10]
mov eax, dword [0x467ef4]
mov eax, dword [eax]
call fcn.00446f30
mov ecx, dword [ebp - 0x10]
mov edx, 0x4662d4
mov eax, ebx
call fcn.0045d3c0
jmp 0x465f50
mov edx, 0x4662d4
mov eax, ebx
call fcn.0045d328
mov eax, ebx
call fcn.0045d170
mov eax, ebx
call fcn.00402d68
mov eax, esi
call fcn.00443a3c
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x304]
call fcn.0045ba34
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x465f9d
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0040392c
lea eax, [ebp - 8]
call fcn.00403908
ret