6495a7:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
6495ae:	89 4d b8             	mov    %ecx,-0x48(%ebp)
6495b1:	66 89 45 a4          	mov    %ax,-0x5c(%ebp)
6495b5:	89 45 bc             	mov    %eax,-0x44(%ebp)
6495b8:	89 45 c0             	mov    %eax,-0x40(%ebp)
6495bb:	8b 46 1c             	mov    0x1c(%esi),%eax
6495be:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
6495c5:	8b 40 1c             	mov    0x1c(%eax),%eax
6495c8:	2b 46 20             	sub    0x20(%esi),%eax
6495cb:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
6495cf:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
6495d5:	0f 84 d9 01 00 00    	je     0x6497b4
6495db:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
6495e0:	8b 46 08             	mov    0x8(%esi),%eax
6495e3:	83 f8 02             	cmp    $0x2,%eax
6495e6:	0f 84 c5 01 00 00    	je     0x6497b1
6495ec:	80 3f 00             	cmpb   $0x0,(%edi)
6495ef:	0f 85 bc 01 00 00    	jne    0x6497b1
6495f5:	84 db                	test   %bl,%bl
6495f7:	0f 85 b4 01 00 00    	jne    0x6497b1
6495fd:	85 c0                	test   %eax,%eax
6495ff:	0f 84 ac 01 00 00    	je     0x6497b1
649605:	83 f8 01             	cmp    $0x1,%eax
649608:	0f 84 a3 01 00 00    	je     0x6497b1
64960e:	6a 0a                	push   $0xa
649610:	ff 15 d0 21 68 00    	call   *0x6821d0
649616:	8b 46 1c             	mov    0x1c(%esi),%eax
649619:	8d 4e 28             	lea    0x28(%esi),%ecx
64961c:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
649622:	c7 85 38 ff ff ff 00 	movl   $0x0,-0xc8(%ebp)
649629:	00 00 00
64962c:	6a 00                	push   $0x0
64962e:	8b 40 24             	mov    0x24(%eax),%eax
649631:	03 46 20             	add    0x20(%esi),%eax
649634:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
64963a:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
649640:	50                   	push   %eax
649641:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
649647:	50                   	push   %eax
649648:	e8 23 d4 ff ff       	call   0x646a70
64964d:	83 bd 38 ff ff ff 00 	cmpl   $0x0,-0xc8(%ebp)
649654:	8b f8                	mov    %eax,%edi
649656:	74 0b                	je     0x649663
649658:	ff 76 14             	push   0x14(%esi)
64965b:	8b 4e 18             	mov    0x18(%esi),%ecx
64965e:	e8 dd 9f ff ff       	call   0x643640
649663:	8b 46 18             	mov    0x18(%esi),%eax
649666:	8b 88 e0 04 00 00    	mov    0x4e0(%eax),%ecx
64966c:	8b 90 e4 04 00 00    	mov    0x4e4(%eax),%edx
649672:	03 8d 38 ff ff ff    	add    -0xc8(%ebp),%ecx
649678:	8b 46 18             	mov    0x18(%esi),%eax
64967b:	83 d2 00             	adc    $0x0,%edx
64967e:	89 88 e0 04 00 00    	mov    %ecx,0x4e0(%eax)
649684:	89 90 e4 04 00 00    	mov    %edx,0x4e4(%eax)
64968a:	83 ef 00             	sub    $0x0,%edi
64968d:	0f 84 8a 02 00 00    	je     0x64991d
649693:	83 ef 01             	sub    $0x1,%edi
649696:	0f 84 4f 01 00 00    	je     0x6497eb
64969c:	83 ef 01             	sub    $0x1,%edi
64969f:	8b bd 3c ff ff ff    	mov    -0xc4(%ebp),%edi
6496a5:	0f 85 fc 00 00 00    	jne    0x6497a7
6496ab:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
6496b1:	8b ce                	mov    %esi,%ecx
6496b3:	01 46 20             	add    %eax,0x20(%esi)
6496b6:	01 86 f0 00 00 00    	add    %eax,0xf0(%esi)
6496bc:	c6 07 01             	movb   $0x1,(%edi)
6496bf:	ff 76 1c             	push   0x1c(%esi)
6496c2:	e8 79 fc ff ff       	call   0x649340
6496c7:	84 c0                	test   %al,%al
6496c9:	75 09                	jne    0x6496d4
6496cb:	88 07                	mov    %al,(%edi)
6496cd:	b3 01                	mov    $0x1,%bl
6496cf:	e9 d3 00 00 00       	jmp    0x6497a7
6496d4:	8b 46 18             	mov    0x18(%esi),%eax
6496d7:	8b 4e 1c             	mov    0x1c(%esi),%ecx
6496da:	8b 90 b8 04 00 00    	mov    0x4b8(%eax),%edx
6496e0:	8b 80 bc 04 00 00    	mov    0x4bc(%eax),%eax
6496e6:	89 95 30 ff ff ff    	mov    %edx,-0xd0(%ebp)
6496ec:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
6496f2:	39 41 2c             	cmp    %eax,0x2c(%ecx)
6496f5:	72 64                	jb     0x64975b
6496f7:	77 05                	ja     0x6496fe
6496f9:	39 51 28             	cmp    %edx,0x28(%ecx)
6496fc:	72 5d                	jb     0x64975b
6496fe:	8b be f4 00 00 00    	mov    0xf4(%esi),%edi
649704:	33 c0                	xor    %eax,%eax
649706:	8b d7                	mov    %edi,%edx
649708:	2b 95 30 ff ff ff    	sub    -0xd0(%ebp),%edx
64970e:	6a 01                	push   $0x1
649710:	1b 85 2c ff ff ff    	sbb    -0xd4(%ebp),%eax
649716:	03 51 28             	add    0x28(%ecx),%edx
649719:	13 41 2c             	adc    0x2c(%ecx),%eax
64971c:	50                   	push   %eax
64971d:	52                   	push   %edx
64971e:	ff b6 f0 00 00 00    	push   0xf0(%esi)
649724:	57                   	push   %edi
649725:	ff 71 20             	push   0x20(%ecx)
649728:	51                   	push   %ecx
649729:	8b 4e 18             	mov    0x18(%esi),%ecx
64972c:	e8 bf 80 ff ff       	call   0x6417f0
649731:	84 c0                	test   %al,%al
649733:	75 5b                	jne    0x649790
649735:	e8 a6 cc fe ff       	call   0x6363e0
64973a:	ff 76 04             	push   0x4(%esi)
64973d:	68 80 47 6e 00       	push   $0x6e4780
649742:	8b 08                	mov    (%eax),%ecx
649744:	68 fc 56 6e 00       	push   $0x6e56fc
649749:	50                   	push   %eax
64974a:	ff 51 24             	call   *0x24(%ecx)
64974d:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
649753:	83 c4 10             	add    $0x10,%esp
649756:	c6 00 00             	movb   $0x0,(%eax)
649759:	eb 33                	jmp    0x64978e
64975b:	e8 80 cc fe ff       	call   0x6363e0
649760:	68 08 43 6e 00       	push   $0x6e4308
649765:	68 fc 56 6e 00       	push   $0x6e56fc
64976a:	50                   	push   %eax
64976b:	8b 08                	mov    (%eax),%ecx
64976d:	ff 51 24             	call   *0x24(%ecx)
649770:	e8 6b cc fe ff       	call   0x6363e0
649775:	ff 76 04             	push   0x4(%esi)
649778:	68 80 47 6e 00       	push   $0x6e4780
64977d:	8b 08                	mov    (%eax),%ecx
64977f:	68 fc 56 6e 00       	push   $0x6e56fc
649784:	50                   	push   %eax
649785:	ff 51 24             	call   *0x24(%ecx)
649788:	83 c4 1c             	add    $0x1c,%esp
64978b:	c6 07 00             	movb   $0x0,(%edi)
64978e:	b3 01                	mov    $0x1,%bl
649790:	ff b6 f0 00 00 00    	push   0xf0(%esi)
649796:	8b 4e 18             	mov    0x18(%esi),%ecx
649799:	ff 76 14             	push   0x14(%esi)
64979c:	e8 ff 9f ff ff       	call   0x6437a0
6497a1:	8b bd 3c ff ff ff    	mov    -0xc4(%ebp),%edi
6497a7:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
6497ab:	0f 85 2f fe ff ff    	jne    0x6495e0
6497b1:	8b 4d b8             	mov    -0x48(%ebp),%ecx
6497b4:	84 db                	test   %bl,%bl
6497b6:	0f 94 c3             	sete   %bl
6497b9:	83 f9 08             	cmp    $0x8,%ecx
6497bc:	72 0d                	jb     0x6497cb
6497be:	41                   	inc    %ecx
6497bf:	51                   	push   %ecx
6497c0:	ff 75 a4             	push   -0x5c(%ebp)
6497c3:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
6497c6:	e8 15 f6 de ff       	call   0x438de0
6497cb:	8a c3                	mov    %bl,%al
6497cd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
6497d0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
6497d7:	59                   	pop    %ecx
6497d8:	5f                   	pop    %edi
6497d9:	5e                   	pop    %esi
6497da:	5b                   	pop    %ebx
6497db:	8b 4d f0             	mov    -0x10(%ebp),%ecx
6497de:	33 cd                	xor    %ebp,%ecx
6497e0:	e8 f5 7c f9 ff       	call   0x5e14da
6497e5:	8b e5                	mov    %ebp,%esp
6497e7:	5d                   	pop    %ebp
6497e8:	c2 04 00             	ret    $0x4
6497eb:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
6497f1:	85 c0                	test   %eax,%eax
6497f3:	74 ac                	je     0x6497a1
6497f5:	01 46 20             	add    %eax,0x20(%esi)
6497f8:	01 86 f0 00 00 00    	add    %eax,0xf0(%esi)
6497fe:	29 85 34 ff ff ff    	sub    %eax,-0xcc(%ebp)
649804:	81 be f0 00 00 00 00 	cmpl   $0x40000,0xf0(%esi)
64980b:	00 04 00
64980e:	72 91                	jb     0x6497a1
649810:	8b 46 1c             	mov    0x1c(%esi),%eax
649813:	8b 7e 18             	mov    0x18(%esi),%edi
649816:	8b 50 28             	mov    0x28(%eax),%edx
649819:	8b 40 2c             	mov    0x2c(%eax),%eax
64981c:	89 95 2c ff ff ff    	mov    %edx,-0xd4(%ebp)
649822:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
649828:	3b 87 bc 04 00 00    	cmp    0x4bc(%edi),%eax
64982e:	0f 82 a9 00 00 00    	jb     0x6498dd
649834:	77 0c                	ja     0x649842
649836:	3b 97 b8 04 00 00    	cmp    0x4b8(%edi),%edx
64983c:	0f 82 9b 00 00 00    	jb     0x6498dd
649842:	8b 4e 18             	mov    0x18(%esi),%ecx
649845:	33 c0                	xor    %eax,%eax
649847:	8b be f4 00 00 00    	mov    0xf4(%esi),%edi
64984d:	8b d7                	mov    %edi,%edx
64984f:	6a 00                	push   $0x0
649851:	2b 91 b8 04 00 00    	sub    0x4b8(%ecx),%edx
649857:	1b 81 bc 04 00 00    	sbb    0x4bc(%ecx),%eax
64985d:	03 95 2c ff ff ff    	add    -0xd4(%ebp),%edx
649863:	8b 8e f0 00 00 00    	mov    0xf0(%esi),%ecx
649869:	13 85 30 ff ff ff    	adc    -0xd0(%ebp),%eax
64986f:	50                   	push   %eax
649870:	8b 46 1c             	mov    0x1c(%esi),%eax
649873:	52                   	push   %edx
649874:	51                   	push   %ecx
649875:	8b 4e 18             	mov    0x18(%esi),%ecx
649878:	57                   	push   %edi
649879:	ff 70 20             	push   0x20(%eax)
64987c:	50                   	push   %eax
64987d:	e8 6e 7f ff ff       	call   0x6417f0
649882:	84 c0                	test   %al,%al
649884:	75 2b                	jne    0x6498b1
649886:	e8 55 cb fe ff       	call   0x6363e0
64988b:	ff 76 04             	push   0x4(%esi)
64988e:	68 58 48 6e 00       	push   $0x6e4858
649893:	8b 08                	mov    (%eax),%ecx
649895:	68 fc 56 6e 00       	push   $0x6e56fc
64989a:	50                   	push   %eax
64989b:	ff 51 24             	call   *0x24(%ecx)
64989e:	8b bd 3c ff ff ff    	mov    -0xc4(%ebp),%edi
6498a4:	83 c4 10             	add    $0x10,%esp
6498a7:	b3 01                	mov    $0x1,%bl
6498a9:	c6 07 00             	movb   $0x0,(%edi)
6498ac:	e9 f6 fe ff ff       	jmp    0x6497a7
6498b1:	ff b6 f0 00 00 00    	push   0xf0(%esi)
6498b7:	8b 4e 18             	mov    0x18(%esi),%ecx
6498ba:	ff 76 14             	push   0x14(%esi)
6498bd:	e8 de 9e ff ff       	call   0x6437a0
6498c2:	8b 86 f0 00 00 00    	mov    0xf0(%esi),%eax
6498c8:	01 86 f4 00 00 00    	add    %eax,0xf4(%esi)
6498ce:	c7 86 f0 00 00 00 00 	movl   $0x0,0xf0(%esi)
6498d5:	00 00 00
6498d8:	e9 c4 fe ff ff       	jmp    0x6497a1
6498dd:	e8 fe ca fe ff       	call   0x6363e0
6498e2:	68 08 43 6e 00       	push   $0x6e4308
6498e7:	68 fc 56 6e 00       	push   $0x6e56fc
6498ec:	50                   	push   %eax
6498ed:	8b 08                	mov    (%eax),%ecx
6498ef:	ff 51 24             	call   *0x24(%ecx)
6498f2:	e8 e9 ca fe ff       	call   0x6363e0
6498f7:	ff 76 04             	push   0x4(%esi)
6498fa:	68 58 48 6e 00       	push   $0x6e4858
6498ff:	8b 08                	mov    (%eax),%ecx
649901:	68 fc 56 6e 00       	push   $0x6e56fc
649906:	50                   	push   %eax
649907:	ff 51 24             	call   *0x24(%ecx)
64990a:	8b bd 3c ff ff ff    	mov    -0xc4(%ebp),%edi
649910:	83 c4 1c             	add    $0x1c,%esp
649913:	b3 01                	mov    $0x1,%bl
649915:	c6 07 00             	movb   $0x0,(%edi)
649918:	e9 8a fe ff ff       	jmp    0x6497a7
64991d:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
649921:	75 79                	jne    0x64999c
649923:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
649927:	74 73                	je     0x64999c
649929:	e8 b2 ca fe ff       	call   0x6363e0
64992e:	ff 76 04             	push   0x4(%esi)
649931:	68 10 48 6e 00       	push   $0x6e4810
649936:	8b 08                	mov    (%eax),%ecx
649938:	50                   	push   %eax
649939:	ff 51 04             	call   *0x4(%ecx)
64993c:	83 c4 0c             	add    $0xc,%esp
64993f:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
649945:	8d 4e 28             	lea    0x28(%esi),%ecx
649948:	50                   	push   %eax
649949:	e8 12 d5 ff ff       	call   0x646e60
64994e:	50                   	push   %eax
64994f:	8d 4d 98             	lea    -0x68(%ebp),%ecx
649952:	e8 49 e1 fe ff       	call   0x637aa0
649957:	8b 45 8c             	mov    -0x74(%ebp),%eax
64995a:	83 f8 08             	cmp    $0x8,%eax
64995d:	72 13                	jb     0x649972
64995f:	40                   	inc    %eax
649960:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
649966:	50                   	push   %eax
649967:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
64996d:	e8 6e f4 de ff       	call   0x438de0
649972:	8b 4e 18             	mov    0x18(%esi),%ecx
649975:	33 c0                	xor    %eax,%eax
649977:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
64997e:	8d 45 98             	lea    -0x68(%ebp),%eax
649981:	50                   	push   %eax
649982:	c7 45 8c 07 00 00 00 	movl   $0x7,-0x74(%ebp)
649989:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
649990:	e8 db 76 ff ff       	call   0x641070
649995:	b3 01                	mov    $0x1,%bl
649997:	e9 05 fe ff ff       	jmp    0x6497a1
64999c:	8b bd 3c ff ff ff    	mov    -0xc4(%ebp),%edi
6499a2:	b3 01                	mov    $0x1,%bl
6499a4:	c6 07 00             	movb   $0x0,(%edi)
6499a7:	e9 fb fd ff ff       	jmp    0x6497a7
6499ac:	cc                   	int3
6499ad:	cc                   	int3
6499ae:	cc                   	int3
6499af:	cc                   	int3
6499b0:	55                   	push   %ebp
6499b1:	8b ec                	mov    %esp,%ebp
6499b3:	6a ff                	push   $0xffffffff
6499b5:	68 18 51 66 00       	push   $0x665118
6499ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
6499c0:	50                   	push   %eax
6499c1:	81 ec f4 00 00 00    	sub    $0xf4,%esp
6499c7:	a1 d4 89 72 00       	mov    0x7289d4,%eax
6499cc:	33 c5                	xor    %ebp,%eax
6499ce:	89 45 f0             	mov    %eax,-0x10(%ebp)
6499d1:	53                   	push   %ebx
6499d2:	56                   	push   %esi
6499d3:	57                   	push   %edi
6499d4:	50                   	push   %eax
6499d5:	8d 45 f4             	lea    -0xc(%ebp),%eax
6499d8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
6499de:	8b f1                	mov    %ecx,%esi
6499e0:	8b 06                	mov    (%esi),%eax
6499e2:	8b 5d 08             	mov    0x8(%ebp),%ebx
6499e5:	ff 50 18             	call   *0x18(%eax)
6499e8:	8d 4e 28             	lea    0x28(%esi),%ecx
6499eb:	e8 40 d8 ff ff       	call   0x647230
6499f0:	84 c0                	test   %al,%al
6499f2:	0f 85 91 00 00 00    	jne    0x649a89
6499f8:	33 c0                	xor    %eax,%eax
6499fa:	c7 45 cc 07 00 00 00 	movl   $0x7,-0x34(%ebp)
649a01:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
649a08:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
649a0c:	89 45 d0             	mov    %eax,-0x30(%ebp)
649a0f:	89 45 d4             	mov    %eax,-0x2c(%ebp)
649a12:	89 45 fc             	mov    %eax,-0x4(%ebp)
649a15:	8d 4e 28             	lea    0x28(%esi),%ecx
649a18:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
649a1e:	50                   	push   %eax
649a1f:	e8 3c d4 ff ff       	call   0x646e60
649a24:	50                   	push   %eax
649a25:	8d 4d ac             	lea    -0x54(%ebp),%ecx
649a28:	e8 73 e0 fe ff       	call   0x637aa0
649a2d:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
649a33:	83 f8 08             	cmp    $0x8,%eax
649a36:	72 13                	jb     0x649a4b
649a38:	40                   	inc    %eax
649a39:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
649a3f:	50                   	push   %eax
649a40:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
649a46:	e8 95 f3 de ff       	call   0x438de0
649a4b:	8b 4e 18             	mov    0x18(%esi),%ecx
649a4e:	8d 45 ac             	lea    -0x54(%ebp),%eax
649a51:	50                   	push   %eax
649a52:	e8 19 76 ff ff       	call   0x641070
649a57:	e8 84 c9 fe ff       	call   0x6363e0
649a5c:	ff 76 04             	push   0x4(%esi)
649a5f:	68 58 49 6e 00       	push   $0x6e4958
649a64:	8b 08                	mov    (%eax),%ecx
649a66:	50                   	push   %eax
649a67:	ff 51 04             	call   *0x4(%ecx)
649a6a:	8b 45 cc             	mov    -0x34(%ebp),%eax
649a6d:	83 c4 0c             	add    $0xc,%esp
649a70:	83 f8 08             	cmp    $0x8,%eax
649a73:	72 0d                	jb     0x649a82
649a75:	40                   	inc    %eax
649a76:	8d 4d b8             	lea    -0x48(%ebp),%ecx
649a79:	50                   	push   %eax
649a7a:	ff 75 b8             	push   -0x48(%ebp)
649a7d:	e8 5e f3 de ff       	call   0x438de0
649a82:	32 c0                	xor    %al,%al
649a84:	e9 7d 04 00 00       	jmp    0x649f06