40ca73:	51                   	push   %ecx
40ca74:	57                   	push   %edi
40ca75:	ff 75 08             	push   0x8(%ebp)
40ca78:	e8 00 06 00 00       	call   0x40d07d
40ca7d:	83 c4 0c             	add    $0xc,%esp
40ca80:	68 03 01 00 00       	push   $0x103
40ca85:	ff 75 08             	push   0x8(%ebp)
40ca88:	8b 47 08             	mov    0x8(%edi),%eax
40ca8b:	ff 74 f0 04          	push   0x4(%eax,%esi,8)
40ca8f:	e8 3c 01 00 00       	call   0x40cbd0
40ca94:	eb 0d                	jmp    0x40caa3
40ca96:	ff 75 ec             	push   -0x14(%ebp)
40ca99:	e8 73 f2 ff ff       	call   0x40bd11
40ca9e:	59                   	pop    %ecx
40ca9f:	c3                   	ret
40caa0:	8b 65 e8             	mov    -0x18(%ebp),%esp
40caa3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40caa7:	8b 75 e0             	mov    -0x20(%ebp),%esi
40caaa:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40caad:	eb 93                	jmp    0x40ca42
40caaf:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40cab6:	e8 27 00 00 00       	call   0x40cae2
40cabb:	3b 75 14             	cmp    0x14(%ebp),%esi
40cabe:	75 36                	jne    0x40caf6
40cac0:	56                   	push   %esi
40cac1:	ff 75 10             	push   0x10(%ebp)
40cac4:	ff 75 08             	push   0x8(%ebp)
40cac7:	e8 b1 05 00 00       	call   0x40d07d
40cacc:	83 c4 0c             	add    $0xc,%esp
40cacf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cad2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cad9:	59                   	pop    %ecx
40cada:	5f                   	pop    %edi
40cadb:	5e                   	pop    %esi
40cadc:	5b                   	pop    %ebx
40cadd:	c9                   	leave
40cade:	c3                   	ret
40cadf:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40cae2:	e8 b3 f2 ff ff       	call   0x40bd9a
40cae7:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40caeb:	7e 08                	jle    0x40caf5
40caed:	e8 a8 f2 ff ff       	call   0x40bd9a
40caf2:	ff 48 18             	decl   0x18(%eax)
40caf5:	c3                   	ret
40caf6:	e8 96 f3 00 00       	call   0x41be91
40cafb:	cc                   	int3
40cafc:	55                   	push   %ebp
40cafd:	8b ec                	mov    %esp,%ebp
40caff:	83 ec 1c             	sub    $0x1c,%esp
40cb02:	53                   	push   %ebx
40cb03:	56                   	push   %esi
40cb04:	8b 75 0c             	mov    0xc(%ebp),%esi
40cb07:	57                   	push   %edi
40cb08:	85 f6                	test   %esi,%esi
40cb0a:	0f 84 80 00 00 00    	je     0x40cb90
40cb10:	8b 3e                	mov    (%esi),%edi
40cb12:	33 db                	xor    %ebx,%ebx
40cb14:	85 ff                	test   %edi,%edi
40cb16:	7e 71                	jle    0x40cb89
40cb18:	8b 45 08             	mov    0x8(%ebp),%eax
40cb1b:	8b d3                	mov    %ebx,%edx
40cb1d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40cb20:	8b 40 1c             	mov    0x1c(%eax),%eax
40cb23:	89 45 ec             	mov    %eax,-0x14(%ebp)
40cb26:	8b 40 0c             	mov    0xc(%eax),%eax
40cb29:	8b 08                	mov    (%eax),%ecx
40cb2b:	83 c0 04             	add    $0x4,%eax
40cb2e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40cb31:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40cb34:	8b c8                	mov    %eax,%ecx
40cb36:	8b 45 f0             	mov    -0x10(%ebp),%eax
40cb39:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cb3c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cb3f:	85 c0                	test   %eax,%eax
40cb41:	7e 38                	jle    0x40cb7b
40cb43:	8b 46 04             	mov    0x4(%esi),%eax
40cb46:	03 c2                	add    %edx,%eax
40cb48:	89 45 e8             	mov    %eax,-0x18(%ebp)
40cb4b:	ff 75 ec             	push   -0x14(%ebp)
40cb4e:	ff 31                	push   (%ecx)
40cb50:	50                   	push   %eax
40cb51:	e8 63 fa ff ff       	call   0x40c5b9
40cb56:	83 c4 0c             	add    $0xc,%esp
40cb59:	85 c0                	test   %eax,%eax
40cb5b:	75 19                	jne    0x40cb76
40cb5d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cb60:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cb63:	48                   	dec    %eax
40cb64:	83 c1 04             	add    $0x4,%ecx
40cb67:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cb6a:	85 c0                	test   %eax,%eax
40cb6c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cb6f:	8b 45 e8             	mov    -0x18(%ebp),%eax
40cb72:	7f d7                	jg     0x40cb4b
40cb74:	eb 02                	jmp    0x40cb78
40cb76:	b3 01                	mov    $0x1,%bl
40cb78:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cb7b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40cb7e:	83 c2 10             	add    $0x10,%edx
40cb81:	89 55 fc             	mov    %edx,-0x4(%ebp)
40cb84:	83 ef 01             	sub    $0x1,%edi
40cb87:	75 ab                	jne    0x40cb34
40cb89:	5f                   	pop    %edi
40cb8a:	5e                   	pop    %esi
40cb8b:	8a c3                	mov    %bl,%al
40cb8d:	5b                   	pop    %ebx
40cb8e:	c9                   	leave
40cb8f:	c3                   	ret
40cb90:	e8 fc f2 00 00       	call   0x41be91
40cb95:	cc                   	int3
40cb96:	55                   	push   %ebp
40cb97:	8b ec                	mov    %esp,%ebp
40cb99:	ff 75 10             	push   0x10(%ebp)
40cb9c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cb9f:	ff 55 0c             	call   *0xc(%ebp)
40cba2:	5d                   	pop    %ebp
40cba3:	c2 0c 00             	ret    $0xc
40cba6:	55                   	push   %ebp
40cba7:	8b ec                	mov    %esp,%ebp
40cba9:	ff 75 14             	push   0x14(%ebp)
40cbac:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cbaf:	ff 75 10             	push   0x10(%ebp)
40cbb2:	ff 55 0c             	call   *0xc(%ebp)
40cbb5:	5d                   	pop    %ebp
40cbb6:	c2 10 00             	ret    $0x10
40cbb9:	55                   	push   %ebp
40cbba:	8b ec                	mov    %esp,%ebp
40cbbc:	8b 45 08             	mov    0x8(%ebp),%eax
40cbbf:	8b 40 1c             	mov    0x1c(%eax),%eax
40cbc2:	5d                   	pop    %ebp
40cbc3:	c3                   	ret
40cbc4:	cc                   	int3
40cbc5:	cc                   	int3
40cbc6:	cc                   	int3
40cbc7:	cc                   	int3
40cbc8:	cc                   	int3
40cbc9:	cc                   	int3
40cbca:	cc                   	int3
40cbcb:	cc                   	int3
40cbcc:	cc                   	int3
40cbcd:	cc                   	int3
40cbce:	cc                   	int3
40cbcf:	cc                   	int3
40cbd0:	55                   	push   %ebp
40cbd1:	8b ec                	mov    %esp,%ebp
40cbd3:	83 ec 04             	sub    $0x4,%esp
40cbd6:	53                   	push   %ebx
40cbd7:	51                   	push   %ecx
40cbd8:	8b 45 0c             	mov    0xc(%ebp),%eax
40cbdb:	83 c0 0c             	add    $0xc,%eax
40cbde:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cbe1:	8b 45 08             	mov    0x8(%ebp),%eax
40cbe4:	55                   	push   %ebp
40cbe5:	ff 75 10             	push   0x10(%ebp)
40cbe8:	8b 4d 10             	mov    0x10(%ebp),%ecx
40cbeb:	8b 6d fc             	mov    -0x4(%ebp),%ebp
40cbee:	e8 9d 04 00 00       	call   0x40d090
40cbf3:	56                   	push   %esi
40cbf4:	57                   	push   %edi
40cbf5:	ff d0                	call   *%eax
40cbf7:	5f                   	pop    %edi
40cbf8:	5e                   	pop    %esi
40cbf9:	8b dd                	mov    %ebp,%ebx
40cbfb:	5d                   	pop    %ebp
40cbfc:	8b 4d 10             	mov    0x10(%ebp),%ecx
40cbff:	55                   	push   %ebp
40cc00:	8b eb                	mov    %ebx,%ebp
40cc02:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40cc08:	75 05                	jne    0x40cc0f
40cc0a:	b9 02 00 00 00       	mov    $0x2,%ecx
40cc0f:	51                   	push   %ecx
40cc10:	e8 7b 04 00 00       	call   0x40d090
40cc15:	5d                   	pop    %ebp
40cc16:	59                   	pop    %ecx
40cc17:	5b                   	pop    %ebx
40cc18:	c9                   	leave
40cc19:	c2 0c 00             	ret    $0xc
40cc1c:	55                   	push   %ebp
40cc1d:	8b ec                	mov    %esp,%ebp
40cc1f:	a1 68 12 43 00       	mov    0x431268,%eax
40cc24:	3d 7d 3a 40 00       	cmp    $0x403a7d,%eax
40cc29:	74 1f                	je     0x40cc4a
40cc2b:	64 8b 0d 18 00 00 00 	mov    %fs:0x18,%ecx
40cc32:	8b 45 08             	mov    0x8(%ebp),%eax
40cc35:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
40cc3b:	3b 41 08             	cmp    0x8(%ecx),%eax
40cc3e:	72 05                	jb     0x40cc45
40cc40:	3b 41 04             	cmp    0x4(%ecx),%eax
40cc43:	76 05                	jbe    0x40cc4a
40cc45:	6a 0d                	push   $0xd
40cc47:	59                   	pop    %ecx
40cc48:	cd 29                	int    $0x29
40cc4a:	5d                   	pop    %ebp
40cc4b:	c3                   	ret
40cc4c:	cc                   	int3
40cc4d:	cc                   	int3
40cc4e:	cc                   	int3
40cc4f:	cc                   	int3
40cc50:	53                   	push   %ebx
40cc51:	56                   	push   %esi
40cc52:	57                   	push   %edi
40cc53:	8b 54 24 10          	mov    0x10(%esp),%edx
40cc57:	8b 44 24 14          	mov    0x14(%esp),%eax
40cc5b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40cc5f:	55                   	push   %ebp
40cc60:	52                   	push   %edx
40cc61:	50                   	push   %eax
40cc62:	51                   	push   %ecx
40cc63:	51                   	push   %ecx
40cc64:	68 f0 cc 40 00       	push   $0x40ccf0
40cc69:	64 ff 35 00 00 00 00 	push   %fs:0x0
40cc70:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
40cc75:	33 c4                	xor    %esp,%eax
40cc77:	89 44 24 08          	mov    %eax,0x8(%esp)
40cc7b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40cc82:	8b 44 24 30          	mov    0x30(%esp),%eax
40cc86:	8b 58 08             	mov    0x8(%eax),%ebx
40cc89:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40cc8d:	33 19                	xor    (%ecx),%ebx
40cc8f:	8b 70 0c             	mov    0xc(%eax),%esi
40cc92:	83 fe fe             	cmp    $0xfffffffe,%esi
40cc95:	0f 84 46 00 00 00    	je     0x40cce1
40cc9b:	8b 54 24 34          	mov    0x34(%esp),%edx
40cc9f:	83 fa fe             	cmp    $0xfffffffe,%edx
40cca2:	74 08                	je     0x40ccac
40cca4:	3b f2                	cmp    %edx,%esi
40cca6:	0f 86 35 00 00 00    	jbe    0x40cce1
40ccac:	8d 34 76             	lea    (%esi,%esi,2),%esi
40ccaf:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
40ccb3:	8b 0b                	mov    (%ebx),%ecx
40ccb5:	89 48 0c             	mov    %ecx,0xc(%eax)
40ccb8:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40ccbc:	0f 85 c0 ff ff ff    	jne    0x40cc82
40ccc2:	68 01 01 00 00       	push   $0x101
40ccc7:	8b 43 08             	mov    0x8(%ebx),%eax
40ccca:	e8 d1 03 00 00       	call   0x40d0a0
40cccf:	b9 01 00 00 00       	mov    $0x1,%ecx
40ccd4:	8b 43 08             	mov    0x8(%ebx),%eax
40ccd7:	e8 e4 03 00 00       	call   0x40d0c0
40ccdc:	e9 a1 ff ff ff       	jmp    0x40cc82
40cce1:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40cce8:	83 c4 18             	add    $0x18,%esp
40cceb:	5f                   	pop    %edi
40ccec:	5e                   	pop    %esi
40cced:	5b                   	pop    %ebx
40ccee:	c3                   	ret
40ccef:	cc                   	int3
40ccf0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40ccf4:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
40ccfb:	b8 01 00 00 00       	mov    $0x1,%eax
40cd00:	74 33                	je     0x40cd35
40cd02:	8b 44 24 08          	mov    0x8(%esp),%eax
40cd06:	8b 48 08             	mov    0x8(%eax),%ecx
40cd09:	33 c8                	xor    %eax,%ecx
40cd0b:	e8 97 cf ff ff       	call   0x409ca7
40cd10:	55                   	push   %ebp
40cd11:	8b 68 18             	mov    0x18(%eax),%ebp
40cd14:	ff 70 0c             	push   0xc(%eax)
40cd17:	ff 70 10             	push   0x10(%eax)
40cd1a:	ff 70 14             	push   0x14(%eax)
40cd1d:	e8 2e ff ff ff       	call   0x40cc50
40cd22:	83 c4 0c             	add    $0xc,%esp
40cd25:	5d                   	pop    %ebp
40cd26:	8b 44 24 08          	mov    0x8(%esp),%eax
40cd2a:	8b 54 24 10          	mov    0x10(%esp),%edx
40cd2e:	89 02                	mov    %eax,(%edx)
40cd30:	b8 03 00 00 00       	mov    $0x3,%eax
40cd35:	c3                   	ret
40cd36:	cc                   	int3
40cd37:	cc                   	int3
40cd38:	cc                   	int3
40cd39:	cc                   	int3
40cd3a:	cc                   	int3
40cd3b:	cc                   	int3
40cd3c:	cc                   	int3
40cd3d:	cc                   	int3
40cd3e:	cc                   	int3
40cd3f:	cc                   	int3
40cd40:	55                   	push   %ebp
40cd41:	56                   	push   %esi
40cd42:	57                   	push   %edi
40cd43:	53                   	push   %ebx
40cd44:	8b ea                	mov    %edx,%ebp
40cd46:	33 c0                	xor    %eax,%eax
40cd48:	33 db                	xor    %ebx,%ebx
40cd4a:	33 d2                	xor    %edx,%edx
40cd4c:	33 f6                	xor    %esi,%esi
40cd4e:	33 ff                	xor    %edi,%edi
40cd50:	ff d1                	call   *%ecx
40cd52:	5b                   	pop    %ebx
40cd53:	5f                   	pop    %edi
40cd54:	5e                   	pop    %esi
40cd55:	5d                   	pop    %ebp
40cd56:	c3                   	ret
40cd57:	cc                   	int3
40cd58:	cc                   	int3
40cd59:	cc                   	int3
40cd5a:	cc                   	int3
40cd5b:	cc                   	int3
40cd5c:	cc                   	int3
40cd5d:	cc                   	int3
40cd5e:	cc                   	int3
40cd5f:	cc                   	int3
40cd60:	8b ea                	mov    %edx,%ebp
40cd62:	8b f1                	mov    %ecx,%esi
40cd64:	8b c1                	mov    %ecx,%eax
40cd66:	6a 01                	push   $0x1
40cd68:	e8 33 03 00 00       	call   0x40d0a0
40cd6d:	33 c0                	xor    %eax,%eax
40cd6f:	33 db                	xor    %ebx,%ebx
40cd71:	33 c9                	xor    %ecx,%ecx
40cd73:	33 d2                	xor    %edx,%edx
40cd75:	33 ff                	xor    %edi,%edi
40cd77:	ff e6                	jmp    *%esi
40cd79:	cc                   	int3
40cd7a:	cc                   	int3
40cd7b:	cc                   	int3
40cd7c:	cc                   	int3
40cd7d:	cc                   	int3
40cd7e:	cc                   	int3
40cd7f:	cc                   	int3
40cd80:	55                   	push   %ebp
40cd81:	8b ec                	mov    %esp,%ebp
40cd83:	53                   	push   %ebx
40cd84:	56                   	push   %esi
40cd85:	57                   	push   %edi
40cd86:	6a 00                	push   $0x0
40cd88:	52                   	push   %edx
40cd89:	68 95 cd 40 00       	push   $0x40cd95
40cd8e:	51                   	push   %ecx
40cd8f:	ff 15 d4 10 43 00    	call   *0x4310d4
40cd95:	5f                   	pop    %edi
40cd96:	5e                   	pop    %esi
40cd97:	5b                   	pop    %ebx
40cd98:	5d                   	pop    %ebp
40cd99:	c3                   	ret
40cd9a:	cc                   	int3
40cd9b:	cc                   	int3
40cd9c:	cc                   	int3
40cd9d:	cc                   	int3
40cd9e:	cc                   	int3
40cd9f:	cc                   	int3
40cda0:	55                   	push   %ebp
40cda1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40cda5:	52                   	push   %edx
40cda6:	51                   	push   %ecx
40cda7:	ff 74 24 14          	push   0x14(%esp)
40cdab:	e8 a0 fe ff ff       	call   0x40cc50
40cdb0:	83 c4 0c             	add    $0xc,%esp
40cdb3:	5d                   	pop    %ebp