41370b:	e8 43 fe ff ff       	call   0x413553
413710:	a3 dc 65 43 00       	mov    %eax,0x4365dc
413715:	5d                   	pop    %ebp
413716:	c2 04 00             	ret    $0x4
413719:	8b ff                	mov    %edi,%edi
41371b:	55                   	push   %ebp
41371c:	8b ec                	mov    %esp,%ebp
41371e:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
413724:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
413729:	33 c5                	xor    %ebp,%eax
41372b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41372e:	53                   	push   %ebx
41372f:	8b 5d 08             	mov    0x8(%ebp),%ebx
413732:	33 c0                	xor    %eax,%eax
413734:	56                   	push   %esi
413735:	8b 75 0c             	mov    0xc(%ebp),%esi
413738:	57                   	push   %edi
413739:	bf 04 01 00 00       	mov    $0x104,%edi
41373e:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
413744:	57                   	push   %edi
413745:	50                   	push   %eax
413746:	89 45 e8             	mov    %eax,-0x18(%ebp)
413749:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
41374f:	50                   	push   %eax
413750:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
413756:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
41375c:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
413760:	89 7d f0             	mov    %edi,-0x10(%ebp)
413763:	e8 55 48 00 00       	call   0x417fbd
413768:	33 c0                	xor    %eax,%eax
41376a:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
413770:	83 c4 0c             	add    $0xc,%esp
413773:	38 45 ec             	cmp    %al,-0x14(%ebp)
413776:	0f 94 c0             	sete   %al
413779:	48                   	dec    %eax
41377a:	25 e3 7e 00 00       	and    $0x7ee3,%eax
41377f:	03 c7                	add    %edi,%eax
413781:	50                   	push   %eax
413782:	e8 69 ac ff ff       	call   0x40e3f0
413787:	85 c0                	test   %eax,%eax
413789:	0f 88 22 c0 00 00    	js     0x41f7b1
41378f:	6a 5c                	push   $0x5c
413791:	5a                   	pop    %edx
413792:	8b ce                	mov    %esi,%ecx
413794:	e8 5c ca ff ff       	call   0x4101f5
413799:	8b f8                	mov    %eax,%edi
41379b:	6a 3a                	push   $0x3a
41379d:	58                   	pop    %eax
41379e:	85 ff                	test   %edi,%edi
4137a0:	0f 84 0f c0 00 00    	je     0x41f7b5
4137a6:	83 c7 02             	add    $0x2,%edi
4137a9:	6a 5c                	push   $0x5c
4137ab:	5a                   	pop    %edx
4137ac:	8b cb                	mov    %ebx,%ecx
4137ae:	e8 42 ca ff ff       	call   0x4101f5
4137b3:	8b f0                	mov    %eax,%esi
4137b5:	85 f6                	test   %esi,%esi
4137b7:	0f 84 14 c0 00 00    	je     0x41f7d1
4137bd:	83 c6 02             	add    $0x2,%esi
4137c0:	8b 45 e8             	mov    -0x18(%ebp),%eax
4137c3:	85 c0                	test   %eax,%eax
4137c5:	0f 84 2b c0 00 00    	je     0x41f7f6
4137cb:	ff 75 f0             	push   -0x10(%ebp)
4137ce:	8b d6                	mov    %esi,%edx
4137d0:	8b cf                	mov    %edi,%ecx
4137d2:	50                   	push   %eax
4137d3:	e8 e5 03 00 00       	call   0x413bbd
4137d8:	8b f8                	mov    %eax,%edi
4137da:	85 ff                	test   %edi,%edi
4137dc:	0f 85 1f c0 00 00    	jne    0x41f801
4137e2:	3b f3                	cmp    %ebx,%esi
4137e4:	0f 84 2f c0 00 00    	je     0x41f819
4137ea:	8b cb                	mov    %ebx,%ecx
4137ec:	8d 51 02             	lea    0x2(%ecx),%edx
4137ef:	66 8b 01             	mov    (%ecx),%ax
4137f2:	83 c1 02             	add    $0x2,%ecx
4137f5:	66 3b 85 d4 fd ff ff 	cmp    -0x22c(%ebp),%ax
4137fc:	75 f1                	jne    0x4137ef
4137fe:	2b ca                	sub    %edx,%ecx
413800:	d1 f9                	sar    $1,%ecx
413802:	81 f9 e7 7f 00 00    	cmp    $0x7fe7,%ecx
413808:	0f 83 03 c0 00 00    	jae    0x41f811
41380e:	8b 95 d8 fd ff ff    	mov    -0x228(%ebp),%edx
413814:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
41381a:	53                   	push   %ebx
41381b:	e8 80 bb ff ff       	call   0x40f3a0
413820:	2b f3                	sub    %ebx,%esi
413822:	d1 fe                	sar    $1,%esi
413824:	3b b5 d8 fd ff ff    	cmp    -0x228(%ebp),%esi
41382a:	0f 83 e1 bf 00 00    	jae    0x41f811
413830:	8b 9d dc fd ff ff    	mov    -0x224(%ebp),%ebx
413836:	33 c0                	xor    %eax,%eax
413838:	33 d2                	xor    %edx,%edx
41383a:	66 89 04 73          	mov    %ax,(%ebx,%esi,2)
41383e:	8b f3                	mov    %ebx,%esi
413840:	8d 4e 02             	lea    0x2(%esi),%ecx
413843:	66 8b 06             	mov    (%esi),%ax
413846:	83 c6 02             	add    $0x2,%esi
413849:	66 3b c2             	cmp    %dx,%ax
41384c:	75 f5                	jne    0x413843
41384e:	2b f1                	sub    %ecx,%esi
413850:	8b 4d e8             	mov    -0x18(%ebp),%ecx
413853:	d1 fe                	sar    $1,%esi
413855:	8b d1                	mov    %ecx,%edx
413857:	85 c9                	test   %ecx,%ecx
413859:	74 60                	je     0x4138bb
41385b:	8d 42 02             	lea    0x2(%edx),%eax
41385e:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
413864:	66 8b 02             	mov    (%edx),%ax
413867:	83 c2 02             	add    $0x2,%edx
41386a:	66 3b 85 d4 fd ff ff 	cmp    -0x22c(%ebp),%ax
413871:	75 f1                	jne    0x413864
413873:	2b 95 dc fd ff ff    	sub    -0x224(%ebp),%edx
413879:	8d 46 01             	lea    0x1(%esi),%eax
41387c:	d1 fa                	sar    $1,%edx
41387e:	03 c2                	add    %edx,%eax
413880:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
413885:	77 3c                	ja     0x4138c3
413887:	85 c9                	test   %ecx,%ecx
413889:	74 3d                	je     0x4138c8
41388b:	8b 95 d8 fd ff ff    	mov    -0x228(%ebp),%edx
413891:	51                   	push   %ecx
413892:	8b cb                	mov    %ebx,%ecx
413894:	e8 a7 c3 ff ff       	call   0x40fc40
413899:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41389c:	85 c9                	test   %ecx,%ecx
41389e:	74 08                	je     0x4138a8
4138a0:	51                   	push   %ecx
4138a1:	ff 15 e0 a3 44 00    	call   *0x44a3e0
4138a7:	59                   	pop    %ecx
4138a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4138ab:	8b c7                	mov    %edi,%eax
4138ad:	5f                   	pop    %edi
4138ae:	5e                   	pop    %esi
4138af:	33 cd                	xor    %ebp,%ecx
4138b1:	5b                   	pop    %ebx
4138b2:	e8 79 32 00 00       	call   0x416b30
4138b7:	c9                   	leave
4138b8:	c2 08 00             	ret    $0x8
4138bb:	8d 95 e0 fd ff ff    	lea    -0x220(%ebp),%edx
4138c1:	eb 98                	jmp    0x41385b
4138c3:	6a 6f                	push   $0x6f
4138c5:	5f                   	pop    %edi
4138c6:	eb d4                	jmp    0x41389c
4138c8:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4138ce:	eb bb                	jmp    0x41388b
4138d0:	8b ff                	mov    %edi,%edi
4138d2:	55                   	push   %ebp
4138d3:	8b ec                	mov    %esp,%ebp
4138d5:	83 e4 f8             	and    $0xfffffff8,%esp
4138d8:	81 ec 4c 04 00 00    	sub    $0x44c,%esp
4138de:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
4138e3:	33 c4                	xor    %esp,%eax
4138e5:	89 84 24 48 04 00 00 	mov    %eax,0x448(%esp)
4138ec:	8b 45 14             	mov    0x14(%ebp),%eax
4138ef:	83 a4 24 1c 02 00 00 	andl   $0x0,0x21c(%esp)
4138f6:	00
4138f7:	53                   	push   %ebx
4138f8:	56                   	push   %esi
4138f9:	8b 75 08             	mov    0x8(%ebp),%esi
4138fc:	33 db                	xor    %ebx,%ebx
4138fe:	57                   	push   %edi
4138ff:	8b 7d 0c             	mov    0xc(%ebp),%edi
413902:	43                   	inc    %ebx
413903:	89 44 24 1c          	mov    %eax,0x1c(%esp)
413907:	8b 00                	mov    (%eax),%eax
413909:	88 9c 24 2c 02 00 00 	mov    %bl,0x22c(%esp)
413910:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
413914:	89 4c 24 14          	mov    %ecx,0x14(%esp)
413918:	8b c8                	mov    %eax,%ecx
41391a:	25 00 20 00 00       	and    $0x2000,%eax
41391f:	81 e1 00 08 00 00    	and    $0x800,%ecx
413925:	89 44 24 10          	mov    %eax,0x10(%esp)
413929:	b8 04 01 00 00       	mov    $0x104,%eax
41392e:	50                   	push   %eax
41392f:	89 84 24 34 02 00 00 	mov    %eax,0x234(%esp)
413936:	8d 44 24 24          	lea    0x24(%esp),%eax
41393a:	6a 00                	push   $0x0
41393c:	50                   	push   %eax
41393d:	89 4c 24 24          	mov    %ecx,0x24(%esp)
413941:	e8 77 46 00 00       	call   0x417fbd
413946:	83 a4 24 4c 04 00 00 	andl   $0x0,0x44c(%esp)
41394d:	00
41394e:	83 c4 0c             	add    $0xc,%esp
413951:	b8 04 01 00 00       	mov    $0x104,%eax
413956:	88 9c 24 44 04 00 00 	mov    %bl,0x444(%esp)
41395d:	89 84 24 48 04 00 00 	mov    %eax,0x448(%esp)
413964:	50                   	push   %eax
413965:	8d 84 24 3c 02 00 00 	lea    0x23c(%esp),%eax
41396c:	6a 00                	push   $0x0
41396e:	50                   	push   %eax
41396f:	e8 49 46 00 00       	call   0x417fbd
413974:	83 c4 0c             	add    $0xc,%esp
413977:	8d 4c 24 20          	lea    0x20(%esp),%ecx
41397b:	68 e9 7f 00 00       	push   $0x7fe9
413980:	e8 6b aa ff ff       	call   0x40e3f0
413985:	85 c0                	test   %eax,%eax
413987:	0f 88 13 01 00 00    	js     0x413aa0
41398d:	68 e9 7f 00 00       	push   $0x7fe9
413992:	8d 8c 24 3c 02 00 00 	lea    0x23c(%esp),%ecx
413999:	e8 52 aa ff ff       	call   0x40e3f0
41399e:	85 c0                	test   %eax,%eax
4139a0:	0f 88 fa 00 00 00    	js     0x413aa0
4139a6:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
4139ab:	75 24                	jne    0x4139d1
4139ad:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
4139b2:	75 1d                	jne    0x4139d1
4139b4:	80 7e 11 00          	cmpb   $0x0,0x11(%esi)
4139b8:	75 17                	jne    0x4139d1
4139ba:	8b 56 0c             	mov    0xc(%esi),%edx
4139bd:	8b 4e 08             	mov    0x8(%esi),%ecx
4139c0:	e8 0b 14 00 00       	call   0x414dd0
4139c5:	89 44 24 10          	mov    %eax,0x10(%esp)
4139c9:	85 c0                	test   %eax,%eax
4139cb:	0f 85 6c be 00 00    	jne    0x41f83d
4139d1:	f6 47 04 10          	testb  $0x10,0x4(%edi)
4139d5:	0f 85 c3 00 00 00    	jne    0x413a9e
4139db:	8b 8c 24 28 02 00 00 	mov    0x228(%esp),%ecx
4139e2:	85 c9                	test   %ecx,%ecx
4139e4:	0f 84 c5 be 00 00    	je     0x41f8af
4139ea:	8b 44 24 14          	mov    0x14(%esp),%eax
4139ee:	8b 94 24 30 02 00 00 	mov    0x230(%esp),%edx
4139f5:	0f b7 c0             	movzwl %ax,%eax
4139f8:	83 c0 18             	add    $0x18,%eax
4139fb:	8d 04 47             	lea    (%edi,%eax,2),%eax
4139fe:	50                   	push   %eax
4139ff:	ff 76 04             	push   0x4(%esi)
413a02:	89 44 24 1c          	mov    %eax,0x1c(%esp)
413a06:	e8 ad fa ff ff       	call   0x4134b8
413a0b:	85 c0                	test   %eax,%eax
413a0d:	0f 85 53 be 00 00    	jne    0x41f866
413a13:	8b 8c 24 40 04 00 00 	mov    0x440(%esp),%ecx
413a1a:	85 c9                	test   %ecx,%ecx
413a1c:	0f 84 96 be 00 00    	je     0x41f8b8
413a22:	8b 94 24 48 04 00 00 	mov    0x448(%esp),%edx
413a29:	8d 47 30             	lea    0x30(%edi),%eax
413a2c:	50                   	push   %eax
413a2d:	ff 76 04             	push   0x4(%esi)
413a30:	e8 83 fa ff ff       	call   0x4134b8
413a35:	85 c0                	test   %eax,%eax
413a37:	0f 85 87 be 00 00    	jne    0x41f8c4
413a3d:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
413a42:	0f 85 9d be 00 00    	jne    0x41f8e5
413a48:	8b 44 24 1c          	mov    0x1c(%esp),%eax
413a4c:	8b 57 04             	mov    0x4(%edi),%edx
413a4f:	f6 c2 01             	test   $0x1,%dl
413a52:	0f 95 c1             	setne  %cl
413a55:	f7 00 00 10 00 00    	testl  $0x1000,(%eax)
413a5b:	0f 95 c0             	setne  %al
413a5e:	84 c8                	test   %cl,%al
413a60:	0f 85 ba be 00 00    	jne    0x41f920
413a66:	8b 8c 24 40 04 00 00 	mov    0x440(%esp),%ecx
413a6d:	85 c9                	test   %ecx,%ecx
413a6f:	0f 84 e1 be 00 00    	je     0x41f956
413a75:	8b 57 04             	mov    0x4(%edi),%edx
413a78:	e8 dc 0c 00 00       	call   0x414759
413a7d:	85 c0                	test   %eax,%eax
413a7f:	0f 85 dd be 00 00    	jne    0x41f962
413a85:	8b 44 24 1c          	mov    0x1c(%esp),%eax
413a89:	ff 40 60             	incl   0x60(%eax)
413a8c:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
413a93:	74 09                	je     0x413a9e
413a95:	f6 00 10             	testb  $0x10,(%eax)
413a98:	0f 85 1e bf 00 00    	jne    0x41f9bc
413a9e:	33 db                	xor    %ebx,%ebx
413aa0:	8b 84 24 40 04 00 00 	mov    0x440(%esp),%eax
413aa7:	83 a4 24 40 04 00 00 	andl   $0x0,0x440(%esp)
413aae:	00
413aaf:	85 c0                	test   %eax,%eax
413ab1:	74 08                	je     0x413abb
413ab3:	50                   	push   %eax
413ab4:	ff 15 e0 a3 44 00    	call   *0x44a3e0
413aba:	59                   	pop    %ecx
413abb:	8b 84 24 28 02 00 00 	mov    0x228(%esp),%eax
413ac2:	83 a4 24 28 02 00 00 	andl   $0x0,0x228(%esp)
413ac9:	00
413aca:	85 c0                	test   %eax,%eax
413acc:	74 08                	je     0x413ad6
413ace:	50                   	push   %eax
413acf:	ff 15 e0 a3 44 00    	call   *0x44a3e0
413ad5:	59                   	pop    %ecx
413ad6:	8b 8c 24 54 04 00 00 	mov    0x454(%esp),%ecx
413add:	8b c3                	mov    %ebx,%eax
413adf:	5f                   	pop    %edi
413ae0:	5e                   	pop    %esi
413ae1:	5b                   	pop    %ebx
413ae2:	33 cc                	xor    %esp,%ecx
413ae4:	e8 47 30 00 00       	call   0x416b30
413ae9:	8b e5                	mov    %ebp,%esp
413aeb:	5d                   	pop    %ebp
413aec:	c2 10 00             	ret    $0x10
413aef:	8b ff                	mov    %edi,%edi
413af1:	55                   	push   %ebp
413af2:	8b ec                	mov    %esp,%ebp
413af4:	81 ec 20 02 00 00    	sub    $0x220,%esp
413afa:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
413aff:	33 c5                	xor    %ebp,%eax
413b01:	89 45 fc             	mov    %eax,-0x4(%ebp)
413b04:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
413b08:	b8 04 01 00 00       	mov    $0x104,%eax
413b0d:	53                   	push   %ebx
413b0e:	56                   	push   %esi
413b0f:	57                   	push   %edi
413b10:	8b 7d 08             	mov    0x8(%ebp),%edi
413b13:	8b da                	mov    %edx,%ebx
413b15:	50                   	push   %eax
413b16:	89 45 f0             	mov    %eax,-0x10(%ebp)
413b19:	8b f1                	mov    %ecx,%esi
413b1b:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
413b21:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
413b25:	6a 00                	push   $0x0
413b27:	50                   	push   %eax
413b28:	e8 90 44 00 00       	call   0x417fbd
413b2d:	33 c0                	xor    %eax,%eax
413b2f:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
413b35:	83 c4 0c             	add    $0xc,%esp
413b38:	38 45 ec             	cmp    %al,-0x14(%ebp)
413b3b:	0f 94 c0             	sete   %al
413b3e:	48                   	dec    %eax
413b3f:	25 c6 fd 00 00       	and    $0xfdc6,%eax
413b44:	05 08 02 00 00       	add    $0x208,%eax
413b49:	50                   	push   %eax
413b4a:	e8 a1 a8 ff ff       	call   0x40e3f0
413b4f:	85 c0                	test   %eax,%eax
413b51:	78 66                	js     0x413bb9
413b53:	85 f6                	test   %esi,%esi
413b55:	75 62                	jne    0x413bb9
413b57:	8b 4d e8             	mov    -0x18(%ebp),%ecx
413b5a:	85 c9                	test   %ecx,%ecx
413b5c:	74 4b                	je     0x413ba9
413b5e:	8b 55 f0             	mov    -0x10(%ebp),%edx
413b61:	57                   	push   %edi
413b62:	e8 6e e1 ff ff       	call   0x411cd5
413b67:	85 c0                	test   %eax,%eax
413b69:	75 4e                	jne    0x413bb9
413b6b:	8b 45 e8             	mov    -0x18(%ebp),%eax
413b6e:	85 c0                	test   %eax,%eax
413b70:	74 3f                	je     0x413bb1
413b72:	50                   	push   %eax
413b73:	53                   	push   %ebx
413b74:	ff 15 40 a4 44 00    	call   *0x44a440
413b7a:	8b f0                	mov    %eax,%esi
413b7c:	f7 de                	neg    %esi
413b7e:	59                   	pop    %ecx
413b7f:	1b f6                	sbb    %esi,%esi
413b81:	59                   	pop    %ecx
413b82:	46                   	inc    %esi
413b83:	8b 45 e8             	mov    -0x18(%ebp),%eax
413b86:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
413b8a:	85 c0                	test   %eax,%eax