40c70c:	15 40 00
40c70f:	89 9d cc f9 ff ff    	mov    %ebx,-0x634(%ebp)
40c715:	33 db                	xor    %ebx,%ebx
40c717:	8d 8d c8 f9 ff ff    	lea    -0x638(%ebp),%ecx
40c71d:	43                   	inc    %ebx
40c71e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c721:	e8 60 c0 ff ff       	call   0x408786
40c726:	8d 85 cc f9 ff ff    	lea    -0x634(%ebp),%eax
40c72c:	50                   	push   %eax
40c72d:	68 6b 01 00 00       	push   $0x16b
40c732:	e8 25 67 00 00       	call   0x412e5c
40c737:	85 c0                	test   %eax,%eax
40c739:	78 21                	js     0x40c75c
40c73b:	8b 8d cc f9 ff ff    	mov    -0x634(%ebp),%ecx
40c741:	85 c9                	test   %ecx,%ecx
40c743:	74 17                	je     0x40c75c
40c745:	8b 01                	mov    (%ecx),%eax
40c747:	8d 95 d8 f9 ff ff    	lea    -0x628(%ebp),%edx
40c74d:	52                   	push   %edx
40c74e:	51                   	push   %ecx
40c74f:	8b 70 18             	mov    0x18(%eax),%esi
40c752:	8b ce                	mov    %esi,%ecx
40c754:	ff 15 90 b3 41 00    	call   *0x41b390
40c75a:	ff d6                	call   *%esi
40c75c:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40c763:	8d 8d c8 f9 ff ff    	lea    -0x638(%ebp),%ecx
40c769:	c7 85 c8 f9 ff ff 54 	movl   $0x401554,-0x638(%ebp)
40c770:	15 40 00
40c773:	e8 0e c0 ff ff       	call   0x408786
40c778:	39 9d d8 f9 ff ff    	cmp    %ebx,-0x628(%ebp)
40c77e:	75 0d                	jne    0x40c78d
40c780:	8d 8d d8 f9 ff ff    	lea    -0x628(%ebp),%ecx
40c786:	e8 49 2c 00 00       	call   0x40f3d4
40c78b:	eb 02                	jmp    0x40c78f
40c78d:	33 db                	xor    %ebx,%ebx
40c78f:	ff b5 d0 f9 ff ff    	push   -0x630(%ebp)
40c795:	8d 45 e0             	lea    -0x20(%ebp),%eax
40c798:	89 5f 10             	mov    %ebx,0x10(%edi)
40c79b:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c79e:	50                   	push   %eax
40c79f:	ff 77 04             	push   0x4(%edi)
40c7a2:	e8 0d 25 00 00       	call   0x40ecb4
40c7a7:	e8 84 74 00 00       	call   0x413c30
40c7ac:	c2 04 00             	ret    $0x4
40c7af:	cc                   	int3
40c7b0:	6a 0c                	push   $0xc
40c7b2:	b8 c2 43 41 00       	mov    $0x4143c2,%eax
40c7b7:	e8 83 74 00 00       	call   0x413c3f
40c7bc:	8b d9                	mov    %ecx,%ebx
40c7be:	8b 45 08             	mov    0x8(%ebp),%eax
40c7c1:	ba eb 03 00 00       	mov    $0x3eb,%edx
40c7c6:	8b c8                	mov    %eax,%ecx
40c7c8:	33 ff                	xor    %edi,%edi
40c7ca:	0f b7 c0             	movzwl %ax,%eax
40c7cd:	c1 e9 10             	shr    $0x10,%ecx
40c7d0:	2b c2                	sub    %edx,%eax
40c7d2:	0f 84 23 01 00 00    	je     0x40c8fb
40c7d8:	83 e8 14             	sub    $0x14,%eax
40c7db:	74 22                	je     0x40c7ff
40c7dd:	83 e8 03             	sub    $0x3,%eax
40c7e0:	74 06                	je     0x40c7e8
40c7e2:	47                   	inc    %edi
40c7e3:	e9 ec 01 00 00       	jmp    0x40c9d4
40c7e8:	33 c0                	xor    %eax,%eax
40c7ea:	66 3b c1             	cmp    %cx,%ax
40c7ed:	0f 85 e1 01 00 00    	jne    0x40c9d4
40c7f3:	8b cb                	mov    %ebx,%ecx
40c7f5:	e8 f1 02 00 00       	call   0x40caeb
40c7fa:	e9 d5 01 00 00       	jmp    0x40c9d4
40c7ff:	33 c0                	xor    %eax,%eax
40c801:	40                   	inc    %eax
40c802:	66 3b c1             	cmp    %cx,%ax
40c805:	0f 85 c9 01 00 00    	jne    0x40c9d4
40c80b:	57                   	push   %edi
40c80c:	57                   	push   %edi
40c80d:	68 88 01 00 00       	push   $0x188
40c812:	68 ff 03 00 00       	push   $0x3ff
40c817:	ff 73 04             	push   0x4(%ebx)
40c81a:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c820:	50                   	push   %eax
40c821:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40c827:	85 c0                	test   %eax,%eax
40c829:	0f 85 a5 01 00 00    	jne    0x40c9d4
40c82f:	68 08 02 00 00       	push   $0x208
40c834:	e8 53 6d 00 00       	call   0x41358c
40c839:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c83c:	59                   	pop    %ecx
40c83d:	85 c0                	test   %eax,%eax
40c83f:	0f 84 8f 01 00 00    	je     0x40c9d4
40c845:	6a 14                	push   $0x14
40c847:	e8 4b 6b 00 00       	call   0x413397
40c84c:	8b f0                	mov    %eax,%esi
40c84e:	59                   	pop    %ecx
40c84f:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c852:	89 75 e8             	mov    %esi,-0x18(%ebp)
40c855:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c858:	85 f6                	test   %esi,%esi
40c85a:	74 32                	je     0x40c88e
40c85c:	33 c0                	xor    %eax,%eax
40c85e:	89 7e 04             	mov    %edi,0x4(%esi)
40c861:	66 89 46 08          	mov    %ax,0x8(%esi)
40c865:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c869:	68 08 02 00 00       	push   $0x208
40c86e:	c7 06 c8 15 40 00    	movl   $0x4015c8,(%esi)
40c874:	e8 13 6d 00 00       	call   0x41358c
40c879:	89 46 0c             	mov    %eax,0xc(%esi)
40c87c:	c7 04 24 08 02 00 00 	movl   $0x208,(%esp)
40c883:	e8 04 6d 00 00       	call   0x41358c
40c888:	59                   	pop    %ecx
40c889:	89 46 10             	mov    %eax,0x10(%esi)
40c88c:	eb 05                	jmp    0x40c893
40c88e:	8b f7                	mov    %edi,%esi
40c890:	89 7d f0             	mov    %edi,-0x10(%ebp)
40c893:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c897:	85 f6                	test   %esi,%esi
40c899:	74 34                	je     0x40c8cf
40c89b:	51                   	push   %ecx
40c89c:	8b ce                	mov    %esi,%ecx
40c89e:	e8 ae c3 ff ff       	call   0x408c51
40c8a3:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c8a6:	ba cd 00 00 00       	mov    $0xcd,%edx
40c8ab:	56                   	push   %esi
40c8ac:	e8 d4 32 00 00       	call   0x40fb85
40c8b1:	51                   	push   %ecx
40c8b2:	ff 75 ec             	push   -0x14(%ebp)
40c8b5:	8b ce                	mov    %esi,%ecx
40c8b7:	e8 63 c5 ff ff       	call   0x408e1f
40c8bc:	8b 06                	mov    (%esi),%eax
40c8be:	6a 01                	push   $0x1
40c8c0:	8b 30                	mov    (%eax),%esi
40c8c2:	8b ce                	mov    %esi,%ecx
40c8c4:	ff 15 90 b3 41 00    	call   *0x41b390
40c8ca:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c8cd:	ff d6                	call   *%esi
40c8cf:	8b 75 ec             	mov    -0x14(%ebp),%esi
40c8d2:	56                   	push   %esi
40c8d3:	57                   	push   %edi
40c8d4:	68 80 01 00 00       	push   $0x180
40c8d9:	68 ff 03 00 00       	push   $0x3ff
40c8de:	ff 73 04             	push   0x4(%ebx)
40c8e1:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c8e7:	50                   	push   %eax
40c8e8:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40c8ee:	56                   	push   %esi
40c8ef:	ff 15 24 b3 41 00    	call   *0x41b324
40c8f5:	59                   	pop    %ecx
40c8f6:	e9 d9 00 00 00       	jmp    0x40c9d4
40c8fb:	33 c0                	xor    %eax,%eax
40c8fd:	40                   	inc    %eax
40c8fe:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c901:	66 3b c1             	cmp    %cx,%ax
40c904:	0f 85 ca 00 00 00    	jne    0x40c9d4
40c90a:	52                   	push   %edx
40c90b:	8b cb                	mov    %ebx,%ecx
40c90d:	e8 c5 03 00 00       	call   0x40ccd7
40c912:	57                   	push   %edi
40c913:	57                   	push   %edi
40c914:	68 46 01 00 00       	push   $0x146
40c919:	68 eb 03 00 00       	push   $0x3eb
40c91e:	ff 73 04             	push   0x4(%ebx)
40c921:	8b f0                	mov    %eax,%esi
40c923:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40c929:	50                   	push   %eax
40c92a:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40c930:	8d 4e 01             	lea    0x1(%esi),%ecx
40c933:	3b c1                	cmp    %ecx,%eax
40c935:	75 0b                	jne    0x40c942
40c937:	33 c0                	xor    %eax,%eax
40c939:	40                   	inc    %eax
40c93a:	39 05 80 93 41 00    	cmp    %eax,0x419380
40c940:	75 05                	jne    0x40c947
40c942:	8b c7                	mov    %edi,%eax
40c944:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c947:	50                   	push   %eax
40c948:	68 02 04 00 00       	push   $0x402
40c94d:	8b cb                	mov    %ebx,%ecx
40c94f:	e8 18 03 00 00       	call   0x40cc6c
40c954:	39 7d ec             	cmp    %edi,-0x14(%ebp)
40c957:	74 11                	je     0x40c96a
40c959:	6a 05                	push   $0x5
40c95b:	5e                   	pop    %esi
40c95c:	39 7b 10             	cmp    %edi,0x10(%ebx)
40c95f:	75 11                	jne    0x40c972
40c961:	8b cb                	mov    %ebx,%ecx
40c963:	e8 83 01 00 00       	call   0x40caeb
40c968:	eb 08                	jmp    0x40c972
40c96a:	83 fe 04             	cmp    $0x4,%esi
40c96d:	7e 03                	jle    0x40c972
40c96f:	6a 04                	push   $0x4
40c971:	5e                   	pop    %esi
40c972:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40c975:	85 c9                	test   %ecx,%ecx
40c977:	74 06                	je     0x40c97f
40c979:	56                   	push   %esi
40c97a:	e8 60 26 00 00       	call   0x40efdf
40c97f:	83 fe 05             	cmp    $0x5,%esi
40c982:	75 0c                	jne    0x40c990
40c984:	c7 05 18 98 41 00 14 	movl   $0x20014,0x419818
40c98b:	00 02 00
40c98e:	eb 44                	jmp    0x40c9d4
40c990:	83 fe 04             	cmp    $0x4,%esi
40c993:	75 0c                	jne    0x40c9a1
40c995:	c7 05 18 98 41 00 22 	movl   $0x100022,0x419818
40c99c:	00 10 00
40c99f:	eb 33                	jmp    0x40c9d4
40c9a1:	83 fe 02             	cmp    $0x2,%esi
40c9a4:	75 0c                	jne    0x40c9b2
40c9a6:	c7 05 18 98 41 00 12 	movl   $0x20012,0x419818
40c9ad:	00 02 00
40c9b0:	eb 22                	jmp    0x40c9d4
40c9b2:	83 fe 03             	cmp    $0x3,%esi
40c9b5:	75 0c                	jne    0x40c9c3
40c9b7:	c7 05 18 98 41 00 13 	movl   $0x20013,0x419818
40c9be:	00 02 00
40c9c1:	eb 11                	jmp    0x40c9d4
40c9c3:	4e                   	dec    %esi
40c9c4:	f7 de                	neg    %esi
40c9c6:	1b f6                	sbb    %esi,%esi
40c9c8:	81 c6 11 00 02 00    	add    $0x20011,%esi
40c9ce:	89 35 18 98 41 00    	mov    %esi,0x419818
40c9d4:	8b c7                	mov    %edi,%eax
40c9d6:	e8 41 72 00 00       	call   0x413c1c
40c9db:	c2 08 00             	ret    $0x8
40c9de:	cc                   	int3
40c9df:	cc                   	int3
40c9e0:	8b ff                	mov    %edi,%edi
40c9e2:	56                   	push   %esi
40c9e3:	57                   	push   %edi
40c9e4:	68 eb 03 00 00       	push   $0x3eb
40c9e9:	8b f9                	mov    %ecx,%edi
40c9eb:	33 f6                	xor    %esi,%esi
40c9ed:	e8 e5 02 00 00       	call   0x40ccd7
40c9f2:	83 f8 07             	cmp    $0x7,%eax
40c9f5:	75 14                	jne    0x40ca0b
40c9f7:	39 77 10             	cmp    %esi,0x10(%edi)
40c9fa:	75 0f                	jne    0x40ca0b
40c9fc:	6a 30                	push   $0x30
40c9fe:	51                   	push   %ecx
40c9ff:	8b 4f 04             	mov    0x4(%edi),%ecx
40ca02:	6a 33                	push   $0x33
40ca04:	5a                   	pop    %edx
40ca05:	e8 e1 33 00 00       	call   0x40fdeb
40ca0a:	46                   	inc    %esi
40ca0b:	5f                   	pop    %edi
40ca0c:	8b c6                	mov    %esi,%eax
40ca0e:	5e                   	pop    %esi
40ca0f:	c2 04 00             	ret    $0x4
40ca12:	cc                   	int3
40ca13:	cc                   	int3
40ca14:	cc                   	int3
40ca15:	cc                   	int3
40ca16:	cc                   	int3
40ca17:	cc                   	int3
40ca18:	cc                   	int3
40ca19:	cc                   	int3
40ca1a:	cc                   	int3
40ca1b:	cc                   	int3
40ca1c:	cc                   	int3
40ca1d:	cc                   	int3
40ca1e:	cc                   	int3
40ca1f:	cc                   	int3
40ca20:	8b ff                	mov    %edi,%edi
40ca22:	55                   	push   %ebp
40ca23:	8b ec                	mov    %esp,%ebp
40ca25:	81 ec 08 06 00 00    	sub    $0x608,%esp
40ca2b:	a1 18 51 41 00       	mov    0x415118,%eax
40ca30:	33 c5                	xor    %ebp,%eax
40ca32:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ca35:	56                   	push   %esi
40ca36:	57                   	push   %edi
40ca37:	68 eb 03 00 00       	push   $0x3eb
40ca3c:	8b f9                	mov    %ecx,%edi
40ca3e:	e8 94 02 00 00       	call   0x40ccd7
40ca43:	8b f0                	mov    %eax,%esi
40ca45:	83 fe 03             	cmp    $0x3,%esi
40ca48:	76 20                	jbe    0x40ca6a
40ca4a:	83 fe 06             	cmp    $0x6,%esi
40ca4d:	76 13                	jbe    0x40ca62
40ca4f:	83 fe 07             	cmp    $0x7,%esi
40ca52:	75 07                	jne    0x40ca5b
40ca54:	be 14 00 02 00       	mov    $0x20014,%esi
40ca59:	eb 15                	jmp    0x40ca70
40ca5b:	be 10 00 02 00       	mov    $0x20010,%esi
40ca60:	eb 0e                	jmp    0x40ca70
40ca62:	81 c6 1e 00 10 00    	add    $0x10001e,%esi
40ca68:	eb 06                	jmp    0x40ca70
40ca6a:	81 c6 10 00 02 00    	add    $0x20010,%esi
40ca70:	56                   	push   %esi
40ca71:	68 4c 01 00 00       	push   $0x14c
40ca76:	e8 80 63 00 00       	call   0x412dfb
40ca7b:	81 fe 22 00 10 00    	cmp    $0x100022,%esi
40ca81:	74 28                	je     0x40caab
40ca83:	81 fe 23 00 10 00    	cmp    $0x100023,%esi
40ca89:	74 20                	je     0x40caab
40ca8b:	81 fe 24 00 10 00    	cmp    $0x100024,%esi
40ca91:	74 18                	je     0x40caab
40ca93:	81 fe 14 00 02 00    	cmp    $0x20014,%esi
40ca99:	74 10                	je     0x40caab
40ca9b:	81 fe 31 00 00 04    	cmp    $0x4000031,%esi
40caa1:	74 08                	je     0x40caab
40caa3:	81 fe 30 00 01 00    	cmp    $0x10030,%esi
40caa9:	75 0c                	jne    0x40cab7
40caab:	6a 00                	push   $0x0
40caad:	68 08 01 00 00       	push   $0x108
40cab2:	e8 44 63 00 00       	call   0x412dfb
40cab7:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
40cabb:	74 1c                	je     0x40cad9
40cabd:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40cac1:	74 16                	je     0x40cad9
40cac3:	8d 8d f8 f9 ff ff    	lea    -0x608(%ebp),%ecx
40cac9:	e8 3c 28 00 00       	call   0x40f30a
40cace:	8d 8d f8 f9 ff ff    	lea    -0x608(%ebp),%ecx
40cad4:	e8 88 b6 ff ff       	call   0x408161
40cad9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cadc:	33 c0                	xor    %eax,%eax
40cade:	5f                   	pop    %edi
40cadf:	33 cd                	xor    %ebp,%ecx
40cae1:	5e                   	pop    %esi
40cae2:	e8 f9 6d 00 00       	call   0x4138e0
40cae7:	c9                   	leave
40cae8:	c2 04 00             	ret    $0x4
40caeb:	8b ff                	mov    %edi,%edi
40caed:	55                   	push   %ebp
40caee:	8b ec                	mov    %esp,%ebp
40caf0:	51                   	push   %ecx
40caf1:	51                   	push   %ecx
40caf2:	53                   	push   %ebx
40caf3:	56                   	push   %esi
40caf4:	8b f1                	mov    %ecx,%esi
40caf6:	6a 20                	push   $0x20
40caf8:	89 75 fc             	mov    %esi,-0x4(%ebp)
40cafb:	e8 97 68 00 00       	call   0x413397
40cb00:	8b d8                	mov    %eax,%ebx
40cb02:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40cb05:	59                   	pop    %ecx
40cb06:	85 db                	test   %ebx,%ebx
40cb08:	74 2f                	je     0x40cb39
40cb0a:	8b 46 10             	mov    0x10(%esi),%eax
40cb0d:	33 d2                	xor    %edx,%edx
40cb0f:	33 c9                	xor    %ecx,%ecx
40cb11:	89 53 04             	mov    %edx,0x4(%ebx)
40cb14:	66 89 4b 08          	mov    %cx,0x8(%ebx)
40cb18:	c7 03 00 16 40 00    	movl   $0x401600,(%ebx)
40cb1e:	89 43 10             	mov    %eax,0x10(%ebx)
40cb21:	89 53 14             	mov    %edx,0x14(%ebx)
40cb24:	89 53 1c             	mov    %edx,0x1c(%ebx)
40cb27:	89 53 18             	mov    %edx,0x18(%ebx)
40cb2a:	89 53 0c             	mov    %edx,0xc(%ebx)
40cb2d:	c7 05 0c 98 41 00 01 	movl   $0x1,0x41980c
40cb34:	00 00 00