411e85:	03 d3                	add    %ebx,%edx
411e87:	8d 8c 51 f8 04 00 00 	lea    0x4f8(%ecx,%edx,2),%ecx
411e8e:	8b 96 64 06 00 00    	mov    0x664(%esi),%edx
411e94:	c1 fa 1a             	sar    $0x1a,%edx
411e97:	83 e2 20             	and    $0x20,%edx
411e9a:	03 ca                	add    %edx,%ecx
411e9c:	0f b6 96 6d 0a 00 00 	movzbl 0xa6d(%esi),%edx
411ea3:	03 ca                	add    %edx,%ecx
411ea5:	0f b6 c0             	movzbl %al,%eax
411ea8:	8d 96 70 4a 00 00    	lea    0x4a70(%esi),%edx
411eae:	c1 6a 08 0e          	shrl   $0xe,0x8(%edx)
411eb2:	8b 6a 08             	mov    0x8(%edx),%ebp
411eb5:	03 c8                	add    %eax,%ecx
411eb7:	8b 42 04             	mov    0x4(%edx),%eax
411eba:	2b 02                	sub    (%edx),%eax
411ebc:	33 d2                	xor    %edx,%edx
411ebe:	f7 f5                	div    %ebp
411ec0:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
411ec3:	0f b7 19             	movzwl (%ecx),%ebx
411ec6:	3b c3                	cmp    %ebx,%eax
411ec8:	73 46                	jae    0x411f10
411eca:	89 be 50 06 00 00    	mov    %edi,0x650(%esi)
411ed0:	8a 47 01             	mov    0x1(%edi),%al
411ed3:	3c 80                	cmp    $0x80,%al
411ed5:	0f 92 c2             	setb   %dl
411ed8:	02 d0                	add    %al,%dl
411eda:	88 57 01             	mov    %dl,0x1(%edi)
411edd:	83 a6 7c 4a 00 00 00 	andl   $0x0,0x4a7c(%esi)
411ee4:	0f b7 01             	movzwl (%ecx),%eax
411ee7:	89 86 80 4a 00 00    	mov    %eax,0x4a80(%esi)
411eed:	0f b7 01             	movzwl (%ecx),%eax
411ef0:	0f b7 d0             	movzwl %ax,%edx
411ef3:	83 c2 20             	add    $0x20,%edx
411ef6:	c1 fa 07             	sar    $0x7,%edx
411ef9:	2b c2                	sub    %edx,%eax
411efb:	83 e8 80             	sub    $0xffffff80,%eax
411efe:	66 89 01             	mov    %ax,(%ecx)
411f01:	ff 86 64 06 00 00    	incl   0x664(%esi)
411f07:	c6 86 6d 0a 00 00 01 	movb   $0x1,0xa6d(%esi)
411f0e:	eb 5c                	jmp    0x411f6c
411f10:	89 9e 7c 4a 00 00    	mov    %ebx,0x4a7c(%esi)
411f16:	0f b7 01             	movzwl (%ecx),%eax
411f19:	0f b7 d0             	movzwl %ax,%edx
411f1c:	83 c2 20             	add    $0x20,%edx
411f1f:	c1 fa 07             	sar    $0x7,%edx
411f22:	2b c2                	sub    %edx,%eax
411f24:	66 89 01             	mov    %ax,(%ecx)
411f27:	c7 86 80 4a 00 00 00 	movl   $0x4000,0x4a80(%esi)
411f2e:	40 00 00
411f31:	0f b7 01             	movzwl (%ecx),%eax
411f34:	8a 8e 6c 0a 00 00    	mov    0xa6c(%esi),%cl
411f3a:	c1 e8 0a             	shr    $0xa,%eax
411f3d:	0f b6 80 9c ad 42 00 	movzbl 0x42ad9c(%eax),%eax
411f44:	89 86 58 06 00 00    	mov    %eax,0x658(%esi)
411f4a:	c7 86 54 06 00 00 01 	movl   $0x1,0x654(%esi)
411f51:	00 00 00
411f54:	0f b6 07             	movzbl (%edi),%eax
411f57:	88 8c 30 6c 06 00 00 	mov    %cl,0x66c(%eax,%esi,1)
411f5e:	83 a6 50 06 00 00 00 	andl   $0x0,0x650(%esi)
411f65:	c6 86 6d 0a 00 00 00 	movb   $0x0,0xa6d(%esi)
411f6c:	5f                   	pop    %edi
411f6d:	5e                   	pop    %esi
411f6e:	5d                   	pop    %ebp
411f6f:	5b                   	pop    %ebx
411f70:	c2 04 00             	ret    $0x4
411f73:	68 00 01 00 00       	push   $0x100
411f78:	c6 81 6c 0a 00 00 01 	movb   $0x1,0xa6c(%ecx)
411f7f:	81 c1 6c 06 00 00    	add    $0x66c,%ecx
411f85:	6a 00                	push   $0x0
411f87:	51                   	push   %ecx
411f88:	e8 73 82 00 00       	call   0x41a200
411f8d:	83 c4 0c             	add    $0xc,%esp
411f90:	c3                   	ret
411f91:	56                   	push   %esi
411f92:	8b f1                	mov    %ecx,%esi
411f94:	8b 4e 78             	mov    0x78(%esi),%ecx
411f97:	8b 46 04             	mov    0x4(%esi),%eax
411f9a:	57                   	push   %edi
411f9b:	8b f9                	mov    %ecx,%edi
411f9d:	2b f8                	sub    %eax,%edi
411f9f:	79 04                	jns    0x411fa5
411fa1:	32 c0                	xor    %al,%al
411fa3:	eb 67                	jmp    0x41200c
411fa5:	3d 00 40 00 00       	cmp    $0x4000,%eax
411faa:	7e 1d                	jle    0x411fc9
411fac:	85 ff                	test   %edi,%edi
411fae:	7e 10                	jle    0x411fc0
411fb0:	8b 4e 10             	mov    0x10(%esi),%ecx
411fb3:	57                   	push   %edi
411fb4:	03 c1                	add    %ecx,%eax
411fb6:	50                   	push   %eax
411fb7:	51                   	push   %ecx
411fb8:	e8 b3 a5 00 00       	call   0x41c570
411fbd:	83 c4 0c             	add    $0xc,%esp
411fc0:	83 66 04 00          	andl   $0x0,0x4(%esi)
411fc4:	89 7e 78             	mov    %edi,0x78(%esi)
411fc7:	eb 02                	jmp    0x411fcb
411fc9:	8b f9                	mov    %ecx,%edi
411fcb:	8b 0e                	mov    (%esi),%ecx
411fcd:	b8 00 80 00 00       	mov    $0x8000,%eax
411fd2:	2b c7                	sub    %edi,%eax
411fd4:	50                   	push   %eax
411fd5:	8b 46 10             	mov    0x10(%esi),%eax
411fd8:	03 c7                	add    %edi,%eax
411fda:	50                   	push   %eax
411fdb:	e8 07 98 ff ff       	call   0x40b7e7
411fe0:	85 c0                	test   %eax,%eax
411fe2:	7e 03                	jle    0x411fe7
411fe4:	01 46 78             	add    %eax,0x78(%esi)
411fe7:	80 be 39 4c 00 00 00 	cmpb   $0x0,0x4c39(%esi)
411fee:	8b 4e 78             	mov    0x78(%esi),%ecx
411ff1:	8d 51 e2             	lea    -0x1e(%ecx),%edx
411ff4:	89 56 7c             	mov    %edx,0x7c(%esi)
411ff7:	74 09                	je     0x412002
411ff9:	81 c1 0c fe ff ff    	add    $0xfffffe0c,%ecx
411fff:	89 4e 7c             	mov    %ecx,0x7c(%esi)
412002:	33 c9                	xor    %ecx,%ecx
412004:	83 f8 ff             	cmp    $0xffffffff,%eax
412007:	0f 95 c1             	setne  %cl
41200a:	8a c1                	mov    %cl,%al
41200c:	5f                   	pop    %edi
41200d:	5e                   	pop    %esi
41200e:	c3                   	ret
41200f:	56                   	push   %esi
412010:	8b f1                	mov    %ecx,%esi
412012:	8b 4e 78             	mov    0x78(%esi),%ecx
412015:	8b 46 04             	mov    0x4(%esi),%eax
412018:	57                   	push   %edi
412019:	8b f9                	mov    %ecx,%edi
41201b:	2b f8                	sub    %eax,%edi
41201d:	79 07                	jns    0x412026
41201f:	32 c0                	xor    %al,%al
412021:	e9 9f 00 00 00       	jmp    0x4120c5
412026:	8b 96 88 00 00 00    	mov    0x88(%esi),%edx
41202c:	2b d0                	sub    %eax,%edx
41202e:	01 96 80 00 00 00    	add    %edx,0x80(%esi)
412034:	3d 00 40 00 00       	cmp    $0x4000,%eax
412039:	7e 1d                	jle    0x412058
41203b:	85 ff                	test   %edi,%edi
41203d:	7e 10                	jle    0x41204f
41203f:	8b 4e 10             	mov    0x10(%esi),%ecx
412042:	57                   	push   %edi
412043:	03 c1                	add    %ecx,%eax
412045:	50                   	push   %eax
412046:	51                   	push   %ecx
412047:	e8 24 a5 00 00       	call   0x41c570
41204c:	83 c4 0c             	add    $0xc,%esp
41204f:	83 66 04 00          	andl   $0x0,0x4(%esi)
412053:	89 7e 78             	mov    %edi,0x78(%esi)
412056:	eb 02                	jmp    0x41205a
412058:	8b f9                	mov    %ecx,%edi
41205a:	b9 00 80 00 00       	mov    $0x8000,%ecx
41205f:	33 c0                	xor    %eax,%eax
412061:	3b f9                	cmp    %ecx,%edi
412063:	74 17                	je     0x41207c
412065:	8b 46 10             	mov    0x10(%esi),%eax
412068:	2b cf                	sub    %edi,%ecx
41206a:	51                   	push   %ecx
41206b:	8b 0e                	mov    (%esi),%ecx
41206d:	03 c7                	add    %edi,%eax
41206f:	50                   	push   %eax
412070:	e8 72 97 ff ff       	call   0x40b7e7
412075:	85 c0                	test   %eax,%eax
412077:	7e 03                	jle    0x41207c
412079:	01 46 78             	add    %eax,0x78(%esi)
41207c:	80 be 39 4c 00 00 00 	cmpb   $0x0,0x4c39(%esi)
412083:	8b 4e 78             	mov    0x78(%esi),%ecx
412086:	8d 51 e2             	lea    -0x1e(%ecx),%edx
412089:	89 56 7c             	mov    %edx,0x7c(%esi)
41208c:	74 09                	je     0x412097
41208e:	81 c1 0c fe ff ff    	add    $0xfffffe0c,%ecx
412094:	89 4e 7c             	mov    %ecx,0x7c(%esi)
412097:	8b 96 80 00 00 00    	mov    0x80(%esi),%edx
41209d:	8b 4e 04             	mov    0x4(%esi),%ecx
4120a0:	89 8e 88 00 00 00    	mov    %ecx,0x88(%esi)
4120a6:	83 fa ff             	cmp    $0xffffffff,%edx
4120a9:	74 10                	je     0x4120bb
4120ab:	8d 4c 0a ff          	lea    -0x1(%edx,%ecx,1),%ecx
4120af:	8b 56 7c             	mov    0x7c(%esi),%edx
4120b2:	3b d1                	cmp    %ecx,%edx
4120b4:	7d 02                	jge    0x4120b8
4120b6:	8b ca                	mov    %edx,%ecx
4120b8:	89 4e 7c             	mov    %ecx,0x7c(%esi)
4120bb:	33 c9                	xor    %ecx,%ecx
4120bd:	83 f8 ff             	cmp    $0xffffffff,%eax
4120c0:	0f 95 c1             	setne  %cl
4120c3:	8a c1                	mov    %cl,%al
4120c5:	5f                   	pop    %edi
4120c6:	5e                   	pop    %esi
4120c7:	c3                   	ret
4120c8:	56                   	push   %esi
4120c9:	8b f1                	mov    %ecx,%esi
4120cb:	8b 96 54 4c 00 00    	mov    0x4c54(%esi),%edx
4120d1:	8b 86 44 4c 00 00    	mov    0x4c44(%esi),%eax
4120d7:	3b d0                	cmp    %eax,%edx
4120d9:	8b 8e 40 4c 00 00    	mov    0x4c40(%esi),%ecx
4120df:	57                   	push   %edi
4120e0:	8b be 50 4c 00 00    	mov    0x4c50(%esi),%edi
4120e6:	7f 3a                	jg     0x412122
4120e8:	7c 04                	jl     0x4120ee
4120ea:	3b f9                	cmp    %ecx,%edi
4120ec:	73 34                	jae    0x412122
4120ee:	2b cf                	sub    %edi,%ecx
4120f0:	1b c2                	sbb    %edx,%eax
4120f2:	33 ff                	xor    %edi,%edi
4120f4:	3b f8                	cmp    %eax,%edi
4120f6:	53                   	push   %ebx
4120f7:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4120fb:	7c 08                	jl     0x412105
4120fd:	7f 04                	jg     0x412103
4120ff:	3b d9                	cmp    %ecx,%ebx
412101:	76 02                	jbe    0x412105
412103:	8b d9                	mov    %ecx,%ebx
412105:	8b 0e                	mov    (%esi),%ecx
412107:	53                   	push   %ebx
412108:	ff 74 24 14          	push   0x14(%esp)
41210c:	e8 3e 98 ff ff       	call   0x40b94f
412111:	8b 44 24 14          	mov    0x14(%esp),%eax
412115:	01 86 50 4c 00 00    	add    %eax,0x4c50(%esi)
41211b:	5b                   	pop    %ebx
41211c:	11 be 54 4c 00 00    	adc    %edi,0x4c54(%esi)
412122:	5f                   	pop    %edi
412123:	5e                   	pop    %esi
412124:	c2 08 00             	ret    $0x8
412127:	56                   	push   %esi
412128:	57                   	push   %edi
412129:	bf 80 00 00 00       	mov    $0x80,%edi
41212e:	57                   	push   %edi
41212f:	8b f1                	mov    %ecx,%esi
412131:	6a 00                	push   $0x0
412133:	56                   	push   %esi
412134:	e8 c7 80 00 00       	call   0x41a200
412139:	57                   	push   %edi
41213a:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
412140:	6a 00                	push   $0x0
412142:	50                   	push   %eax
412143:	e8 b8 80 00 00       	call   0x41a200
412148:	83 c4 18             	add    $0x18,%esp
41214b:	5f                   	pop    %edi
41214c:	8b c6                	mov    %esi,%eax
41214e:	5e                   	pop    %esi
41214f:	c3                   	ret
412150:	56                   	push   %esi
412151:	57                   	push   %edi
412152:	8b f9                	mov    %ecx,%edi
412154:	33 f6                	xor    %esi,%esi
412156:	8b 04 b7             	mov    (%edi,%esi,4),%eax
412159:	85 c0                	test   %eax,%eax
41215b:	74 0b                	je     0x412168
41215d:	50                   	push   %eax
41215e:	e8 7f 7d 00 00       	call   0x419ee2
412163:	83 24 b7 00          	andl   $0x0,(%edi,%esi,4)
412167:	59                   	pop    %ecx
412168:	46                   	inc    %esi
412169:	83 fe 20             	cmp    $0x20,%esi
41216c:	72 e8                	jb     0x412156
41216e:	5f                   	pop    %edi
41216f:	5e                   	pop    %esi
412170:	c3                   	ret
412171:	55                   	push   %ebp
412172:	8b ec                	mov    %esp,%ebp
412174:	83 ec 18             	sub    $0x18,%esp
412177:	57                   	push   %edi
412178:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41217b:	e8 d0 ff ff ff       	call   0x412150
412180:	33 ff                	xor    %edi,%edi
412182:	89 7d fc             	mov    %edi,-0x4(%ebp)
412185:	39 7d 08             	cmp    %edi,0x8(%ebp)
412188:	0f 86 8b 00 00 00    	jbe    0x412219
41218e:	53                   	push   %ebx
41218f:	56                   	push   %esi
412190:	83 7d fc 20          	cmpl   $0x20,-0x4(%ebp)
412194:	73 7c                	jae    0x412212
412196:	8b 75 08             	mov    0x8(%ebp),%esi
412199:	6a 20                	push   $0x20
41219b:	2b f7                	sub    %edi,%esi
41219d:	59                   	pop    %ecx
41219e:	2b 4d fc             	sub    -0x4(%ebp),%ecx
4121a1:	33 d2                	xor    %edx,%edx
4121a3:	8b c6                	mov    %esi,%eax
4121a5:	f7 f1                	div    %ecx
4121a7:	b9 00 00 40 00       	mov    $0x400000,%ecx
4121ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
4121af:	3b c1                	cmp    %ecx,%eax
4121b1:	77 19                	ja     0x4121cc
4121b3:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4121b6:	eb 14                	jmp    0x4121cc
4121b8:	56                   	push   %esi
4121b9:	e8 a0 a7 00 00       	call   0x41c95e
4121be:	8b d8                	mov    %eax,%ebx
4121c0:	59                   	pop    %ecx
4121c1:	85 db                	test   %ebx,%ebx
4121c3:	75 22                	jne    0x4121e7
4121c5:	8b c6                	mov    %esi,%eax
4121c7:	c1 e8 05             	shr    $0x5,%eax
4121ca:	2b f0                	sub    %eax,%esi
4121cc:	3b 75 f8             	cmp    -0x8(%ebp),%esi
4121cf:	73 e7                	jae    0x4121b8
4121d1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4121d4:	e8 b5 fb ff ff       	call   0x411d8e
4121d9:	68 c4 d4 42 00       	push   $0x42d4c4
4121de:	8d 45 e8             	lea    -0x18(%ebp),%eax
4121e1:	50                   	push   %eax
4121e2:	e8 f6 a0 00 00       	call   0x41c2dd
4121e7:	56                   	push   %esi
4121e8:	6a 00                	push   $0x0
4121ea:	53                   	push   %ebx
4121eb:	e8 10 80 00 00       	call   0x41a200
4121f0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4121f3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4121f6:	c1 e1 02             	shl    $0x2,%ecx
4121f9:	03 fe                	add    %esi,%edi
4121fb:	83 c4 0c             	add    $0xc,%esp
4121fe:	ff 45 fc             	incl   -0x4(%ebp)
412201:	89 1c 01             	mov    %ebx,(%ecx,%eax,1)
412204:	89 bc 01 80 00 00 00 	mov    %edi,0x80(%ecx,%eax,1)
41220b:	3b 7d 08             	cmp    0x8(%ebp),%edi
41220e:	72 80                	jb     0x412190
412210:	eb 05                	jmp    0x412217
412212:	3b 7d 08             	cmp    0x8(%ebp),%edi
412215:	72 ba                	jb     0x4121d1
412217:	5e                   	pop    %esi
412218:	5b                   	pop    %ebx
412219:	5f                   	pop    %edi
41221a:	c9                   	leave
41221b:	c2 04 00             	ret    $0x4
41221e:	56                   	push   %esi
41221f:	ff 74 24 08          	push   0x8(%esp)
412223:	8b f1                	mov    %ecx,%esi
412225:	e8 e6 af 00 00       	call   0x41d210
41222a:	c7 06 8c b1 42 00    	movl   $0x42b18c,(%esi)
412230:	8b c6                	mov    %esi,%eax
412232:	5e                   	pop    %esi
412233:	c2 04 00             	ret    $0x4
412236:	56                   	push   %esi
412237:	8b 74 24 08          	mov    0x8(%esp),%esi
41223b:	3b b1 80 00 00 00    	cmp    0x80(%ecx),%esi
412241:	73 06                	jae    0x412249
412243:	8b 01                	mov    (%ecx),%eax
412245:	03 c6                	add    %esi,%eax
412247:	eb 18                	jmp    0x412261
412249:	33 d2                	xor    %edx,%edx
41224b:	42                   	inc    %edx
41224c:	8d 81 84 00 00 00    	lea    0x84(%ecx),%eax
412252:	3b 30                	cmp    (%eax),%esi
412254:	72 0f                	jb     0x412265
412256:	42                   	inc    %edx
412257:	83 c0 04             	add    $0x4,%eax
41225a:	83 fa 20             	cmp    $0x20,%edx
41225d:	72 f3                	jb     0x412252