444881:	8b ec                	mov    %esp,%ebp
444883:	83 ec 1c             	sub    $0x1c,%esp
444886:	53                   	push   %ebx
444887:	56                   	push   %esi
444888:	8b 75 08             	mov    0x8(%ebp),%esi
44488b:	57                   	push   %edi
44488c:	8b f9                	mov    %ecx,%edi
44488e:	8b 5f 04             	mov    0x4(%edi),%ebx
444891:	8b 43 08             	mov    0x8(%ebx),%eax
444894:	89 45 fc             	mov    %eax,-0x4(%ebp)
444897:	85 f6                	test   %esi,%esi
444899:	78 47                	js     0x4448e2
44489b:	3b f0                	cmp    %eax,%esi
44489d:	75 4c                	jne    0x4448eb
44489f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4448a2:	6a 0f                	push   $0xf
4448a4:	e8 3b 8d fc ff       	call   0x40d5e4
4448a9:	84 c0                	test   %al,%al
4448ab:	74 22                	je     0x4448cf
4448ad:	8b 45 0c             	mov    0xc(%ebp),%eax
4448b0:	83 78 0c 0f          	cmpl   $0xf,0xc(%eax)
4448b4:	75 04                	jne    0x4448ba
4448b6:	8b 00                	mov    (%eax),%eax
4448b8:	eb 02                	jmp    0x4448bc
4448ba:	33 c0                	xor    %eax,%eax
4448bc:	8b 40 0c             	mov    0xc(%eax),%eax
4448bf:	3b 47 0c             	cmp    0xc(%edi),%eax
4448c2:	75 0b                	jne    0x4448cf
4448c4:	e8 17 ff ff ff       	call   0x4447e0
4448c9:	8b 4f 04             	mov    0x4(%edi),%ecx
4448cc:	50                   	push   %eax
4448cd:	eb 05                	jmp    0x4448d4
4448cf:	ff 75 0c             	push   0xc(%ebp)
4448d2:	8b cb                	mov    %ebx,%ecx
4448d4:	e8 fd 79 fd ff       	call   0x41c2d6
4448d9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4448dc:	8b 07                	mov    (%edi),%eax
4448de:	41                   	inc    %ecx
4448df:	89 48 04             	mov    %ecx,0x4(%eax)
4448e2:	8b c6                	mov    %esi,%eax
4448e4:	5f                   	pop    %edi
4448e5:	5e                   	pop    %esi
4448e6:	5b                   	pop    %ebx
4448e7:	c9                   	leave
4448e8:	c2 08 00             	ret    $0x8
4448eb:	7d 3e                	jge    0x44492b
4448ed:	8b 43 04             	mov    0x4(%ebx),%eax
4448f0:	33 c9                	xor    %ecx,%ecx
4448f2:	39 0c b0             	cmp    %ecx,(%eax,%esi,4)
4448f5:	75 21                	jne    0x444918
4448f7:	8d 45 e8             	lea    -0x18(%ebp),%eax
4448fa:	50                   	push   %eax
4448fb:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4448fe:	89 4d f0             	mov    %ecx,-0x10(%ebp)
444901:	56                   	push   %esi
444902:	8b cb                	mov    %ebx,%ecx
444904:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
44490b:	e8 a0 00 00 00       	call   0x4449b0
444910:	8d 4d e8             	lea    -0x18(%ebp),%ecx
444913:	e8 08 e3 fc ff       	call   0x412c20
444918:	8b 47 04             	mov    0x4(%edi),%eax
44491b:	ff 75 0c             	push   0xc(%ebp)
44491e:	8b 48 04             	mov    0x4(%eax),%ecx
444921:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
444924:	e8 85 93 fc ff       	call   0x40dcae
444929:	eb b7                	jmp    0x4448e2
44492b:	83 c8 ff             	or     $0xffffffff,%eax
44492e:	eb b4                	jmp    0x4448e4
444930:	55                   	push   %ebp
444931:	8b ec                	mov    %esp,%ebp
444933:	56                   	push   %esi
444934:	57                   	push   %edi
444935:	8b 7d 08             	mov    0x8(%ebp),%edi
444938:	8b f1                	mov    %ecx,%esi
44493a:	3b 7e 08             	cmp    0x8(%esi),%edi
44493d:	76 6b                	jbe    0x4449aa
44493f:	6a 08                	push   $0x8
444941:	58                   	pop    %eax
444942:	3b f8                	cmp    %eax,%edi
444944:	72 02                	jb     0x444948
444946:	8b c7                	mov    %edi,%eax
444948:	53                   	push   %ebx
444949:	40                   	inc    %eax
44494a:	33 c9                	xor    %ecx,%ecx
44494c:	6a 04                	push   $0x4
44494e:	5a                   	pop    %edx
44494f:	89 46 0c             	mov    %eax,0xc(%esi)
444952:	f7 e2                	mul    %edx
444954:	0f 90 c1             	seto   %cl
444957:	f7 d9                	neg    %ecx
444959:	0b c8                	or     %eax,%ecx
44495b:	51                   	push   %ecx
44495c:	e8 89 ab fd ff       	call   0x41f4ea
444961:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
444965:	59                   	pop    %ecx
444966:	8b d8                	mov    %eax,%ebx
444968:	74 1f                	je     0x444989
44496a:	8b 46 08             	mov    0x8(%esi),%eax
44496d:	85 c0                	test   %eax,%eax
44496f:	74 18                	je     0x444989
444971:	c1 e0 02             	shl    $0x2,%eax
444974:	50                   	push   %eax
444975:	ff 76 04             	push   0x4(%esi)
444978:	53                   	push   %ebx
444979:	e8 02 a5 fd ff       	call   0x41ee80
44497e:	ff 76 04             	push   0x4(%esi)
444981:	e8 d8 ab fd ff       	call   0x41f55e
444986:	83 c4 10             	add    $0x10,%esp
444989:	8b 4e 08             	mov    0x8(%esi),%ecx
44498c:	8b 46 0c             	mov    0xc(%esi),%eax
44498f:	2b c1                	sub    %ecx,%eax
444991:	c1 e0 02             	shl    $0x2,%eax
444994:	50                   	push   %eax
444995:	8d 04 8b             	lea    (%ebx,%ecx,4),%eax
444998:	6a 00                	push   $0x0
44499a:	50                   	push   %eax
44499b:	e8 b0 c3 fd ff       	call   0x420d50
4449a0:	83 c4 0c             	add    $0xc,%esp
4449a3:	89 5e 04             	mov    %ebx,0x4(%esi)
4449a6:	89 7e 08             	mov    %edi,0x8(%esi)
4449a9:	5b                   	pop    %ebx
4449aa:	5f                   	pop    %edi
4449ab:	5e                   	pop    %esi
4449ac:	5d                   	pop    %ebp
4449ad:	c2 04 00             	ret    $0x4
4449b0:	55                   	push   %ebp
4449b1:	8b ec                	mov    %esp,%ebp
4449b3:	53                   	push   %ebx
4449b4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4449b7:	56                   	push   %esi
4449b8:	57                   	push   %edi
4449b9:	8b f9                	mov    %ecx,%edi
4449bb:	8b 47 04             	mov    0x4(%edi),%eax
4449be:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
4449c1:	85 c9                	test   %ecx,%ecx
4449c3:	74 06                	je     0x4449cb
4449c5:	51                   	push   %ecx
4449c6:	e8 26 ae ff ff       	call   0x43f7f1
4449cb:	6a 10                	push   $0x10
4449cd:	e8 18 ab fd ff       	call   0x41f4ea
4449d2:	8b f0                	mov    %eax,%esi
4449d4:	59                   	pop    %ecx
4449d5:	85 f6                	test   %esi,%esi
4449d7:	74 10                	je     0x4449e9
4449d9:	ff 75 0c             	push   0xc(%ebp)
4449dc:	83 66 08 00          	andl   $0x0,0x8(%esi)
4449e0:	8b ce                	mov    %esi,%ecx
4449e2:	e8 39 cd fc ff       	call   0x411720
4449e7:	eb 02                	jmp    0x4449eb
4449e9:	33 f6                	xor    %esi,%esi
4449eb:	8b 47 04             	mov    0x4(%edi),%eax
4449ee:	5f                   	pop    %edi
4449ef:	89 34 98             	mov    %esi,(%eax,%ebx,4)
4449f2:	5e                   	pop    %esi
4449f3:	5b                   	pop    %ebx
4449f4:	5d                   	pop    %ebp
4449f5:	c2 08 00             	ret    $0x8
4449f8:	83 c1 04             	add    $0x4,%ecx
4449fb:	e9 37 81 fc ff       	jmp    0x40cb37
444a00:	56                   	push   %esi
444a01:	8b f1                	mov    %ecx,%esi
444a03:	8d 4e 04             	lea    0x4(%esi),%ecx
444a06:	e8 2c 81 fc ff       	call   0x40cb37
444a0b:	56                   	push   %esi
444a0c:	e8 4d ab fd ff       	call   0x41f55e
444a11:	59                   	pop    %ecx
444a12:	8b c6                	mov    %esi,%eax
444a14:	5e                   	pop    %esi
444a15:	c2 04 00             	ret    $0x4
444a18:	55                   	push   %ebp
444a19:	8b ec                	mov    %esp,%ebp
444a1b:	51                   	push   %ecx
444a1c:	53                   	push   %ebx
444a1d:	56                   	push   %esi
444a1e:	57                   	push   %edi
444a1f:	6a 14                	push   $0x14
444a21:	8b d9                	mov    %ecx,%ebx
444a23:	e8 c2 aa fd ff       	call   0x41f4ea
444a28:	8b f8                	mov    %eax,%edi
444a2a:	59                   	pop    %ecx
444a2b:	85 ff                	test   %edi,%edi
444a2d:	74 0a                	je     0x444a39
444a2f:	8d 4f 04             	lea    0x4(%edi),%ecx
444a32:	e8 c0 8d fc ff       	call   0x40d7f7
444a37:	eb 02                	jmp    0x444a3b
444a39:	33 ff                	xor    %edi,%edi
444a3b:	8b 75 08             	mov    0x8(%ebp),%esi
444a3e:	8d 4f 04             	lea    0x4(%edi),%ecx
444a41:	8b 84 b3 b4 01 00 00 	mov    0x1b4(%ebx,%esi,4),%eax
444a48:	83 c0 08             	add    $0x8,%eax
444a4b:	50                   	push   %eax
444a4c:	89 7d fc             	mov    %edi,-0x4(%ebp)
444a4f:	e8 99 24 fc ff       	call   0x406eed
444a54:	8d 45 fc             	lea    -0x4(%ebp),%eax
444a57:	50                   	push   %eax
444a58:	8d 8b 8c 00 00 00    	lea    0x8c(%ebx),%ecx
444a5e:	89 37                	mov    %esi,(%edi)
444a60:	e8 3c 9e 02 00       	call   0x46e8a1
444a65:	5f                   	pop    %edi
444a66:	5e                   	pop    %esi
444a67:	5b                   	pop    %ebx
444a68:	c9                   	leave
444a69:	c2 04 00             	ret    $0x4
444a6c:	55                   	push   %ebp
444a6d:	8b ec                	mov    %esp,%ebp
444a6f:	51                   	push   %ecx
444a70:	53                   	push   %ebx
444a71:	56                   	push   %esi
444a72:	57                   	push   %edi
444a73:	6a 14                	push   $0x14
444a75:	8b d9                	mov    %ecx,%ebx
444a77:	e8 6e aa fd ff       	call   0x41f4ea
444a7c:	8b f8                	mov    %eax,%edi
444a7e:	59                   	pop    %ecx
444a7f:	85 ff                	test   %edi,%edi
444a81:	74 0a                	je     0x444a8d
444a83:	8d 4f 04             	lea    0x4(%edi),%ecx
444a86:	e8 6c 8d fc ff       	call   0x40d7f7
444a8b:	eb 02                	jmp    0x444a8f
444a8d:	33 ff                	xor    %edi,%edi
444a8f:	8b 75 08             	mov    0x8(%ebp),%esi
444a92:	8b c6                	mov    %esi,%eax
444a94:	c1 e0 04             	shl    $0x4,%eax
444a97:	05 84 01 00 00       	add    $0x184,%eax
444a9c:	03 c3                	add    %ebx,%eax
444a9e:	50                   	push   %eax
444a9f:	8d 4f 04             	lea    0x4(%edi),%ecx
444aa2:	89 7d fc             	mov    %edi,-0x4(%ebp)
444aa5:	e8 43 24 fc ff       	call   0x406eed
444aaa:	8d 45 fc             	lea    -0x4(%ebp),%eax
444aad:	50                   	push   %eax
444aae:	8d 8b 8c 00 00 00    	lea    0x8c(%ebx),%ecx
444ab4:	89 37                	mov    %esi,(%edi)
444ab6:	e8 e6 9d 02 00       	call   0x46e8a1
444abb:	5f                   	pop    %edi
444abc:	5e                   	pop    %esi
444abd:	5b                   	pop    %ebx
444abe:	c9                   	leave
444abf:	c2 04 00             	ret    $0x4
444ac2:	55                   	push   %ebp
444ac3:	8b ec                	mov    %esp,%ebp
444ac5:	83 ec 38             	sub    $0x38,%esp
444ac8:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
444acc:	53                   	push   %ebx
444acd:	56                   	push   %esi
444ace:	57                   	push   %edi
444acf:	8b f1                	mov    %ecx,%esi
444ad1:	74 17                	je     0x444aea
444ad3:	83 7d 10 07          	cmpl   $0x7,0x10(%ebp)
444ad7:	0f 8c 81 01 00 00    	jl     0x444c5e
444add:	81 7d 10 07 02 00 00 	cmpl   $0x207,0x10(%ebp)
444ae4:	0f 8d 74 01 00 00    	jge    0x444c5e
444aea:	e8 4a 02 00 00       	call   0x444d39
444aef:	8b f8                	mov    %eax,%edi
444af1:	83 ff ff             	cmp    $0xffffffff,%edi
444af4:	0f 84 64 01 00 00    	je     0x444c5e
444afa:	8b 9c be b4 01 00 00 	mov    0x1b4(%esi,%edi,4),%ebx
444b01:	6a 2c                	push   $0x2c
444b03:	8d 45 cc             	lea    -0x34(%ebp),%eax
444b06:	6a 00                	push   $0x0
444b08:	50                   	push   %eax
444b09:	c7 45 c8 30 00 00 00 	movl   $0x30,-0x38(%ebp)
444b10:	e8 3b c2 fd ff       	call   0x420d50
444b15:	83 c4 0c             	add    $0xc,%esp
444b18:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
444b1c:	75 06                	jne    0x444b24
444b1e:	8b 06                	mov    (%esi),%eax
444b20:	89 03                	mov    %eax,(%ebx)
444b22:	eb 65                	jmp    0x444b89
444b24:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
444b28:	8d 45 f8             	lea    -0x8(%ebp),%eax
444b2b:	50                   	push   %eax
444b2c:	ff 75 10             	push   0x10(%ebp)
444b2f:	8b ce                	mov    %esi,%ecx
444b31:	e8 d8 07 00 00       	call   0x44530e
444b36:	84 c0                	test   %al,%al
444b38:	0f 84 18 01 00 00    	je     0x444c56
444b3e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
444b41:	c7 45 cc 04 00 00 00 	movl   $0x4,-0x34(%ebp)
444b48:	8b 84 8e b4 01 00 00 	mov    0x1b4(%esi,%ecx,4),%eax
444b4f:	8d 55 c8             	lea    -0x38(%ebp),%edx
444b52:	8b 00                	mov    (%eax),%eax
444b54:	52                   	push   %edx
444b55:	6a 00                	push   $0x0
444b57:	51                   	push   %ecx
444b58:	50                   	push   %eax
444b59:	89 03                	mov    %eax,(%ebx)
444b5b:	ff 15 bc d5 48 00    	call   *0x48d5bc
444b61:	85 c0                	test   %eax,%eax
444b63:	0f 84 ed 00 00 00    	je     0x444c56
444b69:	8b 45 dc             	mov    -0x24(%ebp),%eax
444b6c:	89 03                	mov    %eax,(%ebx)
444b6e:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
444b72:	0f 84 de 00 00 00    	je     0x444c56
444b78:	ff 75 dc             	push   -0x24(%ebp)
444b7b:	ff 15 9c d5 48 00    	call   *0x48d59c
444b81:	85 c0                	test   %eax,%eax
444b83:	0f 84 cd 00 00 00    	je     0x444c56
444b89:	0f bf 45 08          	movswl 0x8(%ebp),%eax
444b8d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
444b90:	33 d2                	xor    %edx,%edx
444b92:	88 53 05             	mov    %dl,0x5(%ebx)
444b95:	c7 45 cc 32 00 00 00 	movl   $0x32,-0x34(%ebp)
444b9c:	89 55 d0             	mov    %edx,-0x30(%ebp)
444b9f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
444ba2:	89 7d e8             	mov    %edi,-0x18(%ebp)
444ba5:	89 7d d8             	mov    %edi,-0x28(%ebp)
444ba8:	2b c2                	sub    %edx,%eax
444baa:	74 27                	je     0x444bd3
444bac:	48                   	dec    %eax
444bad:	75 46                	jne    0x444bf5
444baf:	ff 15 f8 d6 48 00    	call   *0x48d6f8
444bb5:	85 c0                	test   %eax,%eax
444bb7:	75 0d                	jne    0x444bc6
444bb9:	57                   	push   %edi
444bba:	8b ce                	mov    %esi,%ecx
444bbc:	e8 46 04 00 00       	call   0x445007
444bc1:	e9 98 00 00 00       	jmp    0x444c5e
444bc6:	83 4d cc 04          	orl    $0x4,-0x34(%ebp)
444bca:	89 45 dc             	mov    %eax,-0x24(%ebp)
444bcd:	c6 43 04 01          	movb   $0x1,0x4(%ebx)
444bd1:	eb 22                	jmp    0x444bf5
444bd3:	66 39 11             	cmp    %dx,(%ecx)
444bd6:	75 09                	jne    0x444be1
444bd8:	c7 45 d0 00 08 00 00 	movl   $0x800,-0x30(%ebp)
444bdf:	eb 11                	jmp    0x444bf2
444be1:	83 7d 18 01          	cmpl   $0x1,0x18(%ebp)
444be5:	75 0b                	jne    0x444bf2
444be7:	c7 45 d0 00 02 00 00 	movl   $0x200,-0x30(%ebp)
444bee:	c6 43 05 01          	movb   $0x1,0x5(%ebx)
444bf2:	88 53 04             	mov    %dl,0x4(%ebx)
444bf5:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
444bf9:	74 37                	je     0x444c32
444bfb:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
444bff:	74 31                	je     0x444c32
444c01:	83 ff 07             	cmp    $0x7,%edi
444c04:	7c 2c                	jl     0x444c32
444c06:	8b 06                	mov    (%esi),%eax
444c08:	39 03                	cmp    %eax,(%ebx)
444c0a:	75 26                	jne    0x444c32
444c0c:	50                   	push   %eax
444c0d:	ff 15 b4 d5 48 00    	call   *0x48d5b4
444c13:	8b c8                	mov    %eax,%ecx
444c15:	8b 45 14             	mov    0x14(%ebp),%eax
444c18:	89 4d 08             	mov    %ecx,0x8(%ebp)
444c1b:	83 f8 ff             	cmp    $0xffffffff,%eax
444c1e:	74 0d                	je     0x444c2d
444c20:	8d 51 fc             	lea    -0x4(%ecx),%edx
444c23:	8d 48 01             	lea    0x1(%eax),%ecx
444c26:	3b ca                	cmp    %edx,%ecx