Function at 0x476470
Capabilities:
Inspect section memory permissions
Reference processor manufacturer constants

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x53db50
push 0x4a7900
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x545100]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
push 0x50
push 0
lea eax, [ebp - 0x74]
push eax
call fcn.004a8c90
add esp, 0xc
mov dword [ebp - 4], 0
mov byte [ebp - 0x82], 0
mov edx, 0x200000
pushfd
pushfd
pop eax
xor eax, edx
push eax
popfd
pushfd
pop ecx
xor eax, ecx
and eax, edx
jne 0x4764ea
mov byte [ebp - 0x82], 1
popfd
cmp byte [ebp - 0x82], 0
je 0x4765a0
lea edi, [ebp - 0x74]
xor eax, eax
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
lea edi, [ebp - 0x64]
mov eax, 1
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
lea edi, [ebp - 0x34]
mov eax, 0x80000000
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
cmp dword [ebp - 0x34], 0x80000001
jb 0x47656a
lea edi, [ebp - 0x54]
mov eax, 0x80000001
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
lea edi, [ebp - 0x44]
mov eax, 7
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
jmp 0x4765a0
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x58]
test al, 1
je 0x4765bd
mov edi, 1
mov dword [ebp - 0x7c], edi
xor edx, edx
mov dword [ebp - 0x78], edx
jmp 0x4765c3
mov edx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov dword [ebp - 0x80], edx
test eax, 0x800000
je 0x4765d9
or edi, 2
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x2000000
je 0x4765ec
or edi, 4
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x4000000
je 0x4765ff
or edi, 8
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x5c]
test al, 1
je 0x476612
or edi, 0x10
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x200
je 0x476625
or edi, 0x20
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x80000
je 0x476638
or edi, 0x40
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x100000
je 0x47664e
or edi, 0x80
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x800000
je 0x476664
or edi, 0x8000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x2000000
je 0x47667a
or edi, 0x100
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test al, 2
je 0x47668d
or edi, 0x200
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x10000000
je 0x4766a3
or edi, 0x400
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x40000000
je 0x4766b9
or edi, 0x20000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x40]
test al, 0x20
je 0x4766cf
or edi, 0x1000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test al, 8
je 0x4766e2
or edi, 0x2000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x100
je 0x4766f8
or edi, 0x4000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x200
je 0x47670e
mov dword [ebp - 0x7c], edi
or edx, 0x100
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x10000
je 0x476724
or edi, 0x100000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x20000
je 0x47673a
or edi, 0x400000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x40000
je 0x47674d
mov dword [ebp - 0x7c], edi
or edx, 8
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x80000
je 0x476763
or edi, 0x10000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x200000
je 0x476779
or edi, 0x8000000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x10000000
je 0x47678f
or edi, 0x2000000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x20000000
je 0x4767a5
or edi, 0x40000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, 0x40000000
je 0x4767bb
or edi, 0x200000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test eax, eax
jns 0x4767ce
or edi, 0x800000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x3c]
test al, 2
je 0x4767e4
or edi, 0x1000000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
test al, 0x40
je 0x4767f7
or edi, 0x4000000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov esi, dword [ebp - 0x64]
shr esi, 8
and esi, 0xff00f
mov ecx, dword [ebp - 0x64]
shr ecx, 4
and ecx, 0xf00f
mov eax, dword [ebp - 0x70]
cmp eax, 0x6f677948
ja 0x476917
je 0x4768f9
cmp eax, 0x68532020
je 0x4768d8
cmp eax, 0x68747541
jne 0x476a92
mov ebx, dword [ebp - 0x6c]
cmp ebx, 0x444d4163
jne 0x476af7
cmp dword [ebp - 0x68], 0x69746e65
jne 0x476af7
cmp esi, 5
jb 0x476866
jne 0x476872
cmp ecx, 6
jb 0x476866
cmp ecx, 0xa
jne 0x476872
mov dword [ebp - 0x7c], edi
or edx, 1
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, edi
and eax, 0x400
or eax, 0
je 0x476896
test dword [ebp - 0x4c], 0x800
je 0x476896
or edi, 0x800
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
cmp esi, 0x700f
jb 0x476af7
mov eax, edi
and eax, 0x200
or eax, 0
je 0x4768bd
or edx, 0x400
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, edi
and eax, 0x80
or eax, 0
je 0x476af7
or edx, 0x800
jmp 0x476aee
mov ebx, dword [ebp - 0x6c]
cmp ebx, 0x20206961
jne 0x476af7
cmp dword [ebp - 0x68], 0x68676e61
jne 0x476af7
jmp 0x476ac3
mov ebx, dword [ebp - 0x6c]
cmp ebx, 0x656e6975
jne 0x476af7
cmp dword [ebp - 0x68], 0x6e65476e
jne 0x476af7
jmp 0x4768a2
cmp eax, 0x746e6543
je 0x476a97
cmp eax, 0x756e6547
jne 0x476a92
mov ebx, dword [ebp - 0x6c]
mov eax, ebx
and eax, 0xfffffffe
cmp eax, 0x6c65746e
jne 0x476af7
cmp dword [ebp - 0x68], 0x49656e69
jne 0x476af7
mov dword [ebp - 0x7c], edi
or edx, 4
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
cmp esi, 6
jae 0x476966
or edx, 1
jmp 0x476a4c
jne 0x476a55
cmp ecx, 0x100c
je 0x476a49
cmp ecx, 0x2006
je 0x476a49
cmp ecx, 0x2007
je 0x476a49
cmp ecx, 0x3005
je 0x476a49
cmp ecx, 0x3006
je 0x476a49
cmp ecx, 0x3007
je 0x476a44
cmp ecx, 0x400a
je 0x476a44
cmp ecx, 0x400c
je 0x476a44
cmp ecx, 0x400d
je 0x476a44
cmp ecx, 0x500c
je 0x476a55
cmp ecx, 0x500f
je 0x476a55
cmp ecx, 0x700a
je 0x476a55
cmp ecx, 0x200a
je 0x476a3c
cmp ecx, 0x200d
je 0x476a3c
cmp ecx, 0x300a
je 0x476a3c
cmp ecx, 0x300e
je 0x476a3c
cmp ecx, 0x400f
je 0x476a3c
cmp ecx, 0x300c
je 0x476a28
cmp ecx, 0x300d
je 0x476a28
cmp ecx, 0x300f
jb 0x476a55
mov eax, edi
and eax, 0x200
or eax, 0
je 0x476a55
or edx, 0x400
jmp 0x476a4c
or edx, 0x200
jmp 0x476a4c
or edx, 2
jmp 0x476a4c
or edx, 3
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, edi
and eax, 0x20
or eax, 0
je 0x4768bd
cmp ecx, 0x1006
je 0x4768bd
cmp ecx, 0xf
je 0x4768bd
mov ecx, edx
and ecx, 2
xor eax, eax
or eax, ecx
jne 0x4768bd
or edx, 0x1000
jmp 0x4768b4
mov ebx, dword [ebp - 0x6c]
jmp 0x476af7
mov ebx, dword [ebp - 0x6c]
cmp ebx, 0x736c7561
jne 0x476af7
cmp dword [ebp - 0x68], 0x48727561
jne 0x476af7
cmp esi, 6
jb 0x476ab7
jne 0x476ac3
cmp ecx, 0xf
jae 0x476ac3
mov dword [ebp - 0x7c], edi
or edx, 1
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov eax, edi
and eax, 0x20
or eax, 0
je 0x476adc
or edx, 0x1000
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x80], edx
mov eax, edi
and eax, 0x200
or eax, 0
je 0x476af7
or edx, 0x400
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edx
mov dword [0x54cb4c], ebx
mov eax, dword [ebp - 0x64]
mov dword [0x54cb48], eax
mov eax, dword [ebp - 0x70]
mov dword [0x54cb24], eax
mov eax, dword [ebp - 0x68]
mov dword [0x54cb28], eax
mov dword [0x54cb2c], ebx
mov byte [0x54cb30], 0
cmp dword [ebp - 0x34], 0x80000004
jb 0x476ba0
mov eax, 0x80000002
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [0x54caf0], eax
mov dword [0x54caf4], esi
mov dword [0x54caf8], ecx
mov dword [0x54cafc], edx
mov eax, 0x80000003
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [0x54cb00], eax
mov dword [0x54cb04], esi
mov dword [0x54cb08], ecx
mov dword [0x54cb0c], edx
mov eax, 0x80000004
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [0x54cb10], eax
mov dword [0x54cb14], esi
mov dword [0x54cb18], ecx
mov dword [0x54cb1c], edx
mov byte [0x54cb20], 0
jmp 0x476ba7
mov byte [0x54caf0], 0
mov byte [0x54cb34], 0
mov byte [0x54cb31], 0
test dword [ebp - 0x5c], 0x80000000
je 0x476c38
mov eax, 0x40000000
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
lea ebx, [ebp - 0x94]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
cmp dword [ebp - 0x94], 0x40000007
jb 0x476c0f
cmp dword [ebp - 0x90], 0x7263694d
jne 0x476c0f
cmp dword [ebp - 0x8c], 0x666f736f
jne 0x476c0f
mov eax, dword [ebp - 0x88]
cmp eax, 0x76482074
je 0x476c38
jmp 0x476c15
mov eax, dword [ebp - 0x88]
mov byte [0x54cb31], 1
movq xmm0, qword [ebp - 0x90]
movq qword [0x54cb34], xmm0
mov dword [0x54cb3c], eax
mov byte [0x54cb40], 0
mov dword [ebp - 4], 1
mov eax, edi
and eax, 2
or eax, 0
je 0x476ca7
mov dword [ebp - 4], 2
call fcn.004083d0
test al, al
jne 0x476c70
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov dword [ebp - 4], 1
jmp 0x476c9a
mov esi, dword [ebp - 0x80]
mov dword [ebp - 4], 1
jmp 0x476c9a
mov eax, edi
or eax, esi
jne 0x476caa
call fcn.00408400
jmp 0x476caa
mov esi, dword [ebp - 0x80]
mov eax, edi
and eax, 8
or eax, 0
je 0x476ce0
mov eax, edi
and eax, 4
or eax, 0
jne 0x476cc9
and edi, 0xfffffff7
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476ce0
call fcn.00408390
test al, al
jne 0x476ce0
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x10
or eax, 0
je 0x476cfd
mov eax, edi
and eax, 8
or eax, 0
jne 0x476cfd
and edi, 0xffffffef
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x20
or eax, 0
je 0x476d33
mov eax, edi
and eax, 0x10
or eax, 0
jne 0x476d1c
and edi, 0xffffffdf
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476d33
call fcn.00408350
test al, al
jne 0x476d33
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x40
or eax, 0
je 0x476d69
mov eax, edi
and eax, 0x20
or eax, 0
jne 0x476d52
and edi, 0xffffffbf
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476d69
call fcn.00408300
test al, al
jne 0x476d69
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x80
or eax, 0
je 0x476daa
mov eax, edi
and eax, 0x40
or eax, 0
jne 0x476d93
and edi, 0xffffff7f
mov dword [ebp - 0x7c], edi
and esi, 0xfffff7ff
mov dword [ebp - 0x78], esi
jmp 0x476daa
call fcn.004082d0
test al, al
jne 0x476daa
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x8000
or eax, 0
je 0x476dd5
mov eax, edi
and eax, 0x10
or eax, 0
je 0x476dc9
call fcn.004082b0
test al, al
jne 0x476dd5
and edi, 0xffff7fff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x200
or eax, 0
je 0x476e08
mov eax, edi
and eax, 0x80
or eax, 0
je 0x476df6
call fcn.00408210
test al, al
jne 0x476e08
and edi, 0xfffffdff
mov dword [ebp - 0x7c], edi
and esi, 0xfffffbff
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x100
or eax, 0
je 0x476e35
mov eax, edi
and eax, 0x80
or eax, 0
je 0x476e29
call fcn.00408250
test al, al
jne 0x476e35
and edi, 0xfffffeff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x400
or eax, 0
je 0x476eea
mov eax, edi
and eax, 0x80
or eax, 0
jne 0x476e62
and edi, 0xfffffbff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476eea
test dword [ebp - 0x5c], 0x8000000
jne 0x476e79
and edi, 0xffefebff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476eea
xor bl, bl
mov byte [ebp - 0x83], bl
mov dword [ebp - 4], 3
call fcn.004080a0
movzx ecx, bl
test al, al
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 0x83], cl
mov dword [ebp - 4], eax
jmp 0x476ec1
test cl, cl
jne 0x476ed3
and edi, 0xffffebff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476eea
call fcn.00408190
test al, al
jne 0x476eea
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x800
or eax, 0
je 0x476f27
mov eax, edi
and eax, 0x400
or eax, 0
jne 0x476f10
and edi, 0xfffff7ff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476f27
call fcn.004081d0
test al, al
jne 0x476f27
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x2000
or eax, 0
je 0x476f64
mov eax, edi
and eax, 0x400
or eax, 0
jne 0x476f4d
and edi, 0xffffdfff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476f64
call fcn.00408100
test al, al
jne 0x476f64
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x4000
or eax, 0
je 0x476fa3
mov eax, edi
and eax, 0x2400
cmp eax, 0x2400
jne 0x476f97
call fcn.00408130
test al, al
jne 0x476fa3
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
jmp 0x476fa3
and edi, 0xffffbfff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x10000
or eax, 0
je 0x476fe0
mov eax, edi
and eax, 0x4000
or eax, 0
jne 0x476fc9
and edi, 0xfffeffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x476fe0
call fcn.00408160
test al, al
jne 0x476fe0
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x20000
or eax, 0
je 0x47701c
mov dword [ebp - 4], 4
call fcn.00408410
jmp 0x477015
mov dword [ebp - 4], 1
mov ebx, 1
mov ecx, esi
and ecx, 8
xor eax, eax
or eax, ecx
je 0x47707c
mov eax, edi
and eax, 0x20000
or eax, 0
jne 0x477043
mov dword [ebp - 0x7c], edi
and esi, 0xfffffff7
mov dword [ebp - 0x78], esi
jmp 0x47707c
mov dword [ebp - 4], 5
call fcn.00408420
mov dword [ebp - 4], 1
jmp 0x47707c
mov eax, edi
and eax, 0x1000
or eax, 0
je 0x4770bb
mov eax, edi
and eax, 0x6400
cmp eax, 0x6400
jne 0x4770af
call fcn.004080b0
test al, al
jne 0x4770bb
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
jmp 0x4770bb
and edi, 0xffffefff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x40000
or eax, 0
je 0x4770f6
mov eax, edi
and eax, 0x40
or eax, 0
jne 0x4770df
and edi, 0xfffbffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
jmp 0x4770f6
call fcn.00408430
test al, al
jne 0x4770f6
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov eax, edi
and eax, 0x100000
or eax, 0
je 0x477181
mov eax, edi
and eax, 0x1000
or eax, 0
jne 0x477116
and edi, 0xffefffff
jmp 0x47717b
mov byte [ebp - 0x81], 0
mov dword [ebp - 4], 6
call fcn.00408490
movzx ecx, byte [ebp - 0x81]
test al, al
cmovne ecx, ebx
mov byte [ebp - 0x81], cl
mov dword [ebp - 4], 1
jmp 0x477160
test cl, cl
jne 0x47716c
and edi, 0xffefffff
jmp 0x47717b
call fcn.004084b0
test al, al
jne 0x477181
and edi, 0xf00fffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x200000
or eax, 0
je 0x4771b6
mov eax, edi
and eax, 0x100000
or eax, 0
jne 0x4771a1
and edi, 0xffdfffff
jmp 0x4771b0
call fcn.00408510
test al, al
jne 0x4771b6
and edi, 0xf00fffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x400000
or eax, 0
je 0x4771eb
mov eax, edi
and eax, 0x100000
or eax, 0
jne 0x4771d6
and edi, 0xffbfffff
jmp 0x4771e5
call fcn.00408580
test al, al
jne 0x4771eb
and edi, 0xf00fffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x800000
or eax, 0
je 0x477220
mov eax, edi
and eax, 0x100000
or eax, 0
jne 0x47720b
and edi, 0xff7fffff
jmp 0x47721a
call fcn.004085e0
test al, al
jne 0x477220
and edi, 0xf00fffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x2000000
or eax, 0
je 0x477255
mov eax, edi
and eax, 0x100000
or eax, 0
jne 0x477240
and edi, 0xfdffffff
jmp 0x47724f
call fcn.00408640
test al, al
jne 0x477255
and edi, 0xf00fffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov eax, edi
and eax, 0x1000000
or eax, 0
je 0x477297
mov eax, edi
and eax, 0x100000
or eax, 0
jne 0x477282
and edi, 0xfeffffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 4], 0xfffffffe
jmp 0x4772be
call fcn.00408680
test al, al
jne 0x477297
and edi, 0xf00fffff
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 4], 0xfffffffe
jmp 0x4772be
mov eax, edi
and eax, 4
or eax, 0
je 0x4772d4
lea ecx, [ebp - 0x64]
call fcn.00476200
or edi, eax
or esi, edx
mov dword [0x54cb58], edi
mov dword [0x54cb5c], esi
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.004a5e3b
mov esp, ebp
pop ebp
ret