4065ba:	8b d8                	mov    %eax,%ebx
4065bc:	85 db                	test   %ebx,%ebx
4065be:	0f 84 cf 3e 01 00    	je     0x41a493
4065c4:	8b 56 0c             	mov    0xc(%esi),%edx
4065c7:	33 ff                	xor    %edi,%edi
4065c9:	33 c0                	xor    %eax,%eax
4065cb:	89 5e 18             	mov    %ebx,0x18(%esi)
4065ce:	40                   	inc    %eax
4065cf:	89 7e 14             	mov    %edi,0x14(%esi)
4065d2:	89 7e 20             	mov    %edi,0x20(%esi)
4065d5:	89 7e 24             	mov    %edi,0x24(%esi)
4065d8:	89 7e 28             	mov    %edi,0x28(%esi)
4065db:	89 7e 2c             	mov    %edi,0x2c(%esi)
4065de:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
4065e4:	89 95 c0 fd ff ff    	mov    %edx,-0x240(%ebp)
4065ea:	39 46 08             	cmp    %eax,0x8(%esi)
4065ed:	0f 82 b7 01 00 00    	jb     0x4067aa
4065f3:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
4065fa:	0f 85 3b 3e 01 00    	jne    0x41a43b
406600:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406603:	85 c9                	test   %ecx,%ecx
406605:	0f 84 57 3d 01 00    	je     0x41a362
40660b:	ff 32                	push   (%edx)
40660d:	8b 55 f0             	mov    -0x10(%ebp),%edx
406610:	ff 76 04             	push   0x4(%esi)
406613:	e8 a0 ce 00 00       	call   0x4134b8
406618:	85 c0                	test   %eax,%eax
40661a:	0f 85 23 3e 01 00    	jne    0x41a443
406620:	8b bd b4 fd ff ff    	mov    -0x24c(%ebp),%edi
406626:	85 ff                	test   %edi,%edi
406628:	0f 85 d0 01 00 00    	jne    0x4067fe
40662e:	8b 55 e8             	mov    -0x18(%ebp),%edx
406631:	85 d2                	test   %edx,%edx
406633:	0f 84 34 3d 01 00    	je     0x41a36d
406639:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40663f:	b9 f0 59 41 00       	mov    $0x4159f0,%ecx
406644:	50                   	push   %eax
406645:	8d 7b 04             	lea    0x4(%ebx),%edi
406648:	33 c0                	xor    %eax,%eax
40664a:	57                   	push   %edi
40664b:	ff 75 10             	push   0x10(%ebp)
40664e:	50                   	push   %eax
40664f:	e8 46 f2 00 00       	call   0x41589a
406654:	84 c0                	test   %al,%al
406656:	0f 84 1c 3d 01 00    	je     0x41a378
40665c:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
406663:	0f 85 c7 3d 01 00    	jne    0x41a430
406669:	8b 0f                	mov    (%edi),%ecx
40666b:	8b 45 08             	mov    0x8(%ebp),%eax
40666e:	23 4d 08             	and    0x8(%ebp),%ecx
406671:	23 45 0c             	and    0xc(%ebp),%eax
406674:	3b c8                	cmp    %eax,%ecx
406676:	0f 85 c9 00 00 00    	jne    0x406745
40667c:	8d 53 30             	lea    0x30(%ebx),%edx
40667f:	c7 85 b8 fd ff ff 01 	movl   $0x1,-0x248(%ebp)
406686:	00 00 00
406689:	8b ca                	mov    %edx,%ecx
40668b:	8d 79 02             	lea    0x2(%ecx),%edi
40668e:	66 8b 01             	mov    (%ecx),%ax
406691:	83 c1 02             	add    $0x2,%ecx
406694:	66 3b 85 cc fd ff ff 	cmp    -0x234(%ebp),%ax
40669b:	75 f1                	jne    0x40668e
40669d:	2b cf                	sub    %edi,%ecx
40669f:	8d 83 38 02 00 00    	lea    0x238(%ebx),%eax
4066a5:	83 c2 02             	add    $0x2,%edx
4066a8:	d1 f9                	sar    $1,%ecx
4066aa:	50                   	push   %eax
4066ab:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
4066ae:	ba 04 01 00 00       	mov    $0x104,%edx
4066b3:	8b f9                	mov    %ecx,%edi
4066b5:	89 8d b0 fd ff ff    	mov    %ecx,-0x250(%ebp)
4066bb:	2b fb                	sub    %ebx,%edi
4066bd:	83 ef 30             	sub    $0x30,%edi
4066c0:	d1 ff                	sar    $1,%edi
4066c2:	2b d7                	sub    %edi,%edx
4066c4:	e8 d7 8c 00 00       	call   0x40f3a0
4066c9:	8b 95 b0 fd ff ff    	mov    -0x250(%ebp),%edx
4066cf:	33 c0                	xor    %eax,%eax
4066d1:	66 39 02             	cmp    %ax,(%edx)
4066d4:	0f 85 1b 01 00 00    	jne    0x4067f5
4066da:	66 89 43 02          	mov    %ax,0x2(%ebx)
4066de:	8b ca                	mov    %edx,%ecx
4066e0:	8d 79 02             	lea    0x2(%ecx),%edi
4066e3:	66 8b 01             	mov    (%ecx),%ax
4066e6:	83 c1 02             	add    $0x2,%ecx
4066e9:	66 3b 85 cc fd ff ff 	cmp    -0x234(%ebp),%ax
4066f0:	75 f1                	jne    0x4066e3
4066f2:	2b cf                	sub    %edi,%ecx
4066f4:	d1 f9                	sar    $1,%ecx
4066f6:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
4066f9:	2b c3                	sub    %ebx,%eax
4066fb:	83 c0 05             	add    $0x5,%eax
4066fe:	03 c2                	add    %edx,%eax
406700:	25 fc ff 00 00       	and    $0xfffc,%eax
406705:	f6 43 04 10          	testb  $0x10,0x4(%ebx)
406709:	66 89 03             	mov    %ax,(%ebx)
40670c:	0f 85 14 01 00 00    	jne    0x406826
406712:	ff 46 20             	incl   0x20(%esi)
406715:	8b bd bc fd ff ff    	mov    -0x244(%ebp),%edi
40671b:	85 ff                	test   %edi,%edi
40671d:	0f 84 7f 3c 01 00    	je     0x41a3a2
406723:	ff b5 d4 fd ff ff    	push   -0x22c(%ebp)
406729:	8b cf                	mov    %edi,%ecx
40672b:	ff b5 d0 fd ff ff    	push   -0x230(%ebp)
406731:	53                   	push   %ebx
406732:	56                   	push   %esi
406733:	ff 15 c4 a4 44 00    	call   *0x44a4c4
406739:	ff d7                	call   *%edi
40673b:	8b f8                	mov    %eax,%edi
40673d:	85 ff                	test   %edi,%edi
40673f:	0f 85 d1 3c 01 00    	jne    0x41a416
406745:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
40674b:	33 c0                	xor    %eax,%eax
40674d:	8d 7b 04             	lea    0x4(%ebx),%edi
406750:	50                   	push   %eax
406751:	8b d7                	mov    %edi,%edx
406753:	b9 f0 59 41 00       	mov    $0x4159f0,%ecx
406758:	e8 f4 f0 00 00       	call   0x415851
40675d:	84 c0                	test   %al,%al
40675f:	0f 85 f7 fe ff ff    	jne    0x40665c
406765:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
40676b:	e8 dd 23 00 00       	call   0x408b4d
406770:	8b 3d a8 67 43 00    	mov    0x4367a8,%edi
406776:	85 ff                	test   %edi,%edi
406778:	74 09                	je     0x406783
40677a:	83 ff 12             	cmp    $0x12,%edi
40677d:	0f 85 84 3c 01 00    	jne    0x41a407
406783:	8b 95 c0 fd ff ff    	mov    -0x240(%ebp),%edx
406789:	8b 85 c4 fd ff ff    	mov    -0x23c(%ebp),%eax
40678f:	40                   	inc    %eax
406790:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
406796:	8b 52 0c             	mov    0xc(%edx),%edx
406799:	89 95 c0 fd ff ff    	mov    %edx,-0x240(%ebp)
40679f:	3b 46 08             	cmp    0x8(%esi),%eax
4067a2:	0f 86 4b fe ff ff    	jbe    0x4065f3
4067a8:	33 ff                	xor    %edi,%edi
4067aa:	83 bd bc fd ff ff 00 	cmpl   $0x0,-0x244(%ebp)
4067b1:	0f 84 94 3c 01 00    	je     0x41a44b
4067b7:	8b 9d ac fd ff ff    	mov    -0x254(%ebp),%ebx
4067bd:	85 db                	test   %ebx,%ebx
4067bf:	75 6d                	jne    0x40682e
4067c1:	83 bd b8 fd ff ff 00 	cmpl   $0x0,-0x248(%ebp)
4067c8:	0f 84 bb 3c 01 00    	je     0x41a489
4067ce:	8b 45 e8             	mov    -0x18(%ebp),%eax
4067d1:	33 c9                	xor    %ecx,%ecx
4067d3:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4067d6:	85 c0                	test   %eax,%eax
4067d8:	74 08                	je     0x4067e2
4067da:	50                   	push   %eax
4067db:	ff 15 e0 a3 44 00    	call   *0x44a3e0
4067e1:	59                   	pop    %ecx
4067e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4067e5:	8b c7                	mov    %edi,%eax
4067e7:	5f                   	pop    %edi
4067e8:	5e                   	pop    %esi
4067e9:	33 cd                	xor    %ebp,%ecx
4067eb:	5b                   	pop    %ebx
4067ec:	e8 3f 03 01 00       	call   0x416b30
4067f1:	c9                   	leave
4067f2:	c2 20 00             	ret    $0x20
4067f5:	66 89 7b 02          	mov    %di,0x2(%ebx)
4067f9:	e9 e0 fe ff ff       	jmp    0x4066de
4067fe:	ff b5 d4 fd ff ff    	push   -0x22c(%ebp)
406804:	8b cf                	mov    %edi,%ecx
406806:	ff b5 d0 fd ff ff    	push   -0x230(%ebp)
40680c:	56                   	push   %esi
40680d:	ff 15 c4 a4 44 00    	call   *0x44a4c4
406813:	ff d7                	call   *%edi
406815:	8b f8                	mov    %eax,%edi
406817:	85 ff                	test   %edi,%edi
406819:	0f 84 0f fe ff ff    	je     0x40662e
40681f:	8b c7                	mov    %edi,%eax
406821:	e9 66 3c 01 00       	jmp    0x41a48c
406826:	ff 46 24             	incl   0x24(%esi)
406829:	e9 e7 fe ff ff       	jmp    0x406715
40682e:	ff b5 d4 fd ff ff    	push   -0x22c(%ebp)
406834:	8b cb                	mov    %ebx,%ecx
406836:	ff b5 d0 fd ff ff    	push   -0x230(%ebp)
40683c:	56                   	push   %esi
40683d:	ff 15 c4 a4 44 00    	call   *0x44a4c4
406843:	ff d3                	call   *%ebx
406845:	8b f8                	mov    %eax,%edi
406847:	85 ff                	test   %edi,%edi
406849:	0f 84 72 ff ff ff    	je     0x4067c1
40684f:	e9 7a ff ff ff       	jmp    0x4067ce
406854:	8b ff                	mov    %edi,%edi
406856:	55                   	push   %ebp
406857:	8b ec                	mov    %esp,%ebp
406859:	81 ec a4 01 00 00    	sub    $0x1a4,%esp
40685f:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
406864:	33 c5                	xor    %ebp,%eax
406866:	89 45 fc             	mov    %eax,-0x4(%ebp)
406869:	53                   	push   %ebx
40686a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40686d:	56                   	push   %esi
40686e:	8b f1                	mov    %ecx,%esi
406870:	89 95 98 fe ff ff    	mov    %edx,-0x168(%ebp)
406876:	89 9d 94 fe ff ff    	mov    %ebx,-0x16c(%ebp)
40687c:	c7 85 9c fe ff ff 01 	movl   $0x1,-0x164(%ebp)
406883:	00 00 00
406886:	57                   	push   %edi
406887:	85 f6                	test   %esi,%esi
406889:	0f 85 17 3c 01 00    	jne    0x41a4a6
40688f:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
406895:	50                   	push   %eax
406896:	ff 15 c4 a2 44 00    	call   *0x44a2c4
40689c:	8d 85 8c fe ff ff    	lea    -0x174(%ebp),%eax
4068a2:	50                   	push   %eax
4068a3:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
4068a9:	50                   	push   %eax
4068aa:	ff 15 f0 a2 44 00    	call   *0x44a2f0
4068b0:	8d 85 84 fe ff ff    	lea    -0x17c(%ebp),%eax
4068b6:	50                   	push   %eax
4068b7:	8d 85 8c fe ff ff    	lea    -0x174(%ebp),%eax
4068bd:	50                   	push   %eax
4068be:	ff 15 c0 a0 44 00    	call   *0x44a0c0
4068c4:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
4068ca:	50                   	push   %eax
4068cb:	8d 85 84 fe ff ff    	lea    -0x17c(%ebp),%eax
4068d1:	50                   	push   %eax
4068d2:	ff 15 ec a2 44 00    	call   *0x44a2ec
4068d8:	33 c0                	xor    %eax,%eax
4068da:	89 85 a4 fe ff ff    	mov    %eax,-0x15c(%ebp)
4068e0:	38 05 55 67 43 00    	cmp    %al,0x436755
4068e6:	0f 84 91 3c 01 00    	je     0x41a57d
4068ec:	89 85 a0 fe ff ff    	mov    %eax,-0x160(%ebp)
4068f2:	be 80 00 00 00       	mov    $0x80,%esi
4068f7:	56                   	push   %esi
4068f8:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
4068fe:	50                   	push   %eax
4068ff:	6a 1f                	push   $0x1f
406901:	e8 8b 1e 00 00       	call   0x408791
406906:	50                   	push   %eax
406907:	ff 15 84 a1 44 00    	call   *0x44a184
40690d:	85 c0                	test   %eax,%eax
40690f:	0f 84 b2 3b 01 00    	je     0x41a4c7
406915:	66 8b 85 b8 fe ff ff 	mov    -0x148(%ebp),%ax
40691c:	8d b5 b8 fe ff ff    	lea    -0x148(%ebp),%esi
406922:	6a 02                	push   $0x2
406924:	5f                   	pop    %edi
406925:	66 85 c0             	test   %ax,%ax
406928:	74 42                	je     0x40696c
40692a:	8b 9d a0 fe ff ff    	mov    -0x160(%ebp),%ebx
406930:	6a 64                	push   $0x64
406932:	0f b7 c8             	movzwl %ax,%ecx
406935:	58                   	pop    %eax
406936:	66 83 f9 27          	cmp    $0x27,%cx
40693a:	0f 84 9f 3b 01 00    	je     0x41a4df
406940:	85 db                	test   %ebx,%ebx
406942:	75 13                	jne    0x406957
406944:	66 3b c8             	cmp    %ax,%cx
406947:	0f 84 f3 00 00 00    	je     0x406a40
40694d:	66 83 f9 4d          	cmp    $0x4d,%cx
406951:	0f 84 e9 00 00 00    	je     0x406a40
406957:	03 f7                	add    %edi,%esi
406959:	0f b7 06             	movzwl (%esi),%eax
40695c:	6a 64                	push   $0x64
40695e:	8b c8                	mov    %eax,%ecx
406960:	66 85 c0             	test   %ax,%ax
406963:	58                   	pop    %eax
406964:	75 d0                	jne    0x406936
406966:	8b 9d 94 fe ff ff    	mov    -0x16c(%ebp),%ebx
40696c:	ff 35 50 67 43 00    	push   0x436750
406972:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
406978:	ff 35 4c 67 43 00    	push   0x43674c
40697e:	50                   	push   %eax
40697f:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
406985:	50                   	push   %eax
406986:	33 c0                	xor    %eax,%eax
406988:	50                   	push   %eax
406989:	e8 03 1e 00 00       	call   0x408791
40698e:	50                   	push   %eax
40698f:	ff 15 54 a0 44 00    	call   *0x44a054
406995:	85 c0                	test   %eax,%eax
406997:	0f 84 f9 00 00 00    	je     0x406a96
40699d:	8b 35 4c 67 43 00    	mov    0x43674c,%esi
4069a3:	85 f6                	test   %esi,%esi
4069a5:	0f 84 eb 00 00 00    	je     0x406a96
4069ab:	0f b7 8d ac fe ff ff 	movzwl -0x154(%ebp),%ecx
4069b2:	e8 b1 f4 ff ff       	call   0x405e68
4069b7:	50                   	push   %eax
4069b8:	6a 20                	push   $0x20
4069ba:	5a                   	pop    %edx
4069bb:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4069be:	e8 dd 89 00 00       	call   0x40f3a0
4069c3:	85 db                	test   %ebx,%ebx
4069c5:	0f 84 6a 3c 01 00    	je     0x41a635
4069cb:	83 bd 9c fe ff ff 00 	cmpl   $0x0,-0x164(%ebp)
4069d2:	0f 84 b9 3c 01 00    	je     0x41a691
4069d8:	83 bd 98 fe ff ff 01 	cmpl   $0x1,-0x168(%ebp)
4069df:	0f 85 ac 3c 01 00    	jne    0x41a691
4069e5:	e8 4a 2a 00 00       	call   0x409434
4069ea:	8b 55 0c             	mov    0xc(%ebp),%edx
4069ed:	8b cb                	mov    %ebx,%ecx
4069ef:	84 c0                	test   %al,%al
4069f1:	0f 85 7c 3c 01 00    	jne    0x41a673
4069f7:	8d 45 b8             	lea    -0x48(%ebp),%eax
4069fa:	50                   	push   %eax
4069fb:	e8 a0 89 00 00       	call   0x40f3a0
406a00:	8b 55 0c             	mov    0xc(%ebp),%edx
406a03:	8b cb                	mov    %ebx,%ecx
406a05:	68 4c 23 40 00       	push   $0x40234c
406a0a:	e8 31 92 00 00       	call   0x40fc40
406a0f:	56                   	push   %esi
406a10:	8b 55 0c             	mov    0xc(%ebp),%edx
406a13:	8b cb                	mov    %ebx,%ecx
406a15:	e8 26 92 00 00       	call   0x40fc40
406a1a:	8d 4b 02             	lea    0x2(%ebx),%ecx
406a1d:	33 d2                	xor    %edx,%edx
406a1f:	66 8b 03             	mov    (%ebx),%ax
406a22:	03 df                	add    %edi,%ebx
406a24:	66 3b c2             	cmp    %dx,%ax
406a27:	75 f6                	jne    0x406a1f
406a29:	2b d9                	sub    %ecx,%ebx
406a2b:	d1 fb                	sar    $1,%ebx
406a2d:	8b c3                	mov    %ebx,%eax
406a2f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406a32:	5f                   	pop    %edi
406a33:	5e                   	pop    %esi
406a34:	33 cd                	xor    %ebp,%ecx
406a36:	5b                   	pop    %ebx
406a37:	e8 f4 00 01 00       	call   0x416b30
406a3c:	c9                   	leave
406a3d:	c2 08 00             	ret    $0x8
406a40:	33 c0                	xor    %eax,%eax
406a42:	8b d0                	mov    %eax,%edx
406a44:	03 f7                	add    %edi,%esi
406a46:	42                   	inc    %edx
406a47:	66 39 0e             	cmp    %cx,(%esi)
406a4a:	74 f8                	je     0x406a44
406a4c:	8b c2                	mov    %edx,%eax
406a4e:	89 b5 a0 fe ff ff    	mov    %esi,-0x160(%ebp)
406a54:	f7 d8                	neg    %eax
406a56:	8d 34 46             	lea    (%esi,%eax,2),%esi
406a59:	83 fa 01             	cmp    $0x1,%edx
406a5c:	0f 85 8d 3a 01 00    	jne    0x41a4ef
406a62:	8b ce                	mov    %esi,%ecx
406a64:	8d 51 02             	lea    0x2(%ecx),%edx
406a67:	66 8b 01             	mov    (%ecx),%ax
406a6a:	03 cf                	add    %edi,%ecx
406a6c:	66 3b 85 a4 fe ff ff 	cmp    -0x15c(%ebp),%ax
406a73:	75 f2                	jne    0x406a67
406a75:	2b ca                	sub    %edx,%ecx
406a77:	d1 f9                	sar    $1,%ecx
406a79:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
406a80:	50                   	push   %eax
406a81:	8d 46 02             	lea    0x2(%esi),%eax
406a84:	56                   	push   %esi
406a85:	50                   	push   %eax
406a86:	e8 b7 11 01 00       	call   0x417c42