Function at 0x447440
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x69f473
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x76f950]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov eax, dword [0x76f950]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
cmp byte [0x77a6b6], 0
jne 0x4478ca
mov byte [0x77a6b6], 1
mov dword [esp + 0x2c], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x4474cd
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push eax
push esi
mov dword [esp + 0x24], 1
call dword [sym.imp.KERNEL32.dll_GetProcessAffinityMask]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x78], esi
xor edx, edx
xor eax, eax
mov byte [esp + 0x17], 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
jmp 0x4474f0
mov ebx, 1
mov ecx, eax
shl ebx, cl
test dword [esp + 0x2c], ebx
je 0x447655
push 0x18
call fcn.006341f8
mov edi, eax
add esp, 4
mov dword [esp + 0x30], edi
mov byte [esp + 0x78], 1
test edi, edi
je 0x447555
push ecx
mov ecx, edi
call fcn.004e7a50
mov byte [esp + 0x78], 2
push ebx
push dword [edi + 8]
mov dword [edi], vtable.tTVPCPUCheckThread.0
mov byte [edi + 0x14], 1
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
lea ecx, [ecx]
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 1
jg 0x447540
mov byte [esp + 0x78], 1
jmp 0x447557
xor edi, edi
mov byte [esp + 0x78], 0
push 0xffffffffffffffff
push dword [edi + 8]
mov byte [edi + 4], 1
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [edi]
mov bl, byte [edi + 0x14]
push 1
mov ecx, edi
call dword [eax]
test bl, bl
je 0x447720
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x24]
call fcn.00446d40
mov byte [esp + 0x78], 5
push 0x6e6f8c
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.00406d10
mov edi, eax
mov byte [esp + 0x78], 6
cmp dword [edi], 0
je 0x4475e4
test esi, esi
je 0x4475c3
cmp dword [esi], 0
je 0x4475c3
lea ecx, [esp + 0x1c]
call fcn.004db0b0
mov esi, dword [esp + 0x1c]
mov eax, dword [edi]
test eax, eax
jne 0x4475cd
xor edx, edx
jmp 0x4475d7
mov edx, dword [eax + 4]
test edx, edx
jne 0x4475d7
lea edx, [eax + 8]
mov ecx, esi
call fcn.004dfa30
mov esi, eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x78], 5
mov eax, dword [esp + 0x28]
test eax, eax
je 0x447603
mov ecx, dword [eax]
test ecx, ecx
jne 0x447600
mov ecx, eax
call fcn.004df580
jmp 0x447603
dec ecx
mov dword [eax], ecx
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x447622
mov ecx, dword [eax]
test ecx, ecx
jne 0x44761f
mov ecx, eax
call fcn.004df580
jmp 0x447622
dec ecx
mov dword [eax], ecx
cmp byte [esp + 0x17], 0
mov eax, dword [0x76f010]
je 0x447642
mov edx, eax
and edx, 0xffff0000
mov dword [0x77a6f8], eax
mov byte [esp + 0x17], 0
jmp 0x44764d
mov edx, dword [esp + 0x18]
and eax, 0xffff0000
and edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edx
inc eax
mov dword [esp + 0x20], eax
cmp eax, 0x20
jl 0x4474f0
movzx eax, word [0x77a6f8]
or eax, edx
mov edx, str._cpummx
mov ecx, 0x20000
mov dword [0x77a6f8], eax
call fcn.00447330
mov edx, str._cpu3dn
mov ecx, 0x40000
call fcn.00447330
mov edx, str._cpusse
mov ecx, 0x80000
call fcn.00447330
mov edx, str._cpucmov
mov ecx, 0x100000
call fcn.00447330
mov edx, str._cpue3dn
mov ecx, 0x200000
call fcn.00447330
mov edx, str._cpuemmx
mov ecx, 0x400000
call fcn.00447330
mov edx, str._cpusse2
mov ecx, 0x800000
call fcn.00447330
mov edx, dword [0x77a6f8]
test edx, edx
jne 0x447834
mov eax, dword [0x7899a8]
mov edx, dword [0x7899a4]
test eax, eax
cmovne edx, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
call fcn.00452570
add esp, 4
mov byte [esp + 0x78], 7
mov eax, dword [eax]
test eax, eax
je 0x447787
mov edx, dword [eax + 4]
test edx, edx
jne 0x44778c
lea edx, [eax + 8]
jmp 0x44778c
push str.CPU_check_failure
lea ecx, [esp + 0x54]
call fcn.0040ac00
mov byte [esp + 0x78], 3
xor eax, eax
push 0xffffffffffffffff
push eax
mov word [esp + 0x40], ax
lea eax, [esp + 0x58]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x40], vtable.Exception.0
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
call fcn.0040ad70
mov byte [esp + 0x78], 3
push 0x74ba60
lea eax, [esp + 0x38]
push eax
call fcn.0063b5bb
mov edx, 0x6f4744
xor eax, eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], 0
mov word [esp + 0x50], ax
cmp word [edx], ax
jne 0x4477bc
xor ecx, ecx
jmp 0x4477d0
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4477c1
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.0040ae70
mov byte [esp + 0x78], 8
xor eax, eax
push 0xffffffffffffffff
push eax
mov word [esp + 0x40], ax
lea eax, [esp + 0x58]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x40], vtable.Exception.0
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
call fcn.0040ad70
mov byte [esp + 0x78], 8
push 0x74ba60
lea eax, [esp + 0x38]
push eax
call fcn.0063b5bb
lea ecx, [esp + 0x28]
call fcn.004469a0
mov byte [esp + 0x78], 0xa
mov ecx, dword [0x78945c]
mov edx, dword [0x789458]
test ecx, ecx
cmovne edx, ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00452570
add esp, 4
mov byte [esp + 0x78], 0xb
mov dl, 1
mov ecx, eax
call fcn.004e14a0
mov byte [esp + 0x78], 0xa
mov eax, dword [esp + 0x24]
test eax, eax
je 0x44788d
mov ecx, dword [eax]
test ecx, ecx
jne 0x44788a
mov ecx, eax
call fcn.004df580
jmp 0x44788d
dec ecx
mov dword [eax], ecx
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4478ac
mov ecx, dword [eax]
test ecx, ecx
jne 0x4478a9
mov ecx, eax
call fcn.004df580
jmp 0x4478ac
dec ecx
mov dword [eax], ecx
mov dword [esp + 0x78], 0xffffffff
test esi, esi
je 0x4478ca
mov eax, dword [esi]
test eax, eax
jne 0x4478c7
mov ecx, esi
call fcn.004df580
jmp 0x4478ca
dec eax
mov dword [esi], eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00633732
mov esp, ebp
pop ebp
ret