__int64 __fastcall drawbox(
int
a1,
int
a2,
int
a3,
int
a4, __int64 a5, ID3D11DeviceContext
*
ctx, __int64
buffer
, __int64 layout, __int64 vs, __int64 ps)
{
__int64 v10;
/
/
rdi
ID3D11DeviceContext
*
ctx_1;
/
/
r14
unsigned
int
rgba;
/
/
ebx
int
v17;
/
/
ecx
float
y_top_off;
/
/
xmm9_4
float
y_bottom_off;
/
/
xmm11_4
float
x_left_off;
/
/
xmm7_4
float
x_right_off;
/
/
xmm10_4
Vertex
*
vtx_buffer;
/
/
rcx
float
f255;
/
/
xmm0_4
float
mid;
/
/
xmm8_4
float
x_left;
/
/
xmm6_4
float
y_top;
/
/
xmm3_4
float
x_right;
/
/
xmm1_4
float
y_bottom;
/
/
xmm8_4
float
v29;
/
/
xmm7_4
float
v30;
/
/
xmm5_4
float
v31;
/
/
xmm4_4
float
v32;
/
/
xmm2_4
ID3D11DeviceContextVtbl
*
v33;
/
/
rax
D3D11_MAPPED_SUBRESOURCE v35;
/
/
[rsp
+
20h
] [rbp
-
C8h] BYREF
char v36[
8
];
/
/
[rsp
+
30h
] [rbp
-
B8h] BYREF
float
v37;
/
/
[rsp
+
38h
] [rbp
-
B0h]
float
v38;
/
/
[rsp
+
3Ch
] [rbp
-
ACh]
__int64 v39;
/
/
[rsp
+
C8h] [rbp
-
20h
]
int
v40;
/
/
[rsp
+
F8h] [rbp
+
10h
] BYREF
int
v41;
/
/
[rsp
+
100h
] [rbp
+
18h
] BYREF
__int64 v42;
/
/
[rsp
+
108h
] [rbp
+
20h
] BYREF
v39
=
v10;
ctx_1
=
ctx;
v40
=
1
;
rgba
=
a5
+
(a3 ^ (a1
+
a2))
%
256
-
a4
%
256
;
((void (__fastcall
*
)(ID3D11DeviceContext
*
,
int
*
, char
*
))ctx
-
>lpVtbl
-
>RSGetViewports)(ctx, &v40, v36);
v17
=
(a3 ^ (a2
*
a1))
%
256
-
(a4 >>
8
)
%
256
;
y_top_off
=
(
float
)(v38
-
(
float
)(
2
*
(v17
+
a2)
-
1
))
/
v38;
y_bottom_off
=
(
float
)(v38
-
(
float
)(
2
*
a2
+
99
))
/
v38;
x_left_off
=
(
float
)((
float
)(
2
*
(v17
+
a1)
-
1
)
-
v37)
/
v37;
x_right_off
=
(
float
)((
float
)(
2
*
a1
+
99
)
-
v37)
/
v37;
((void (__fastcall
*
)(ID3D11DeviceContext
*
, __int64, _QWORD, __int64, _DWORD, D3D11_MAPPED_SUBRESOURCE
*
))ctx_1
-
>lpVtbl
-
>
Map
)(
ctx_1,
buffer
,
0i64
,
4i64
,
0
,
&v35);
vtx_buffer
=
(Vertex
*
)v35.pData;
LODWORD(a5)
=
0x437F0000
;
/
/
255.0
*
((
float
*
)v35.pData
+
2
)
=
(
float
)
0
;
f255
=
*
(
float
*
)&a5;
mid
=
(
float
)((a3 ^ (a2
+
a1
*
(a2
+
1
)))
%
256
-
(a4 >>
16
)
%
256
);
x_left
=
mid
+
x_left_off;
y_top
=
mid
+
y_top_off;
vtx_buffer
-
>x
=
mid
+
x_left_off;
x_right
=
mid
+
x_right_off;
vtx_buffer
-
>y
=
mid
+
y_top_off;
y_bottom
=
mid
+
y_bottom_off;
v29
=
(
float
)BYTE2(rgba)
/
f255;
v30
=
(
float
)(unsigned __int8)(rgba >>
12
)
/
f255;
v31
=
(
float
)(unsigned __int8)rgba
/
f255;
vtx_buffer
-
>r
=
v29;
vtx_buffer
-
>g
=
v30;
v32
=
(
float
)HIBYTE(rgba)
/
f255;
vtx_buffer
-
>a
=
v32;
vtx_buffer[
1
].z
=
(
float
)
0
;
vtx_buffer[
1
].a
=
v32;
vtx_buffer[
2
].z
=
(
float
)
0
;
vtx_buffer[
2
].a
=
v32;
vtx_buffer[
3
].a
=
v32;
vtx_buffer
-
>b
=
v31;
vtx_buffer[
1
].x
=
x_right;
vtx_buffer[
1
].y
=
y_top;
vtx_buffer[
1
].r
=
v29;
vtx_buffer[
1
].g
=
v30;
vtx_buffer[
1
].b
=
v31;
vtx_buffer[
2
].x
=
x_left;
vtx_buffer[
2
].y
=
y_bottom;
vtx_buffer[
2
].r
=
v29;
vtx_buffer[
2
].g
=
v30;
vtx_buffer[
2
].b
=
v31;
vtx_buffer[
3
].x
=
x_right;
vtx_buffer[
3
].y
=
y_bottom;
vtx_buffer[
3
].r
=
v29;
vtx_buffer[
3
].g
=
v30;
vtx_buffer[
3
].b
=
v31;
vtx_buffer[
3
].z
=
(
float
)
0
;
((void (__fastcall
*
)(ID3D11DeviceContext
*
, __int64, _QWORD))ctx_1
-
>lpVtbl
-
>Unmap)(ctx_1,
buffer
,
0i64
);
v33
=
ctx_1
-
>lpVtbl;
LODWORD(v42)
=
28
;
v41
=
0
;
((void (__fastcall
*
)(ID3D11DeviceContext
*
, _QWORD, __int64, __int64
*
, __int64
*
,
int
*
))v33
-
>IASetVertexBuffers)(
ctx_1,
0i64
,
1i64
,
&
buffer
,
&v42,
&v41);
((void (__fastcall
*
)(ID3D11DeviceContext
*
, __int64))ctx_1
-
>lpVtbl
-
>IASetPrimitiveTopology)(ctx_1,
5i64
);
/
/
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
((void (__fastcall
*
)(ID3D11DeviceContext
*
, __int64))ctx_1
-
>lpVtbl
-
>IASetInputLayout)(ctx_1, layout);
((void (__fastcall
*
)(ID3D11DeviceContext
*
, __int64, _QWORD, _QWORD))ctx_1
-
>lpVtbl
-
>VSSetShader)(
ctx_1,
vs,
0i64
,
0i64
);
((void (__fastcall
*
)(ID3D11DeviceContext
*
, __int64, _QWORD, _QWORD))ctx_1
-
>lpVtbl
-
>PSSetShader)(
ctx_1,
ps,
0i64
,
0i64
);
((void (__fastcall
*
)(ID3D11DeviceContext
*
, _QWORD, _QWORD, _QWORD))ctx_1
-
>lpVtbl
-
>GSSetShader)(
ctx_1,
0i64
,
0i64
,
0i64
);
return
((__int64 (__fastcall
*
)(ID3D11DeviceContext
*
, __int64))ctx_1
-
>lpVtbl
-
>Draw)(ctx_1,
4i64
);
}