Function at 0x46c810
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xd0
mov eax, dword [0x886f80]
xor eax, esp
mov dword [esp + 0xcc], eax
push ebx
mov ebx, dword [esp + 0xdc]
push ebp
push esi
push edi
mov ecx, dword [ebx + 0x18]
mov eax, ecx
mov edi, dword [esp + 0xe4]
cmp eax, 0x120
jg 0x46cfa1
je 0x46cf92
sub eax, 0x21
cmp eax, 0xfb
ja case.0x46d75c.546
movzx eax, byte [eax + 0x46da24]
jmp dword [eax*4 + 0x46d9cc]
lea eax, [ebx + 0x1c]
push eax
call fcn.004079d0
push ebx
movzx ebp, ax
xor esi, esi
call fcn.004092a0
add esp, 8
test eax, eax
je case.0x46c861.187
mov edx, ebp
mov dword [esp + 0x10], edx
nop dword [eax]
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
je 0x46c963
lea ebp, [edi + 0x10]
push esi
push ebp
call fcn.0047b780
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x46d9af
push 3
push str.dx.op.threadId
push ebp
call fcn.0047f5c0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x46d9af
push 0x5d
push ebp
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d9af
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd0]
push 2
push eax
push dword [esp + 0x20]
push ebp
call fcn.00479d50
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x46d9af
push ebp
call fcn.0047cd00
add esp, 4
cmp eax, dword [edi + 0x63bb0]
jne 0x46c931
or dword [edi + 0x28], 1
cmp eax, dword [edi + 0x63ba8]
je 0x46c941
cmp eax, dword [edi + 0x63b9c]
jne 0x46c945
or dword [edi + 0x28], 0x10
cmp eax, dword [edi + 0x63ba4]
jne 0x46c954
or dword [edi + 0x28], 0x8000
push ebp
push esi
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.004748b0
add esp, 0x10
push ebx
inc esi
call fcn.004092a0
add esp, 4
cmp esi, eax
jae case.0x46c861.187
mov edx, dword [esp + 0x10]
jmp 0x46c890
movups xmm0, xmmword [ebx + 0x54]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmovne eax, ecx
push eax
push edi
call fcn.00468330
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x46d9af
movzx eax, byte [ebx + 0x2d]
push 0
shr eax, 3
push eax
push ecx
lea eax, [edi + 0x10]
push eax
call fcn.0047a0d0
add esp, 0x10
test eax, eax
jne 0x46d12c
jmp 0x46d9af
movups xmm0, xmmword [ebx + 0x54]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmovne eax, ecx
push eax
push edi
call fcn.00468330
mov esi, eax
add esp, 8
test esi, esi
je 0x46d9af
push 4
push 0
lea eax, [ebx + 0x64]
push eax
push edi
call fcn.00473740
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x46d9af
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x51989e]
mov eax, dword [ebx + eax*4 + 0x30]
jmp dword [eax*4 + 0x46db20]
movups xmm0, xmmword [ebx + 0x54]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmovne eax, ecx
push eax
push edi
call fcn.00468330
mov esi, eax
add esp, 8
test esi, esi
je 0x46d9af
push 4
push 0
lea eax, [ebx + 0x64]
push eax
push edi
call fcn.00473740
push 4
push 0
lea ecx, [ebx + 0x74]
mov ebp, eax
push ecx
push edi
call fcn.00473740
add esp, 0x20
test eax, eax
je 0x46d9af
push 1
push 5
push 0
push esi
push eax
lea eax, [edi + 0x10]
push ebp
push eax
call fcn.00479eb0
add esp, 0x1c
test eax, eax
jne 0x46d12c
jmp 0x46d9af
push 6
push 0
lea eax, [ebx + 0x54]
push eax
push edi
call fcn.00473740
add esp, 0x10
test eax, eax
je 0x46d9af
push eax
push edi
call fcn.0046b060
add esp, 8
jmp 0x46d9b1
add edi, 0x10
push 1
push edi
call fcn.0047b730
push 0x52
push edi
mov esi, eax
call fcn.0047b780
add esp, 0x10
test eax, eax
je 0x46d9af
push 0
push str.dx.op.discard
push edi
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], esi
call fcn.0047f5c0
add esp, 0xc
test eax, eax
jne 0x46cbc8
jmp 0x46d9af
add edi, 0x10
push 0x61
push edi
call fcn.0047b780
imul ecx, dword [ebx + 0x18], 0x64
mov esi, eax
movzx ecx, byte [ecx + 0x51986f]
push dword [ebx + ecx*4 + 0x30]
push edi
call fcn.0047b820
add esp, 0x10
test esi, esi
je 0x46d9af
test eax, eax
je 0x46d9af
push 0
push str.dx.op.emitStream
push edi
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], esi
call fcn.0047f5c0
add esp, 0xc
test eax, eax
je 0x46d9af
push 2
lea ecx, [esp + 0xd4]
push ecx
push eax
push edi
call fcn.00479d80
add esp, 0x10
jmp 0x46d9b1
add edi, 0x10
push 0x62
push edi
call fcn.0047b780
imul ecx, dword [ebx + 0x18], 0x64
mov esi, eax
movzx ecx, byte [ecx + 0x51986f]
push dword [ebx + ecx*4 + 0x30]
push edi
call fcn.0047b820
add esp, 0x10
test esi, esi
je 0x46d9af
test eax, eax
je 0x46d9af
push 0
push str.dx.op.cutStream
jmp 0x46cba9
imul ecx, ecx, 0x64
movzx eax, byte [ecx + 0x519891]
mov esi, dword [ebx + eax*4 + 0x30]
movzx eax, byte [ecx + 0x519890]
mov edx, dword [ebx + eax*4 + 0x30]
movzx eax, byte [ecx + 0x519892]
mov ecx, dword [ebx + eax*4 + 0x30]
mov eax, dword [edi + 0x14]
test edx, 0x20210
je 0x46cc65
cmp esi, 4
jg 0x46cc58
cmp eax, 5
je 0x46cc65
xor ebx, ebx
cmp ecx, 4
sete bl
add ebx, 2
jmp 0x46cc70
xor ebx, ebx
cmp ecx, 4
sete bl
add ebx, 4
test edx, 0x10000
je 0x46cc80
cmp eax, 5
jne 0x46cc80
or ebx, 8
push 0
add edi, 0x10
push str.dx.op.barrier
push edi
call fcn.0047f5c0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x46d9af
push 0x50
push edi
call fcn.0047b780
mov esi, eax
add esp, 8
test esi, esi
je 0x46d9af
push ebx
push edi
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d9af
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd0]
push 2
push eax
push ebp
push edi
mov dword [esp + 0xe0], esi
call fcn.00479d80
add esp, 0x10
jmp 0x46d9b1
push ebx
push edi
call fcn.0046b710
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046ba40
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046c410
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046bd30
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046c140
add esp, 8
jmp 0x46d9b1
mov eax, dword [edi + 4]
mov esi, 1
cmp dword [eax + 0x14], 2
jne 0x46cdb0
movups xmm0, xmmword [ebx + 0x54]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
lea eax, [esp + 0x88]
push eax
call fcn.004073d0
sub esp, 0x44
mov ecx, esp
movups xmm0, xmmword [eax]
push dword [edi + 8]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ecx + 0x40], xmm0
movq xmm0, qword [eax + 0x50]
movq qword [ecx + 0x50], xmm0
call fcn.004085a0
add esp, 0x5c
test eax, eax
je 0x46cdb0
test dword [eax + 0x18], 0x2000
mov eax, 0
cmovne esi, eax
push 0xb
push esi
lea eax, [ebx + 0x54]
push eax
push edi
call fcn.004735c0
add esp, 0x10
test eax, eax
je 0x46d9af
lea esi, [edi + 0x10]
mov dword [esp + 0x28], eax
push 0x20
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
call fcn.0047ba40
push eax
push esi
call fcn.0047ca50
mov dword [esp + 0x44], eax
xorps xmm0, xmm0
lea eax, [esp + 0x38]
mov dword [esp + 0x48], 0
push eax
push edi
movups xmmword [esp + 0x54], xmm0
mov dword [esp + 0x6c], 0
movq qword [esp + 0x64], xmm0
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x78], 0
movq qword [esp + 0x7c], xmm0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
call fcn.00472ac0
add esp, 0x18
test eax, eax
je 0x46d9af
push 0
push eax
push esi
call fcn.00479f50
push eax
push 0
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.00474850
add esp, 0x1c
mov al, 1
jmp 0x46d9b1
push 2
push 0xdd
push str.dx.op.isHelperLane
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
push 0
push 0x6e
push str.dx.op.waveIsFirstLane
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
lea ebp, [edi + 0x10]
push 0
push str.dx.op.waveActiveBallot
push ebp
call fcn.0047f5c0
push 0x74
push ebp
mov esi, eax
call fcn.0047b780
push 6
push 0
lea ecx, [ebx + 0x54]
mov dword [esp + 0x3c], eax
push ecx
push edi
call fcn.00473740
add esp, 0x24
mov dword [esp + 0x24], eax
test esi, esi
je 0x46d9af
cmp dword [esp + 0x20], 0
je 0x46d9af
test eax, eax
je 0x46d9af
push 2
lea eax, [esp + 0x24]
push eax
push esi
push ebp
call fcn.00479d50
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x46d9af
lea ecx, [ebx + 0x1c]
xor esi, esi
mov dword [esp + 0x10], ecx
push esi
push eax
push ebp
call fcn.00479f50
mov ebx, eax
push ebx
call fcn.0047cd00
add esp, 0x10
cmp eax, dword [edi + 0x63bb0]
jne 0x46cf4f
or dword [edi + 0x28], 1
cmp eax, dword [edi + 0x63ba8]
je 0x46cf5f
cmp eax, dword [edi + 0x63b9c]
jne 0x46cf63
or dword [edi + 0x28], 0x10
cmp eax, dword [edi + 0x63ba4]
jne 0x46cf72
or dword [edi + 0x28], 0x8000
push ebx
push esi
push dword [esp + 0x18]
push edi
call fcn.004748b0
mov eax, dword [esp + 0x28]
inc esi
add esp, 0x10
cmp esi, 4
jb 0x46cf30
mov al, 1
jmp 0x46d9b1
push ebx
push edi
call fcn.0046e200
add esp, 8
jmp 0x46d9b1
cmp eax, 0x21f
jg 0x46d747
je 0x46d738
sub eax, 0x122
cmp eax, 0xf8
ja case.0x46d75c.546
movzx eax, byte [eax + 0x46dba4]
jmp dword [eax*4 + 0x46db44]
lea eax, [ebx + 0x1c]
push eax
call fcn.004079d0
push ebx
movzx ebp, ax
xor esi, esi
call fcn.004092a0
add esp, 8
test eax, eax
je case.0x46c861.187
mov edx, ebp
mov dword [esp + 0x20], edx
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
je 0x46d0c8
lea ebp, [edi + 0x10]
push esi
push ebp
call fcn.0047b780
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x46d9af
push 3
push str.dx.op.threadIdInGroup
push ebp
call fcn.0047f5c0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x46d9af
push 0x5f
push ebp
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d9af
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd0]
push 2
push eax
push dword [esp + 0x20]
push ebp
call fcn.00479d50
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x46d9af
push ebp
call fcn.0047cd00
add esp, 4
cmp eax, dword [edi + 0x63bb0]
jne 0x46d096
or dword [edi + 0x28], 1
cmp eax, dword [edi + 0x63ba8]
je 0x46d0a6
cmp eax, dword [edi + 0x63b9c]
jne 0x46d0aa
or dword [edi + 0x28], 0x10
cmp eax, dword [edi + 0x63ba4]
jne 0x46d0b9
or dword [edi + 0x28], 0x8000
push ebp
push esi
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.004748b0
add esp, 0x10
push ebx
inc esi
call fcn.004092a0
add esp, 4
cmp esi, eax
jae case.0x46c861.187
mov edx, dword [esp + 0x20]
jmp 0x46cff5
push 3
lea esi, [edi + 0x10]
push str.dx.op.flattenedThreadIdInGroup
push esi
call fcn.0047f5c0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x46d9af
push 0x60
push esi
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d9af
push 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push ebp
push esi
call fcn.00479d50
add esp, 0x10
test eax, eax
je 0x46d9af
push eax
push 0
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.00474850
add esp, 0x10
mov al, 1
jmp 0x46d9b1
lea eax, [ebx + 0x1c]
push eax
call fcn.004079d0
push ebx
movzx ebp, ax
xor esi, esi
call fcn.004092a0
add esp, 8
test eax, eax
je case.0x46c861.187
mov edx, ebp
mov dword [esp + 0x20], edx
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
je 0x46d237
lea ebp, [edi + 0x10]
push esi
push ebp
call fcn.0047b780
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x46d9af
push 3
push str.dx.op.groupId
push ebp
call fcn.0047f5c0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x46d9af
push 0x5e
push ebp
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d9af
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd0]
push 2
push eax
push dword [esp + 0x20]
push ebp
call fcn.00479d50
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x46d9af
push ebp
call fcn.0047cd00
add esp, 4
cmp eax, dword [edi + 0x63bb0]
jne 0x46d205
or dword [edi + 0x28], 1
cmp eax, dword [edi + 0x63ba8]
je 0x46d215
cmp eax, dword [edi + 0x63b9c]
jne 0x46d219
or dword [edi + 0x28], 0x10
cmp eax, dword [edi + 0x63ba4]
jne 0x46d228
or dword [edi + 0x28], 0x8000
push ebp
push esi
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.004748b0
add esp, 0x10
push ebx
inc esi
call fcn.004092a0
add esp, 4
cmp esi, eax
jae case.0x46c861.187
mov edx, dword [esp + 0x20]
jmp 0x46d164
push ebx
push edi
call fcn.0046e550
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046e980
add esp, 8
jmp 0x46d9b1
push 2
push 0x6c
push str.dx.op.primitiveID
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
test byte [edi + 0x30], 4
je 0x46d2a6
push 2
push 0x5a
push str.dx.op.sampleIndex
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
lea eax, [edi + 0x10]
push 0
push eax
call fcn.0047b780
push eax
push 0
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.00474850
add esp, 0x18
mov al, 1
jmp 0x46d9b1
mov eax, dword [edi + 0x14]
push 2
sub eax, 2
je 0x46d2e8
push 0x6b
push str.dx.op.outputControlPointID
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
push 0x64
push str.dx.op.gsInstanceID
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
or dword [edi + 0x28], 0x10000
push 2
push 0x8a
push str.dx.op.viewID
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
push 3
lea esi, [edi + 0x10]
push str.dx.op.coverage
push esi
call fcn.0047f5c0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x46d363
push 0x5b
push esi
call fcn.0047b780
add esp, 8
test eax, eax
jne 0x46d34c
xor ebp, ebp
jmp 0x46d363
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push 1
push eax
push ebp
push esi
call fcn.00479d50
add esp, 0x10
mov ebp, eax
test byte [edi + 0x30], 4
je 0x46d3dc
push 3
push str.dx.op.sampleIndex
push esi
call fcn.0047f5c0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x46d3a8
push 0x5a
push esi
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d3a8
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push 1
push eax
push dword [esp + 0x28]
push esi
call fcn.00479d50
add esp, 0x10
push 0
push 0
push eax
lea eax, [edi + 0x10]
push 1
push eax
call fcn.0047b780
add esp, 8
push eax
lea eax, [edi + 0x10]
push 7
push eax
call fcn.00479c30
add esp, 0x14
push eax
push ebp
lea eax, [edi + 0x10]
push 0xa
push eax
call fcn.00479c30
add esp, 0x14
mov ebp, eax
push ebp
call fcn.0047cd00
add esp, 4
cmp eax, dword [edi + 0x63bb0]
jne 0x46d3f1
or dword [edi + 0x28], 1
cmp eax, dword [edi + 0x63ba8]
je 0x46d401
cmp eax, dword [edi + 0x63b9c]
jne 0x46d405
or dword [edi + 0x28], 0x10
cmp eax, dword [edi + 0x63ba4]
jne 0x46d414
or dword [edi + 0x28], 0x8000
push ebp
push 0
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.004748b0
add esp, 0x10
mov al, 1
jmp 0x46d9b1
push ebx
push edi
call fcn.0046e7f0
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046dd00
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.0046ecc0
add esp, 8
jmp 0x46d9b1
push 0
lea ebp, [edi + 0x10]
push str.dx.op.renderTargetGetSamplePosition
push ebp
call fcn.0047f5c0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46d9af
push 0x4c
push ebp
call fcn.0047b780
add esp, 8
test eax, eax
je 0x46d9af
push 0x24
mov dword [esp + 0xd4], eax
lea eax, [ebx + 0x54]
push 0
push eax
push edi
call fcn.00473740
add esp, 0x10
mov dword [esp + 0xd4], eax
test eax, eax
je 0x46d9af
push 2
lea eax, [esp + 0xd4]
push eax
push esi
push ebp
call fcn.00479d50
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
je 0x46d9af
lea eax, [ebx + 0x1c]
xor esi, esi
mov dword [esp + 0x18], eax
nop dword [eax + eax]
push 0
push ecx
mov dword [esp], 0x3f000000
push ebp
call fcn.0047b4e0
add esp, 8
push eax
push esi
push dword [esp + 0x1c]
push ebp
call fcn.00479f50
add esp, 0xc
push eax
push 0
push ebp
call fcn.00479c30
mov ebx, eax
push ebx
call fcn.0047cd00
add esp, 0x18
cmp eax, dword [edi + 0x63bb0]
jne 0x46d522
or dword [edi + 0x28], 1
cmp eax, dword [edi + 0x63ba8]
je 0x46d532
cmp eax, dword [edi + 0x63b9c]
jne 0x46d536
or dword [edi + 0x28], 0x10
cmp eax, dword [edi + 0x63ba4]
jne 0x46d545
or dword [edi + 0x28], 0x8000
push ebx
push esi
push dword [esp + 0x20]
push edi
call fcn.004748b0
inc esi
add esp, 0x10
cmp esi, 2
jb 0x46d4e0
mov al, 1
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
push 0
push 0x70
push str.dx.op.waveGetLaneCount
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
push 0
push 0x6f
push str.dx.op.waveGetLaneIndex
push ebx
push edi
call fcn.0046ec10
add esp, 0x14
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
lea esi, [edi + 0x10]
movzx eax, byte [ebx + 0x2d]
push eax
push 4
call fcn.00473470
push eax
push str.dx.op.waveReadLaneFirst
push esi
call fcn.0047f5c0
push 0x76
push esi
mov ebp, eax
call fcn.0047b780
push 4
push 0
lea ecx, [ebx + 0x54]
mov dword [esp + 0x34], eax
push ecx
push edi
call fcn.00473740
add esp, 0x2c
mov dword [esp + 0x14], eax
test ebp, ebp
je 0x46d9af
cmp dword [esp + 0x10], 0
je 0x46d9af
test eax, eax
je 0x46d9af
push 2
lea eax, [esp + 0x14]
push eax
push ebp
push esi
call fcn.00479d50
add esp, 0x10
test eax, eax
je 0x46d9af
push eax
push 0
lea eax, [ebx + 0x1c]
push eax
push edi
call fcn.00474850
add esp, 0x10
mov al, 1
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
lea ebp, [edi + 0x10]
movzx eax, byte [ebx + 0x2d]
mov esi, dword [ebx + 0x18]
push eax
push 4
call fcn.00473470
push eax
mov ecx, str.dx.op.waveReadLaneAt
cmp esi, 0x1fc
mov eax, str.dx.op.quadReadLaneAt
cmovne eax, ecx
push eax
push ebp
call fcn.0047f5c0
mov dword [esp + 0x24], eax
cmp esi, 0x1fc
mov eax, 0x7a
mov ecx, 0x75
cmove ecx, eax
push ecx
push ebp
call fcn.0047b780
push 4
mov dword [esp + 0xf0], eax
lea eax, [ebx + 0x54]
push 0
push eax
push edi
call fcn.00473740
push 4
mov dword [esp + 0x104], eax
lea eax, [ebx + 0x64]
push 0
push eax
push edi
call fcn.00473740
mov ecx, dword [esp + 0x4c]
add esp, 0x3c
mov dword [esp + 0xd8], eax
test ecx, ecx
je 0x46d9af
cmp dword [esp + 0xd0], 0
je 0x46d9af
cmp dword [esp + 0xd4], 0
je 0x46d9af
test eax, eax
je 0x46d9af
push 3
lea eax, [esp + 0xd4]
push eax
push ecx
push ebp
jmp 0x46d11c
push 0
push ebx
push edi
call fcn.00470090
add esp, 0xc
jmp 0x46d9b1
push 1
push ebx
push edi
call fcn.00470090
add esp, 0xc
jmp 0x46d9b1
push 2
push ebx
push edi
call fcn.00470090
add esp, 0xc
jmp 0x46d9b1
push ebx
push edi
call fcn.00470170
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.004709d0
add esp, 8
jmp 0x46d9b1
sub eax, 0x221
cmp eax, 0x34
ja case.0x46d75c.546
movzx eax, byte [eax + 0x46dcc0]
jmp dword [eax*4 + 0x46dca0]
push ebx
push edi
call fcn.00471330
add esp, 8
jmp 0x46d9b1
movups xmm0, xmmword [ebx + 0x54]
psrldq xmm0, 0xc
movd eax, xmm0
mov esi, dword [eax]
xor eax, eax
cmp dword [esi + 0xc], 1
cmovne esi, eax
push esi
push edi
call fcn.00468330
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x46d9af
mov eax, dword [esi + 0x20]
movsx eax, byte [eax + 4]
push eax
call fcn.00408760
push eax
push 0
lea esi, [ebx + 0x64]
push esi
push edi
call fcn.00473740
movups xmm0, xmmword [esi]
push 0
psrldq xmm0, 0xc
movd ecx, xmm0
movzx ecx, byte [ecx + 0x11]
shr ecx, 3
push ecx
push ebp
push eax
lea eax, [edi + 0x10]
push eax
call fcn.0047a8a0
add esp, 0x28
jmp 0x46d9b1
push ebx
push edi
call fcn.00470c20
add esp, 8
jmp 0x46d9b1
push ebx
push edi
call fcn.00470f90
add esp, 8
jmp 0x46d9b1
movups xmm0, xmmword [ebx + 0x54]
imul eax, ecx, 0x64
psrldq xmm0, 0xc
movzx eax, byte [eax + 0x519874]
mov ebp, dword [ebx + eax*4 + 0x30]
movd eax, xmm0
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
cmp eax, 5
jne 0x46d83e
movups xmm0, xmmword [ebx + 0x54]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00409ef0
add esp, 0x10
add ebp, dword [eax]
lea esi, [edi + 0x10]
push ebp
push esi
call fcn.0047b780
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x46d9af
cmp dword [esp + 0x10], 5
je 0x46d88e
push 0x24
push 0
lea eax, [ebx + 0x54]
push eax
push edi
call fcn.00473740
add esp, 0x10
test eax, eax
je 0x46d9af
push 0
push eax
push ebp
push 0
push esi
call fcn.00479c30
mov ebp, eax
add esp, 0x14
test ebp, ebp
je 0x46d9af
push ebp
push 0
lea esi, [ebx + 0x1c]
push esi
push edi
call fcn.00474850
lea eax, [edi + 0x10]
push 0
push eax
call fcn.0047b780
push eax
push 1
push esi
push edi
call fcn.00474850
add esp, 0x28
mov al, 1
jmp 0x46d9b1
or dword [edi + 0x28], 0x4000
lea ebp, [edi + 0x10]
cmp dword [ebx + 0x18], 0x254
mov eax, 2
mov esi, 0x80
cmove esi, eax
mov eax, dword [ebx + 0x60]
movzx eax, byte [eax + 0x11]
push eax
push esi
call fcn.00473470
push eax
push str.dx.op.waveActiveAllEqual
push ebp
call fcn.0047f5c0
push 0x73
push ebp
mov dword [esp + 0x2c], eax
call fcn.0047b780
push esi
push 0
lea ecx, [ebx + 0x54]
mov dword [esp + 0x3c], eax
push ecx
push edi
call fcn.00473740
add esp, 0x2c
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x46d9af
cmp dword [esp + 0x18], 0
je 0x46d9af
test eax, eax
je 0x46d9af
push 2
lea eax, [esp + 0x1c]
push eax
push ecx
push ebp
jmp 0x46d11c
or dword [edi + 0x28], 0x4000
lea ebp, [edi + 0x10]
mov esi, dword [ebx + 0x18]
mov ecx, str.dx.op.waveAllTrue
cmp esi, 0x252
mov eax, str.dx.op.waveAnyTrue
push 0
cmovne eax, ecx
push eax
push ebp
call fcn.0047f5c0
xor ecx, ecx
mov dword [esp + 0x1c], eax
cmp esi, 0x252
setne cl
add ecx, 0x71
push ecx
push ebp
call fcn.0047b780
push 6
mov dword [esp + 0x30], eax
lea eax, [ebx + 0x54]
push 0
push eax
push edi
call fcn.00473740
add esp, 0x24
jmp 0x46d912
push ebx
push str.Unimplemented_intrinsic_instruction
push dword [edi + 0x643d4]
call fcn.00473cf0
add esp, 0xc
xor al, al
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e5b77
add esp, 0xd0
ret