402e40:	f6 47 0c 01          	testb  $0x1,0xc(%edi)
402e44:	0f 84 b4 00 00 00    	je     0x402efe
402e4a:	8b 57 04             	mov    0x4(%edi),%edx
402e4d:	85 d2                	test   %edx,%edx
402e4f:	75 08                	jne    0x402e59
402e51:	21 55 f4             	and    %edx,-0xc(%ebp)
402e54:	e9 a5 00 00 00       	jmp    0x402efe
402e59:	8b 5d f8             	mov    -0x8(%ebp),%ebx
402e5c:	8b 75 f8             	mov    -0x8(%ebp),%esi
402e5f:	2b c1                	sub    %ecx,%eax
402e61:	03 c2                	add    %edx,%eax
402e63:	c1 fb 05             	sar    $0x5,%ebx
402e66:	83 e6 1f             	and    $0x1f,%esi
402e69:	8d 1c 9d 20 46 41 00 	lea    0x414620(,%ebx,4),%ebx
402e70:	89 45 08             	mov    %eax,0x8(%ebp)
402e73:	8b 03                	mov    (%ebx),%eax
402e75:	c1 e6 06             	shl    $0x6,%esi
402e78:	f6 44 30 04 80       	testb  $0x80,0x4(%eax,%esi,1)
402e7d:	74 79                	je     0x402ef8
402e7f:	6a 02                	push   $0x2
402e81:	6a 00                	push   $0x0
402e83:	ff 75 f8             	push   -0x8(%ebp)
402e86:	e8 b6 58 00 00       	call   0x408741
402e8b:	83 c4 0c             	add    $0xc,%esp
402e8e:	3b 45 fc             	cmp    -0x4(%ebp),%eax
402e91:	75 20                	jne    0x402eb3
402e93:	8b 47 08             	mov    0x8(%edi),%eax
402e96:	8b 4d 08             	mov    0x8(%ebp),%ecx
402e99:	03 c8                	add    %eax,%ecx
402e9b:	eb 09                	jmp    0x402ea6
402e9d:	80 38 0a             	cmpb   $0xa,(%eax)
402ea0:	75 03                	jne    0x402ea5
402ea2:	ff 45 08             	incl   0x8(%ebp)
402ea5:	40                   	inc    %eax
402ea6:	3b c1                	cmp    %ecx,%eax
402ea8:	72 f3                	jb     0x402e9d
402eaa:	f7 47 0c 00 20 00 00 	testl  $0x2000,0xc(%edi)
402eb1:	eb 40                	jmp    0x402ef3
402eb3:	6a 00                	push   $0x0
402eb5:	ff 75 fc             	push   -0x4(%ebp)
402eb8:	ff 75 f8             	push   -0x8(%ebp)
402ebb:	e8 81 58 00 00       	call   0x408741
402ec0:	83 c4 0c             	add    $0xc,%esp
402ec3:	85 c0                	test   %eax,%eax
402ec5:	79 05                	jns    0x402ecc
402ec7:	83 c8 ff             	or     $0xffffffff,%eax
402eca:	eb 38                	jmp    0x402f04
402ecc:	b8 00 02 00 00       	mov    $0x200,%eax
402ed1:	39 45 08             	cmp    %eax,0x8(%ebp)
402ed4:	77 10                	ja     0x402ee6
402ed6:	8b 4f 0c             	mov    0xc(%edi),%ecx
402ed9:	f6 c1 08             	test   $0x8,%cl
402edc:	74 08                	je     0x402ee6
402ede:	f7 c1 00 04 00 00    	test   $0x400,%ecx
402ee4:	74 03                	je     0x402ee9
402ee6:	8b 47 18             	mov    0x18(%edi),%eax
402ee9:	89 45 08             	mov    %eax,0x8(%ebp)
402eec:	8b 03                	mov    (%ebx),%eax
402eee:	f6 44 30 04 04       	testb  $0x4,0x4(%eax,%esi,1)
402ef3:	74 03                	je     0x402ef8
402ef5:	ff 45 08             	incl   0x8(%ebp)
402ef8:	8b 45 08             	mov    0x8(%ebp),%eax
402efb:	29 45 fc             	sub    %eax,-0x4(%ebp)
402efe:	8b 45 f4             	mov    -0xc(%ebp),%eax
402f01:	03 45 fc             	add    -0x4(%ebp),%eax
402f04:	5e                   	pop    %esi
402f05:	5f                   	pop    %edi
402f06:	5b                   	pop    %ebx
402f07:	c9                   	leave
402f08:	c3                   	ret
402f09:	6a 0c                	push   $0xc
402f0b:	68 d0 10 41 00       	push   $0x4110d0
402f10:	e8 5b 12 00 00       	call   0x404170
402f15:	33 c0                	xor    %eax,%eax
402f17:	39 45 08             	cmp    %eax,0x8(%ebp)
402f1a:	0f 95 c0             	setne  %al
402f1d:	85 c0                	test   %eax,%eax
402f1f:	75 15                	jne    0x402f36
402f21:	e8 01 12 00 00       	call   0x404127
402f26:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
402f2c:	e8 56 fd ff ff       	call   0x402c87
402f31:	83 c8 ff             	or     $0xffffffff,%eax
402f34:	eb 28                	jmp    0x402f5e
402f36:	ff 75 08             	push   0x8(%ebp)
402f39:	e8 1c f4 ff ff       	call   0x40235a
402f3e:	59                   	pop    %ecx
402f3f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402f43:	ff 75 08             	push   0x8(%ebp)
402f46:	e8 2a fe ff ff       	call   0x402d75
402f4b:	59                   	pop    %ecx
402f4c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
402f4f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402f56:	e8 09 00 00 00       	call   0x402f64
402f5b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402f5e:	e8 52 12 00 00       	call   0x4041b5
402f63:	c3                   	ret
402f64:	ff 75 08             	push   0x8(%ebp)
402f67:	e8 61 f4 ff ff       	call   0x4023cd
402f6c:	59                   	pop    %ecx
402f6d:	c3                   	ret
402f6e:	8b ff                	mov    %edi,%edi
402f70:	55                   	push   %ebp
402f71:	8b ec                	mov    %esp,%ebp
402f73:	8b 45 08             	mov    0x8(%ebp),%eax
402f76:	56                   	push   %esi
402f77:	57                   	push   %edi
402f78:	85 c0                	test   %eax,%eax
402f7a:	78 59                	js     0x402fd5
402f7c:	3b 05 00 46 41 00    	cmp    0x414600,%eax
402f82:	73 51                	jae    0x402fd5
402f84:	8b c8                	mov    %eax,%ecx
402f86:	c1 f9 05             	sar    $0x5,%ecx
402f89:	8b f0                	mov    %eax,%esi
402f8b:	83 e6 1f             	and    $0x1f,%esi
402f8e:	8d 3c 8d 20 46 41 00 	lea    0x414620(,%ecx,4),%edi
402f95:	8b 0f                	mov    (%edi),%ecx
402f97:	c1 e6 06             	shl    $0x6,%esi
402f9a:	83 3c 0e ff          	cmpl   $0xffffffff,(%esi,%ecx,1)
402f9e:	75 35                	jne    0x402fd5
402fa0:	83 3d 80 22 41 00 01 	cmpl   $0x1,0x412280
402fa7:	53                   	push   %ebx
402fa8:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402fab:	75 1e                	jne    0x402fcb
402fad:	83 e8 00             	sub    $0x0,%eax
402fb0:	74 10                	je     0x402fc2
402fb2:	48                   	dec    %eax
402fb3:	74 08                	je     0x402fbd
402fb5:	48                   	dec    %eax
402fb6:	75 13                	jne    0x402fcb
402fb8:	53                   	push   %ebx
402fb9:	6a f4                	push   $0xfffffff4
402fbb:	eb 08                	jmp    0x402fc5
402fbd:	53                   	push   %ebx
402fbe:	6a f5                	push   $0xfffffff5
402fc0:	eb 03                	jmp    0x402fc5
402fc2:	53                   	push   %ebx
402fc3:	6a f6                	push   $0xfffffff6
402fc5:	ff 15 48 f0 40 00    	call   *0x40f048
402fcb:	8b 07                	mov    (%edi),%eax
402fcd:	89 1c 06             	mov    %ebx,(%esi,%eax,1)
402fd0:	33 c0                	xor    %eax,%eax
402fd2:	5b                   	pop    %ebx
402fd3:	eb 16                	jmp    0x402feb
402fd5:	e8 4d 11 00 00       	call   0x404127
402fda:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
402fe0:	e8 55 11 00 00       	call   0x40413a
402fe5:	83 20 00             	andl   $0x0,(%eax)
402fe8:	83 c8 ff             	or     $0xffffffff,%eax
402feb:	5f                   	pop    %edi
402fec:	5e                   	pop    %esi
402fed:	5d                   	pop    %ebp
402fee:	c3                   	ret
402fef:	8b ff                	mov    %edi,%edi
402ff1:	55                   	push   %ebp
402ff2:	8b ec                	mov    %esp,%ebp
402ff4:	8b 4d 08             	mov    0x8(%ebp),%ecx
402ff7:	53                   	push   %ebx
402ff8:	33 db                	xor    %ebx,%ebx
402ffa:	56                   	push   %esi
402ffb:	57                   	push   %edi
402ffc:	3b cb                	cmp    %ebx,%ecx
402ffe:	7c 5b                	jl     0x40305b
403000:	3b 0d 00 46 41 00    	cmp    0x414600,%ecx
403006:	73 53                	jae    0x40305b
403008:	8b c1                	mov    %ecx,%eax
40300a:	c1 f8 05             	sar    $0x5,%eax
40300d:	8b f1                	mov    %ecx,%esi
40300f:	83 e6 1f             	and    $0x1f,%esi
403012:	8d 3c 85 20 46 41 00 	lea    0x414620(,%eax,4),%edi
403019:	8b 07                	mov    (%edi),%eax
40301b:	c1 e6 06             	shl    $0x6,%esi
40301e:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
403023:	74 36                	je     0x40305b
403025:	83 3c 30 ff          	cmpl   $0xffffffff,(%eax,%esi,1)
403029:	74 30                	je     0x40305b
40302b:	83 3d 80 22 41 00 01 	cmpl   $0x1,0x412280
403032:	75 1d                	jne    0x403051
403034:	2b cb                	sub    %ebx,%ecx
403036:	74 10                	je     0x403048
403038:	49                   	dec    %ecx
403039:	74 08                	je     0x403043
40303b:	49                   	dec    %ecx
40303c:	75 13                	jne    0x403051
40303e:	53                   	push   %ebx
40303f:	6a f4                	push   $0xfffffff4
403041:	eb 08                	jmp    0x40304b
403043:	53                   	push   %ebx
403044:	6a f5                	push   $0xfffffff5
403046:	eb 03                	jmp    0x40304b
403048:	53                   	push   %ebx
403049:	6a f6                	push   $0xfffffff6
40304b:	ff 15 48 f0 40 00    	call   *0x40f048
403051:	8b 07                	mov    (%edi),%eax
403053:	83 0c 06 ff          	orl    $0xffffffff,(%esi,%eax,1)
403057:	33 c0                	xor    %eax,%eax
403059:	eb 15                	jmp    0x403070
40305b:	e8 c7 10 00 00       	call   0x404127
403060:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
403066:	e8 cf 10 00 00       	call   0x40413a
40306b:	89 18                	mov    %ebx,(%eax)
40306d:	83 c8 ff             	or     $0xffffffff,%eax
403070:	5f                   	pop    %edi
403071:	5e                   	pop    %esi
403072:	5b                   	pop    %ebx
403073:	5d                   	pop    %ebp
403074:	c3                   	ret
403075:	8b ff                	mov    %edi,%edi
403077:	55                   	push   %ebp
403078:	8b ec                	mov    %esp,%ebp
40307a:	8b 45 08             	mov    0x8(%ebp),%eax
40307d:	83 f8 fe             	cmp    $0xfffffffe,%eax
403080:	75 18                	jne    0x40309a
403082:	e8 b3 10 00 00       	call   0x40413a
403087:	83 20 00             	andl   $0x0,(%eax)
40308a:	e8 98 10 00 00       	call   0x404127
40308f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
403095:	83 c8 ff             	or     $0xffffffff,%eax
403098:	5d                   	pop    %ebp
403099:	c3                   	ret
40309a:	85 c0                	test   %eax,%eax
40309c:	78 08                	js     0x4030a6
40309e:	3b 05 00 46 41 00    	cmp    0x414600,%eax
4030a4:	72 1a                	jb     0x4030c0
4030a6:	e8 8f 10 00 00       	call   0x40413a
4030ab:	83 20 00             	andl   $0x0,(%eax)
4030ae:	e8 74 10 00 00       	call   0x404127
4030b3:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4030b9:	e8 c9 fb ff ff       	call   0x402c87
4030be:	eb d5                	jmp    0x403095
4030c0:	8b c8                	mov    %eax,%ecx
4030c2:	c1 f9 05             	sar    $0x5,%ecx
4030c5:	8b 0c 8d 20 46 41 00 	mov    0x414620(,%ecx,4),%ecx
4030cc:	83 e0 1f             	and    $0x1f,%eax
4030cf:	c1 e0 06             	shl    $0x6,%eax
4030d2:	f6 44 08 04 01       	testb  $0x1,0x4(%eax,%ecx,1)
4030d7:	74 cd                	je     0x4030a6
4030d9:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4030dc:	5d                   	pop    %ebp
4030dd:	c3                   	ret
4030de:	6a 0c                	push   $0xc
4030e0:	68 f0 10 41 00       	push   $0x4110f0
4030e5:	e8 86 10 00 00       	call   0x404170
4030ea:	8b 7d 08             	mov    0x8(%ebp),%edi
4030ed:	8b c7                	mov    %edi,%eax
4030ef:	c1 f8 05             	sar    $0x5,%eax
4030f2:	8b f7                	mov    %edi,%esi
4030f4:	83 e6 1f             	and    $0x1f,%esi
4030f7:	c1 e6 06             	shl    $0x6,%esi
4030fa:	03 34 85 20 46 41 00 	add    0x414620(,%eax,4),%esi
403101:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
403108:	33 db                	xor    %ebx,%ebx
40310a:	39 5e 08             	cmp    %ebx,0x8(%esi)
40310d:	75 35                	jne    0x403144
40310f:	6a 0a                	push   $0xa
403111:	e8 83 3c 00 00       	call   0x406d99
403116:	59                   	pop    %ecx
403117:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40311a:	39 5e 08             	cmp    %ebx,0x8(%esi)
40311d:	75 19                	jne    0x403138
40311f:	68 a0 0f 00 00       	push   $0xfa0
403124:	8d 46 0c             	lea    0xc(%esi),%eax
403127:	50                   	push   %eax
403128:	ff 15 9c f0 40 00    	call   *0x40f09c
40312e:	85 c0                	test   %eax,%eax
403130:	75 03                	jne    0x403135
403132:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
403135:	ff 46 08             	incl   0x8(%esi)
403138:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40313f:	e8 30 00 00 00       	call   0x403174
403144:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
403147:	74 1d                	je     0x403166
403149:	8b c7                	mov    %edi,%eax
40314b:	c1 f8 05             	sar    $0x5,%eax
40314e:	83 e7 1f             	and    $0x1f,%edi
403151:	c1 e7 06             	shl    $0x6,%edi
403154:	8b 04 85 20 46 41 00 	mov    0x414620(,%eax,4),%eax
40315b:	8d 44 38 0c          	lea    0xc(%eax,%edi,1),%eax
40315f:	50                   	push   %eax
403160:	ff 15 74 f0 40 00    	call   *0x40f074
403166:	8b 45 e4             	mov    -0x1c(%ebp),%eax
403169:	e8 47 10 00 00       	call   0x4041b5
40316e:	c3                   	ret
40316f:	33 db                	xor    %ebx,%ebx
403171:	8b 7d 08             	mov    0x8(%ebp),%edi
403174:	6a 0a                	push   $0xa
403176:	e8 45 3b 00 00       	call   0x406cc0
40317b:	59                   	pop    %ecx
40317c:	c3                   	ret
40317d:	8b ff                	mov    %edi,%edi
40317f:	55                   	push   %ebp
403180:	8b ec                	mov    %esp,%ebp
403182:	8b 45 08             	mov    0x8(%ebp),%eax
403185:	8b c8                	mov    %eax,%ecx
403187:	83 e0 1f             	and    $0x1f,%eax
40318a:	c1 f9 05             	sar    $0x5,%ecx
40318d:	8b 0c 8d 20 46 41 00 	mov    0x414620(,%ecx,4),%ecx
403194:	c1 e0 06             	shl    $0x6,%eax
403197:	8d 44 01 0c          	lea    0xc(%ecx,%eax,1),%eax
40319b:	50                   	push   %eax
40319c:	ff 15 78 f0 40 00    	call   *0x40f078
4031a2:	5d                   	pop    %ebp
4031a3:	c3                   	ret
4031a4:	6a 18                	push   $0x18
4031a6:	68 10 11 41 00       	push   $0x411110
4031ab:	e8 c0 0f 00 00       	call   0x404170
4031b0:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
4031b4:	33 ff                	xor    %edi,%edi
4031b6:	89 7d dc             	mov    %edi,-0x24(%ebp)
4031b9:	6a 0b                	push   $0xb
4031bb:	e8 17 3b 00 00       	call   0x406cd7
4031c0:	59                   	pop    %ecx
4031c1:	85 c0                	test   %eax,%eax
4031c3:	75 08                	jne    0x4031cd
4031c5:	83 c8 ff             	or     $0xffffffff,%eax
4031c8:	e9 61 01 00 00       	jmp    0x40332e
4031cd:	6a 0b                	push   $0xb
4031cf:	e8 c5 3b 00 00       	call   0x406d99
4031d4:	59                   	pop    %ecx
4031d5:	89 7d fc             	mov    %edi,-0x4(%ebp)
4031d8:	89 7d d8             	mov    %edi,-0x28(%ebp)
4031db:	83 ff 40             	cmp    $0x40,%edi
4031de:	0f 8d 3b 01 00 00    	jge    0x40331f
4031e4:	8b 34 bd 20 46 41 00 	mov    0x414620(,%edi,4),%esi
4031eb:	85 f6                	test   %esi,%esi
4031ed:	0f 84 b9 00 00 00    	je     0x4032ac
4031f3:	89 75 e0             	mov    %esi,-0x20(%ebp)
4031f6:	8b 04 bd 20 46 41 00 	mov    0x414620(,%edi,4),%eax
4031fd:	05 00 08 00 00       	add    $0x800,%eax
403202:	3b f0                	cmp    %eax,%esi
403204:	0f 83 96 00 00 00    	jae    0x4032a0
40320a:	f6 46 04 01          	testb  $0x1,0x4(%esi)
40320e:	75 5b                	jne    0x40326b
403210:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
403214:	75 38                	jne    0x40324e
403216:	6a 0a                	push   $0xa
403218:	e8 7c 3b 00 00       	call   0x406d99
40321d:	59                   	pop    %ecx
40321e:	33 db                	xor    %ebx,%ebx
403220:	43                   	inc    %ebx
403221:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403224:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
403228:	75 1b                	jne    0x403245
40322a:	68 a0 0f 00 00       	push   $0xfa0
40322f:	8d 46 0c             	lea    0xc(%esi),%eax
403232:	50                   	push   %eax
403233:	ff 15 9c f0 40 00    	call   *0x40f09c
403239:	85 c0                	test   %eax,%eax
40323b:	75 05                	jne    0x403242
40323d:	89 5d dc             	mov    %ebx,-0x24(%ebp)
403240:	eb 03                	jmp    0x403245