406678:	8b cf                	mov    %edi,%ecx
40667a:	e8 91 e9 00 00       	call   0x415010
40667f:	8b 95 bc df ff ff    	mov    -0x2044(%ebp),%edx
406685:	84 c0                	test   %al,%al
406687:	74 2c                	je     0x4066b5
406689:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
40668f:	8b 8f fc 00 00 00    	mov    0xfc(%edi),%ecx
406695:	89 87 f0 00 00 00    	mov    %eax,0xf0(%edi)
40669b:	89 8f f4 00 00 00    	mov    %ecx,0xf4(%edi)
4066a1:	eb 12                	jmp    0x4066b5
4066a3:	c6 87 d1 00 00 00 00 	movb   $0x0,0xd1(%edi)
4066aa:	e9 02 02 00 00       	jmp    0x4068b1
4066af:	8b 95 bc df ff ff    	mov    -0x2044(%ebp),%edx
4066b5:	8b 8d b8 df ff ff    	mov    -0x2048(%ebp),%ecx
4066bb:	80 bf d0 00 00 00 00 	cmpb   $0x0,0xd0(%edi)
4066c2:	74 2b                	je     0x4066ef
4066c4:	8b 37                	mov    (%edi),%esi
4066c6:	6a 00                	push   $0x0
4066c8:	6a 00                	push   $0x0
4066ca:	ff b5 b0 df ff ff    	push   -0x2050(%ebp)
4066d0:	8b 76 18             	mov    0x18(%esi),%esi
4066d3:	ff b5 ac df ff ff    	push   -0x2054(%ebp)
4066d9:	52                   	push   %edx
4066da:	51                   	push   %ecx
4066db:	6a 1e                	push   $0x1e
4066dd:	8b ce                	mov    %esi,%ecx
4066df:	ff 15 3c f2 43 00    	call   *0x43f23c
4066e5:	8b cf                	mov    %edi,%ecx
4066e7:	ff d6                	call   *%esi
4066e9:	8b b5 a8 df ff ff    	mov    -0x2058(%ebp),%esi
4066ef:	33 c0                	xor    %eax,%eax
4066f1:	c7 85 d8 df ff ff 00 	movl   $0x0,-0x2028(%ebp)
4066f8:	00 00 00
4066fb:	c7 85 e8 df ff ff 00 	movl   $0x0,-0x2018(%ebp)
406702:	00 00 00
406705:	c7 85 ec df ff ff 07 	movl   $0x7,-0x2014(%ebp)
40670c:	00 00 00
40670f:	66 89 85 d8 df ff ff 	mov    %ax,-0x2028(%ebp)
406716:	89 45 fc             	mov    %eax,-0x4(%ebp)
406719:	85 f6                	test   %esi,%esi
40671b:	75 08                	jne    0x406725
40671d:	8b 85 b4 df ff ff    	mov    -0x204c(%ebp),%eax
406723:	eb 2f                	jmp    0x406754
406725:	56                   	push   %esi
406726:	6a 00                	push   $0x0
406728:	ff b5 b4 df ff ff    	push   -0x204c(%ebp)
40672e:	8d 85 f0 df ff ff    	lea    -0x2010(%ebp),%eax
406734:	6a ff                	push   $0xffffffff
406736:	68 ff 0f 00 00       	push   $0xfff
40673b:	50                   	push   %eax
40673c:	e8 9f d4 ff ff       	call   0x403be0
406741:	ff 70 04             	push   0x4(%eax)
406744:	ff 30                	push   (%eax)
406746:	e8 3a e0 01 00       	call   0x424785
40674b:	83 c4 20             	add    $0x20,%esp
40674e:	8d 85 f0 df ff ff    	lea    -0x2010(%ebp),%eax
406754:	8d 8d d8 df ff ff    	lea    -0x2028(%ebp),%ecx
40675a:	51                   	push   %ecx
40675b:	50                   	push   %eax
40675c:	ff b5 a4 df ff ff    	push   -0x205c(%ebp)
406762:	8b cf                	mov    %edi,%ecx
406764:	ff b5 a0 df ff ff    	push   -0x2060(%ebp)
40676a:	ff b5 b0 df ff ff    	push   -0x2050(%ebp)
406770:	ff b5 ac df ff ff    	push   -0x2054(%ebp)
406776:	ff b5 bc df ff ff    	push   -0x2044(%ebp)
40677c:	ff b5 b8 df ff ff    	push   -0x2048(%ebp)
406782:	ff 75 08             	push   0x8(%ebp)
406785:	ff 75 30             	push   0x30(%ebp)
406788:	ff 75 2c             	push   0x2c(%ebp)
40678b:	e8 90 f2 ff ff       	call   0x405a20
406790:	83 bf 8c 00 00 00 00 	cmpl   $0x0,0x8c(%edi)
406797:	0f 85 9c 00 00 00    	jne    0x406839
40679d:	c7 85 c0 df ff ff 00 	movl   $0x0,-0x2040(%ebp)
4067a4:	00 00 00
4067a7:	c7 85 d0 df ff ff 00 	movl   $0x0,-0x2030(%ebp)
4067ae:	00 00 00
4067b1:	c7 85 d4 df ff ff 0f 	movl   $0xf,-0x202c(%ebp)
4067b8:	00 00 00
4067bb:	c6 85 c0 df ff ff 00 	movb   $0x0,-0x2040(%ebp)
4067c2:	8d 95 c0 df ff ff    	lea    -0x2040(%ebp),%edx
4067c8:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4067cc:	8d 8d d8 df ff ff    	lea    -0x2028(%ebp),%ecx
4067d2:	e8 e9 db 00 00       	call   0x4143c0
4067d7:	8b 07                	mov    (%edi),%eax
4067d9:	8d 8d c0 df ff ff    	lea    -0x2040(%ebp),%ecx
4067df:	83 bd d4 df ff ff 10 	cmpl   $0x10,-0x202c(%ebp)
4067e6:	0f 43 8d c0 df ff ff 	cmovae -0x2040(%ebp),%ecx
4067ed:	8b 70 1c             	mov    0x1c(%eax),%esi
4067f0:	51                   	push   %ecx
4067f1:	8b ce                	mov    %esi,%ecx
4067f3:	ff 15 3c f2 43 00    	call   *0x43f23c
4067f9:	8b cf                	mov    %edi,%ecx
4067fb:	ff d6                	call   *%esi
4067fd:	8b 8d d4 df ff ff    	mov    -0x202c(%ebp),%ecx
406803:	83 f9 10             	cmp    $0x10,%ecx
406806:	72 57                	jb     0x40685f
406808:	8b 95 c0 df ff ff    	mov    -0x2040(%ebp),%edx
40680e:	41                   	inc    %ecx
40680f:	8b c2                	mov    %edx,%eax
406811:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406817:	72 14                	jb     0x40682d
406819:	8b 50 fc             	mov    -0x4(%eax),%edx
40681c:	83 c1 23             	add    $0x23,%ecx
40681f:	2b c2                	sub    %edx,%eax
406821:	83 c0 fc             	add    $0xfffffffc,%eax
406824:	83 f8 1f             	cmp    $0x1f,%eax
406827:	0f 87 a4 00 00 00    	ja     0x4068d1
40682d:	51                   	push   %ecx
40682e:	52                   	push   %edx
40682f:	e8 da 50 01 00       	call   0x41b90e
406834:	83 c4 08             	add    $0x8,%esp
406837:	eb 26                	jmp    0x40685f
406839:	8b 07                	mov    (%edi),%eax
40683b:	8d 8d d8 df ff ff    	lea    -0x2028(%ebp),%ecx
406841:	83 bd ec df ff ff 08 	cmpl   $0x8,-0x2014(%ebp)
406848:	0f 43 8d d8 df ff ff 	cmovae -0x2028(%ebp),%ecx
40684f:	8b 70 20             	mov    0x20(%eax),%esi
406852:	51                   	push   %ecx
406853:	8b ce                	mov    %esi,%ecx
406855:	ff 15 3c f2 43 00    	call   *0x43f23c
40685b:	8b cf                	mov    %edi,%ecx
40685d:	ff d6                	call   *%esi
40685f:	84 db                	test   %bl,%bl
406861:	74 12                	je     0x406875
406863:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
406869:	85 c0                	test   %eax,%eax
40686b:	74 08                	je     0x406875
40686d:	ff 30                	push   (%eax)
40686f:	ff 15 d4 f0 43 00    	call   *0x43f0d4
406875:	8b 8d ec df ff ff    	mov    -0x2014(%ebp),%ecx
40687b:	83 f9 08             	cmp    $0x8,%ecx
40687e:	72 31                	jb     0x4068b1
406880:	8b 95 d8 df ff ff    	mov    -0x2028(%ebp),%edx
406886:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40688d:	8b c2                	mov    %edx,%eax
40688f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406895:	72 10                	jb     0x4068a7
406897:	8b 50 fc             	mov    -0x4(%eax),%edx
40689a:	83 c1 23             	add    $0x23,%ecx
40689d:	2b c2                	sub    %edx,%eax
40689f:	83 c0 fc             	add    $0xfffffffc,%eax
4068a2:	83 f8 1f             	cmp    $0x1f,%eax
4068a5:	77 2f                	ja     0x4068d6
4068a7:	51                   	push   %ecx
4068a8:	52                   	push   %edx
4068a9:	e8 60 50 01 00       	call   0x41b90e
4068ae:	83 c4 08             	add    $0x8,%esp
4068b1:	b0 01                	mov    $0x1,%al
4068b3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4068b6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4068bd:	59                   	pop    %ecx
4068be:	5f                   	pop    %edi
4068bf:	5e                   	pop    %esi
4068c0:	5b                   	pop    %ebx
4068c1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4068c4:	33 cd                	xor    %ebp,%ecx
4068c6:	e8 05 50 01 00       	call   0x41b8d0
4068cb:	8b e5                	mov    %ebp,%esp
4068cd:	5d                   	pop    %ebp
4068ce:	c2 30 00             	ret    $0x30
4068d1:	e8 a9 a1 01 00       	call   0x420a7f
4068d6:	e8 a4 a1 01 00       	call   0x420a7f
4068db:	cc                   	int3
4068dc:	cc                   	int3
4068dd:	cc                   	int3
4068de:	cc                   	int3
4068df:	cc                   	int3
4068e0:	55                   	push   %ebp
4068e1:	8b ec                	mov    %esp,%ebp
4068e3:	6a ff                	push   $0xffffffff
4068e5:	68 4c d8 43 00       	push   $0x43d84c
4068ea:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4068f0:	50                   	push   %eax
4068f1:	81 ec cc 03 00 00    	sub    $0x3cc,%esp
4068f7:	a1 14 40 45 00       	mov    0x454014,%eax
4068fc:	33 c5                	xor    %ebp,%eax
4068fe:	89 45 f0             	mov    %eax,-0x10(%ebp)
406901:	56                   	push   %esi
406902:	57                   	push   %edi
406903:	50                   	push   %eax
406904:	8d 45 f4             	lea    -0xc(%ebp),%eax
406907:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40690d:	8b f1                	mov    %ecx,%esi
40690f:	33 ff                	xor    %edi,%edi
406911:	0f 57 c0             	xorps  %xmm0,%xmm0
406914:	66 0f 13 85 70 ff ff 	movlpd %xmm0,-0x90(%ebp)
40691b:	ff
40691c:	6a 2c                	push   $0x2c
40691e:	89 bd 58 fc ff ff    	mov    %edi,-0x3a8(%ebp)
406924:	89 bd 70 ff ff ff    	mov    %edi,-0x90(%ebp)
40692a:	89 bd 74 ff ff ff    	mov    %edi,-0x8c(%ebp)
406930:	e8 a9 4f 01 00       	call   0x41b8de
406935:	83 c4 04             	add    $0x4,%esp
406938:	89 00                	mov    %eax,(%eax)
40693a:	89 40 04             	mov    %eax,0x4(%eax)
40693d:	89 40 08             	mov    %eax,0x8(%eax)
406940:	66 c7 40 0c 01 01    	movw   $0x101,0xc(%eax)
406946:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
40694c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40694f:	0f 57 c0             	xorps  %xmm0,%xmm0
406952:	66 0f d6 45 c0       	movq   %xmm0,-0x40(%ebp)
406957:	89 7d c8             	mov    %edi,-0x38(%ebp)
40695a:	89 7d c0             	mov    %edi,-0x40(%ebp)
40695d:	89 7d c4             	mov    %edi,-0x3c(%ebp)
406960:	89 7d c8             	mov    %edi,-0x38(%ebp)
406963:	66 0f d6 45 cc       	movq   %xmm0,-0x34(%ebp)
406968:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40696b:	89 7d cc             	mov    %edi,-0x34(%ebp)
40696e:	89 7d d0             	mov    %edi,-0x30(%ebp)
406971:	89 7d d4             	mov    %edi,-0x2c(%ebp)
406974:	33 c0                	xor    %eax,%eax
406976:	89 7d a8             	mov    %edi,-0x58(%ebp)
406979:	89 7d b8             	mov    %edi,-0x48(%ebp)
40697c:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
406983:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
406987:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
40698d:	89 45 88             	mov    %eax,-0x78(%ebp)
406990:	c7 45 8c 07 00 00 00 	movl   $0x7,-0x74(%ebp)
406997:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
40699e:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
4069a4:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
4069aa:	c7 85 24 ff ff ff 07 	movl   $0x7,-0xdc(%ebp)
4069b1:	00 00 00
4069b4:	66 89 85 10 ff ff ff 	mov    %ax,-0xf0(%ebp)
4069bb:	89 85 c8 fe ff ff    	mov    %eax,-0x138(%ebp)
4069c1:	89 85 d8 fe ff ff    	mov    %eax,-0x128(%ebp)
4069c7:	c7 85 dc fe ff ff 07 	movl   $0x7,-0x124(%ebp)
4069ce:	00 00 00
4069d1:	66 89 85 c8 fe ff ff 	mov    %ax,-0x138(%ebp)
4069d8:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
4069dc:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
4069e2:	50                   	push   %eax
4069e3:	68 2c af 44 00       	push   $0x44af2c
4069e8:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
4069ee:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
4069f4:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
4069fa:	e8 11 bb ff ff       	call   0x402510
4069ff:	83 c6 4c             	add    $0x4c,%esi
406a02:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
406a06:	56                   	push   %esi
406a07:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
406a0d:	e8 ae b8 ff ff       	call   0x4022c0
406a12:	8d 95 c8 fe ff ff    	lea    -0x138(%ebp),%edx
406a18:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
406a1c:	8b ce                	mov    %esi,%ecx
406a1e:	e8 9d e3 00 00       	call   0x414dc0
406a23:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
406a29:	e8 02 e0 00 00       	call   0x414a30
406a2e:	33 f6                	xor    %esi,%esi
406a30:	89 b5 50 fc ff ff    	mov    %esi,-0x3b0(%ebp)
406a36:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
406a3d:	00 00 00
406a40:	6a 00                	push   $0x0
406a42:	68 2c af 44 00       	push   $0x44af2c
406a47:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
406a4d:	c7 85 58 ff ff ff 00 	movl   $0x0,-0xa8(%ebp)
406a54:	00 00 00
406a57:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%ebp)
406a5e:	00 00 00
406a61:	c7 85 6c ff ff ff 00 	movl   $0x0,-0x94(%ebp)
406a68:	00 00 00
406a6b:	e8 a0 ba ff ff       	call   0x402510
406a70:	33 c0                	xor    %eax,%eax
406a72:	c7 45 90 00 00 00 00 	movl   $0x0,-0x70(%ebp)
406a79:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
406a80:	c7 45 a4 07 00 00 00 	movl   $0x7,-0x5c(%ebp)
406a87:	66 89 45 90          	mov    %ax,-0x70(%ebp)
406a8b:	8b d6                	mov    %esi,%edx
406a8d:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
406a91:	8d 4d 90             	lea    -0x70(%ebp),%ecx
406a94:	e8 d7 da 00 00       	call   0x414570
406a99:	8b 4d a0             	mov    -0x60(%ebp),%ecx
406a9c:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
406aa1:	2b c1                	sub    %ecx,%eax
406aa3:	83 f8 01             	cmp    $0x1,%eax
406aa6:	0f 82 14 12 00 00    	jb     0x407cc0
406aac:	83 7d a4 08          	cmpl   $0x8,-0x5c(%ebp)
406ab0:	8d 45 90             	lea    -0x70(%ebp),%eax
406ab3:	51                   	push   %ecx
406ab4:	0f 43 45 90          	cmovae -0x70(%ebp),%eax
406ab8:	50                   	push   %eax
406ab9:	6a 01                	push   $0x1
406abb:	68 08 dc 44 00       	push   $0x44dc08
406ac0:	51                   	push   %ecx
406ac1:	ff b5 4c fc ff ff    	push   -0x3b4(%ebp)
406ac7:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
406acd:	e8 9e 63 00 00       	call   0x40ce70
406ad2:	83 cf 10             	or     $0x10,%edi
406ad5:	89 bd 58 fc ff ff    	mov    %edi,-0x3a8(%ebp)
406adb:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
406ae1:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
406ae5:	50                   	push   %eax
406ae6:	8d 95 f8 fe ff ff    	lea    -0x108(%ebp),%edx
406aec:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406aef:	e8 ec 4d 00 00       	call   0x40b8e0
406af4:	8b f0                	mov    %eax,%esi
406af6:	83 c4 04             	add    $0x4,%esp
406af9:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
406aff:	3b c6                	cmp    %esi,%eax
406b01:	0f 84 81 00 00 00    	je     0x406b88
406b07:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
406b0d:	83 f9 08             	cmp    $0x8,%ecx
406b10:	72 35                	jb     0x406b47
406b12:	8b 95 58 ff ff ff    	mov    -0xa8(%ebp),%edx
406b18:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406b1f:	8b c2                	mov    %edx,%eax
406b21:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406b27:	72 14                	jb     0x406b3d
406b29:	8b 50 fc             	mov    -0x4(%eax),%edx
406b2c:	83 c1 23             	add    $0x23,%ecx
406b2f:	2b c2                	sub    %edx,%eax
406b31:	83 c0 fc             	add    $0xfffffffc,%eax
406b34:	83 f8 1f             	cmp    $0x1f,%eax
406b37:	0f 87 88 11 00 00    	ja     0x407cc5
406b3d:	51                   	push   %ecx
406b3e:	52                   	push   %edx
406b3f:	e8 ca 4d 01 00       	call   0x41b90e
406b44:	83 c4 08             	add    $0x8,%esp
406b47:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%ebp)
406b4e:	00 00 00
406b51:	33 c0                	xor    %eax,%eax
406b53:	c7 85 6c ff ff ff 07 	movl   $0x7,-0x94(%ebp)
406b5a:	00 00 00
406b5d:	66 89 85 58 ff ff ff 	mov    %ax,-0xa8(%ebp)
406b64:	0f 10 06             	movups (%esi),%xmm0
406b67:	0f 11 85 58 ff ff ff 	movups %xmm0,-0xa8(%ebp)
406b6e:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
406b73:	66 0f d6 85 68 ff ff 	movq   %xmm0,-0x98(%ebp)
406b7a:	ff
406b7b:	89 46 10             	mov    %eax,0x10(%esi)
406b7e:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
406b85:	66 89 06             	mov    %ax,(%esi)
406b88:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406b8b:	83 f9 08             	cmp    $0x8,%ecx
406b8e:	72 32                	jb     0x406bc2
406b90:	8b 55 d8             	mov    -0x28(%ebp),%edx
406b93:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406b9a:	8b c2                	mov    %edx,%eax
406b9c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406ba2:	72 14                	jb     0x406bb8
406ba4:	8b 50 fc             	mov    -0x4(%eax),%edx
406ba7:	83 c1 23             	add    $0x23,%ecx
406baa:	2b c2                	sub    %edx,%eax
406bac:	83 c0 fc             	add    $0xfffffffc,%eax
406baf:	83 f8 1f             	cmp    $0x1f,%eax
406bb2:	0f 87 0d 11 00 00    	ja     0x407cc5
406bb8:	51                   	push   %ecx
406bb9:	52                   	push   %edx
406bba:	e8 4f 4d 01 00       	call   0x41b90e
406bbf:	83 c4 08             	add    $0x8,%esp