4077fd:	8b 75 0c             	mov    0xc(%ebp),%esi
407800:	6a 04                	push   $0x4
407802:	e8 f6 c1 ff ff       	call   0x4039fd
407807:	59                   	pop    %ecx
407808:	c3                   	ret
407809:	3b df                	cmp    %edi,%ebx
40780b:	75 0d                	jne    0x40781a
40780d:	8b 45 10             	mov    0x10(%ebp),%eax
407810:	3b c7                	cmp    %edi,%eax
407812:	74 06                	je     0x40781a
407814:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40781a:	8b c3                	mov    %ebx,%eax
40781c:	e8 a4 b3 ff ff       	call   0x402bc5
407821:	c3                   	ret
407822:	6a 10                	push   $0x10
407824:	68 88 e8 41 00       	push   $0x41e888
407829:	e8 52 b3 ff ff       	call   0x402b80
40782e:	8b 5d 08             	mov    0x8(%ebp),%ebx
407831:	85 db                	test   %ebx,%ebx
407833:	75 0e                	jne    0x407843
407835:	ff 75 0c             	push   0xc(%ebp)
407838:	e8 fd fd ff ff       	call   0x40763a
40783d:	59                   	pop    %ecx
40783e:	e9 cc 01 00 00       	jmp    0x407a0f
407843:	8b 75 0c             	mov    0xc(%ebp),%esi
407846:	85 f6                	test   %esi,%esi
407848:	75 0c                	jne    0x407856
40784a:	53                   	push   %ebx
40784b:	e8 53 d5 ff ff       	call   0x404da3
407850:	59                   	pop    %ecx
407851:	e9 b7 01 00 00       	jmp    0x407a0d
407856:	83 3d 98 2d de 02 03 	cmpl   $0x3,0x2de2d98
40785d:	0f 85 93 01 00 00    	jne    0x4079f6
407863:	33 ff                	xor    %edi,%edi
407865:	89 7d e4             	mov    %edi,-0x1c(%ebp)
407868:	83 fe e0             	cmp    $0xffffffe0,%esi
40786b:	0f 87 8a 01 00 00    	ja     0x4079fb
407871:	6a 04                	push   $0x4
407873:	e8 5f c2 ff ff       	call   0x403ad7
407878:	59                   	pop    %ecx
407879:	89 7d fc             	mov    %edi,-0x4(%ebp)
40787c:	53                   	push   %ebx
40787d:	e8 18 dd ff ff       	call   0x40559a
407882:	59                   	pop    %ecx
407883:	89 45 e0             	mov    %eax,-0x20(%ebp)
407886:	3b c7                	cmp    %edi,%eax
407888:	0f 84 9e 00 00 00    	je     0x40792c
40788e:	3b 35 80 2d de 02    	cmp    0x2de2d80,%esi
407894:	77 49                	ja     0x4078df
407896:	56                   	push   %esi
407897:	53                   	push   %ebx
407898:	50                   	push   %eax
407899:	e8 fa e1 ff ff       	call   0x405a98
40789e:	83 c4 0c             	add    $0xc,%esp
4078a1:	85 c0                	test   %eax,%eax
4078a3:	74 05                	je     0x4078aa
4078a5:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4078a8:	eb 35                	jmp    0x4078df
4078aa:	56                   	push   %esi
4078ab:	e8 c9 e4 ff ff       	call   0x405d79
4078b0:	59                   	pop    %ecx
4078b1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4078b4:	3b c7                	cmp    %edi,%eax
4078b6:	74 27                	je     0x4078df
4078b8:	8b 43 fc             	mov    -0x4(%ebx),%eax
4078bb:	48                   	dec    %eax
4078bc:	3b c6                	cmp    %esi,%eax
4078be:	72 02                	jb     0x4078c2
4078c0:	8b c6                	mov    %esi,%eax
4078c2:	50                   	push   %eax
4078c3:	53                   	push   %ebx
4078c4:	ff 75 e4             	push   -0x1c(%ebp)
4078c7:	e8 44 d6 ff ff       	call   0x404f10
4078cc:	53                   	push   %ebx
4078cd:	e8 c8 dc ff ff       	call   0x40559a
4078d2:	89 45 e0             	mov    %eax,-0x20(%ebp)
4078d5:	53                   	push   %ebx
4078d6:	50                   	push   %eax
4078d7:	e8 ee dc ff ff       	call   0x4055ca
4078dc:	83 c4 18             	add    $0x18,%esp
4078df:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
4078e2:	75 48                	jne    0x40792c
4078e4:	3b f7                	cmp    %edi,%esi
4078e6:	75 06                	jne    0x4078ee
4078e8:	33 f6                	xor    %esi,%esi
4078ea:	46                   	inc    %esi
4078eb:	89 75 0c             	mov    %esi,0xc(%ebp)
4078ee:	83 c6 0f             	add    $0xf,%esi
4078f1:	83 e6 f0             	and    $0xfffffff0,%esi
4078f4:	89 75 0c             	mov    %esi,0xc(%ebp)
4078f7:	56                   	push   %esi
4078f8:	57                   	push   %edi
4078f9:	ff 35 24 0e 43 00    	push   0x430e24
4078ff:	ff 15 50 d0 41 00    	call   *0x41d050
407905:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407908:	3b c7                	cmp    %edi,%eax
40790a:	74 20                	je     0x40792c
40790c:	8b 43 fc             	mov    -0x4(%ebx),%eax
40790f:	48                   	dec    %eax
407910:	3b c6                	cmp    %esi,%eax
407912:	72 02                	jb     0x407916
407914:	8b c6                	mov    %esi,%eax
407916:	50                   	push   %eax
407917:	53                   	push   %ebx
407918:	ff 75 e4             	push   -0x1c(%ebp)
40791b:	e8 f0 d5 ff ff       	call   0x404f10
407920:	53                   	push   %ebx
407921:	ff 75 e0             	push   -0x20(%ebp)
407924:	e8 a1 dc ff ff       	call   0x4055ca
407929:	83 c4 14             	add    $0x14,%esp
40792c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407933:	e8 2e 00 00 00       	call   0x407966
407938:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
40793c:	75 31                	jne    0x40796f
40793e:	85 f6                	test   %esi,%esi
407940:	75 01                	jne    0x407943
407942:	46                   	inc    %esi
407943:	83 c6 0f             	add    $0xf,%esi
407946:	83 e6 f0             	and    $0xfffffff0,%esi
407949:	89 75 0c             	mov    %esi,0xc(%ebp)
40794c:	56                   	push   %esi
40794d:	53                   	push   %ebx
40794e:	6a 00                	push   $0x0
407950:	ff 35 24 0e 43 00    	push   0x430e24
407956:	ff 15 08 d1 41 00    	call   *0x41d108
40795c:	8b f8                	mov    %eax,%edi
40795e:	eb 12                	jmp    0x407972
407960:	8b 75 0c             	mov    0xc(%ebp),%esi
407963:	8b 5d 08             	mov    0x8(%ebp),%ebx
407966:	6a 04                	push   $0x4
407968:	e8 90 c0 ff ff       	call   0x4039fd
40796d:	59                   	pop    %ecx
40796e:	c3                   	ret
40796f:	8b 7d e4             	mov    -0x1c(%ebp),%edi
407972:	85 ff                	test   %edi,%edi
407974:	0f 85 bf 00 00 00    	jne    0x407a39
40797a:	39 3d 24 10 43 00    	cmp    %edi,0x431024
407980:	74 2c                	je     0x4079ae
407982:	56                   	push   %esi
407983:	e8 43 c8 ff ff       	call   0x4041cb
407988:	59                   	pop    %ecx
407989:	85 c0                	test   %eax,%eax
40798b:	0f 85 d2 fe ff ff    	jne    0x407863
407991:	e8 b6 b4 ff ff       	call   0x402e4c
407996:	39 7d e0             	cmp    %edi,-0x20(%ebp)
407999:	75 6c                	jne    0x407a07
40799b:	8b f0                	mov    %eax,%esi
40799d:	ff 15 58 d0 41 00    	call   *0x41d058
4079a3:	50                   	push   %eax
4079a4:	e8 61 b4 ff ff       	call   0x402e0a
4079a9:	59                   	pop    %ecx
4079aa:	89 06                	mov    %eax,(%esi)
4079ac:	eb 5f                	jmp    0x407a0d
4079ae:	85 ff                	test   %edi,%edi
4079b0:	0f 85 83 00 00 00    	jne    0x407a39
4079b6:	e8 91 b4 ff ff       	call   0x402e4c
4079bb:	39 7d e0             	cmp    %edi,-0x20(%ebp)
4079be:	74 68                	je     0x407a28
4079c0:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4079c6:	eb 71                	jmp    0x407a39
4079c8:	85 f6                	test   %esi,%esi
4079ca:	75 01                	jne    0x4079cd
4079cc:	46                   	inc    %esi
4079cd:	56                   	push   %esi
4079ce:	53                   	push   %ebx
4079cf:	6a 00                	push   $0x0
4079d1:	ff 35 24 0e 43 00    	push   0x430e24
4079d7:	ff 15 08 d1 41 00    	call   *0x41d108
4079dd:	8b f8                	mov    %eax,%edi
4079df:	85 ff                	test   %edi,%edi
4079e1:	75 56                	jne    0x407a39
4079e3:	39 05 24 10 43 00    	cmp    %eax,0x431024
4079e9:	74 34                	je     0x407a1f
4079eb:	56                   	push   %esi
4079ec:	e8 da c7 ff ff       	call   0x4041cb
4079f1:	59                   	pop    %ecx
4079f2:	85 c0                	test   %eax,%eax
4079f4:	74 1f                	je     0x407a15
4079f6:	83 fe e0             	cmp    $0xffffffe0,%esi
4079f9:	76 cd                	jbe    0x4079c8
4079fb:	56                   	push   %esi
4079fc:	e8 ca c7 ff ff       	call   0x4041cb
407a01:	59                   	pop    %ecx
407a02:	e8 45 b4 ff ff       	call   0x402e4c
407a07:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407a0d:	33 c0                	xor    %eax,%eax
407a0f:	e8 b1 b1 ff ff       	call   0x402bc5
407a14:	c3                   	ret
407a15:	e8 32 b4 ff ff       	call   0x402e4c
407a1a:	e9 7c ff ff ff       	jmp    0x40799b
407a1f:	85 ff                	test   %edi,%edi
407a21:	75 16                	jne    0x407a39
407a23:	e8 24 b4 ff ff       	call   0x402e4c
407a28:	8b f0                	mov    %eax,%esi
407a2a:	ff 15 58 d0 41 00    	call   *0x41d058
407a30:	50                   	push   %eax
407a31:	e8 d4 b3 ff ff       	call   0x402e0a
407a36:	89 06                	mov    %eax,(%esi)
407a38:	59                   	pop    %ecx
407a39:	8b c7                	mov    %edi,%eax
407a3b:	eb d2                	jmp    0x407a0f
407a3d:	55                   	push   %ebp
407a3e:	8b ec                	mov    %esp,%ebp
407a40:	83 ec 08             	sub    $0x8,%esp
407a43:	89 7d fc             	mov    %edi,-0x4(%ebp)
407a46:	89 75 f8             	mov    %esi,-0x8(%ebp)
407a49:	8b 75 0c             	mov    0xc(%ebp),%esi
407a4c:	8b 7d 08             	mov    0x8(%ebp),%edi
407a4f:	8b 4d 10             	mov    0x10(%ebp),%ecx
407a52:	c1 e9 07             	shr    $0x7,%ecx
407a55:	eb 06                	jmp    0x407a5d
407a57:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
407a5d:	66 0f 6f 06          	movdqa (%esi),%xmm0
407a61:	66 0f 6f 4e 10       	movdqa 0x10(%esi),%xmm1
407a66:	66 0f 6f 56 20       	movdqa 0x20(%esi),%xmm2
407a6b:	66 0f 6f 5e 30       	movdqa 0x30(%esi),%xmm3
407a70:	66 0f 7f 07          	movdqa %xmm0,(%edi)
407a74:	66 0f 7f 4f 10       	movdqa %xmm1,0x10(%edi)
407a79:	66 0f 7f 57 20       	movdqa %xmm2,0x20(%edi)
407a7e:	66 0f 7f 5f 30       	movdqa %xmm3,0x30(%edi)
407a83:	66 0f 6f 66 40       	movdqa 0x40(%esi),%xmm4
407a88:	66 0f 6f 6e 50       	movdqa 0x50(%esi),%xmm5
407a8d:	66 0f 6f 76 60       	movdqa 0x60(%esi),%xmm6
407a92:	66 0f 6f 7e 70       	movdqa 0x70(%esi),%xmm7
407a97:	66 0f 7f 67 40       	movdqa %xmm4,0x40(%edi)
407a9c:	66 0f 7f 6f 50       	movdqa %xmm5,0x50(%edi)
407aa1:	66 0f 7f 77 60       	movdqa %xmm6,0x60(%edi)
407aa6:	66 0f 7f 7f 70       	movdqa %xmm7,0x70(%edi)
407aab:	8d b6 80 00 00 00    	lea    0x80(%esi),%esi
407ab1:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
407ab7:	49                   	dec    %ecx
407ab8:	75 a3                	jne    0x407a5d
407aba:	8b 75 f8             	mov    -0x8(%ebp),%esi
407abd:	8b 7d fc             	mov    -0x4(%ebp),%edi
407ac0:	8b e5                	mov    %ebp,%esp
407ac2:	5d                   	pop    %ebp
407ac3:	c3                   	ret
407ac4:	55                   	push   %ebp
407ac5:	8b ec                	mov    %esp,%ebp
407ac7:	83 ec 1c             	sub    $0x1c,%esp
407aca:	89 7d f4             	mov    %edi,-0xc(%ebp)
407acd:	89 75 f8             	mov    %esi,-0x8(%ebp)
407ad0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407ad3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407ad6:	8b c3                	mov    %ebx,%eax
407ad8:	99                   	cltd
407ad9:	8b c8                	mov    %eax,%ecx
407adb:	8b 45 08             	mov    0x8(%ebp),%eax
407ade:	33 ca                	xor    %edx,%ecx
407ae0:	2b ca                	sub    %edx,%ecx
407ae2:	83 e1 0f             	and    $0xf,%ecx
407ae5:	33 ca                	xor    %edx,%ecx
407ae7:	2b ca                	sub    %edx,%ecx
407ae9:	99                   	cltd
407aea:	8b f8                	mov    %eax,%edi
407aec:	33 fa                	xor    %edx,%edi
407aee:	2b fa                	sub    %edx,%edi
407af0:	83 e7 0f             	and    $0xf,%edi
407af3:	33 fa                	xor    %edx,%edi
407af5:	2b fa                	sub    %edx,%edi
407af7:	8b d1                	mov    %ecx,%edx
407af9:	0b d7                	or     %edi,%edx
407afb:	75 4a                	jne    0x407b47
407afd:	8b 75 10             	mov    0x10(%ebp),%esi
407b00:	8b ce                	mov    %esi,%ecx
407b02:	83 e1 7f             	and    $0x7f,%ecx
407b05:	89 4d e8             	mov    %ecx,-0x18(%ebp)
407b08:	3b f1                	cmp    %ecx,%esi
407b0a:	74 13                	je     0x407b1f
407b0c:	2b f1                	sub    %ecx,%esi
407b0e:	56                   	push   %esi
407b0f:	53                   	push   %ebx
407b10:	50                   	push   %eax
407b11:	e8 27 ff ff ff       	call   0x407a3d
407b16:	83 c4 0c             	add    $0xc,%esp
407b19:	8b 45 08             	mov    0x8(%ebp),%eax
407b1c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407b1f:	85 c9                	test   %ecx,%ecx
407b21:	74 77                	je     0x407b9a
407b23:	8b 5d 10             	mov    0x10(%ebp),%ebx
407b26:	8b 55 0c             	mov    0xc(%ebp),%edx
407b29:	03 d3                	add    %ebx,%edx
407b2b:	2b d1                	sub    %ecx,%edx
407b2d:	89 55 ec             	mov    %edx,-0x14(%ebp)
407b30:	03 d8                	add    %eax,%ebx
407b32:	2b d9                	sub    %ecx,%ebx
407b34:	89 5d f0             	mov    %ebx,-0x10(%ebp)
407b37:	8b 75 ec             	mov    -0x14(%ebp),%esi
407b3a:	8b 7d f0             	mov    -0x10(%ebp),%edi
407b3d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407b40:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
407b42:	8b 45 08             	mov    0x8(%ebp),%eax
407b45:	eb 53                	jmp    0x407b9a
407b47:	3b cf                	cmp    %edi,%ecx
407b49:	75 35                	jne    0x407b80
407b4b:	f7 d9                	neg    %ecx
407b4d:	83 c1 10             	add    $0x10,%ecx
407b50:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407b53:	8b 75 0c             	mov    0xc(%ebp),%esi
407b56:	8b 7d 08             	mov    0x8(%ebp),%edi
407b59:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407b5c:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
407b5e:	8b 4d 08             	mov    0x8(%ebp),%ecx
407b61:	03 4d e4             	add    -0x1c(%ebp),%ecx
407b64:	8b 55 0c             	mov    0xc(%ebp),%edx
407b67:	03 55 e4             	add    -0x1c(%ebp),%edx
407b6a:	8b 45 10             	mov    0x10(%ebp),%eax
407b6d:	2b 45 e4             	sub    -0x1c(%ebp),%eax
407b70:	50                   	push   %eax
407b71:	52                   	push   %edx
407b72:	51                   	push   %ecx
407b73:	e8 4c ff ff ff       	call   0x407ac4
407b78:	83 c4 0c             	add    $0xc,%esp
407b7b:	8b 45 08             	mov    0x8(%ebp),%eax
407b7e:	eb 1a                	jmp    0x407b9a
407b80:	8b 75 0c             	mov    0xc(%ebp),%esi
407b83:	8b 7d 08             	mov    0x8(%ebp),%edi
407b86:	8b 4d 10             	mov    0x10(%ebp),%ecx
407b89:	8b d1                	mov    %ecx,%edx
407b8b:	c1 e9 02             	shr    $0x2,%ecx
407b8e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
407b90:	8b ca                	mov    %edx,%ecx
407b92:	83 e1 03             	and    $0x3,%ecx
407b95:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
407b97:	8b 45 08             	mov    0x8(%ebp),%eax
407b9a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
407b9d:	8b 75 f8             	mov    -0x8(%ebp),%esi
407ba0:	8b 7d f4             	mov    -0xc(%ebp),%edi
407ba3:	8b e5                	mov    %ebp,%esp
407ba5:	5d                   	pop    %ebp
407ba6:	c3                   	ret
407ba7:	8b ff                	mov    %edi,%edi
407ba9:	55                   	push   %ebp
407baa:	8b ec                	mov    %esp,%ebp
407bac:	56                   	push   %esi
407bad:	8b 75 08             	mov    0x8(%ebp),%esi
407bb0:	85 f6                	test   %esi,%esi
407bb2:	0f 84 81 01 00 00    	je     0x407d39
407bb8:	ff 76 04             	push   0x4(%esi)
407bbb:	e8 e3 d1 ff ff       	call   0x404da3
407bc0:	ff 76 08             	push   0x8(%esi)
407bc3:	e8 db d1 ff ff       	call   0x404da3
407bc8:	ff 76 0c             	push   0xc(%esi)
407bcb:	e8 d3 d1 ff ff       	call   0x404da3
407bd0:	ff 76 10             	push   0x10(%esi)
407bd3:	e8 cb d1 ff ff       	call   0x404da3
407bd8:	ff 76 14             	push   0x14(%esi)
407bdb:	e8 c3 d1 ff ff       	call   0x404da3
407be0:	ff 76 18             	push   0x18(%esi)
407be3:	e8 bb d1 ff ff       	call   0x404da3