420101:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
420107:	c1 e6 02             	shl    $0x2,%esi
42010a:	83 3b 00             	cmpl   $0x0,(%ebx)
42010d:	75 08                	jne    0x420117
42010f:	81 fe 00 04 00 00    	cmp    $0x400,%esi
420115:	76 3b                	jbe    0x420152
420117:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
42011d:	76 33                	jbe    0x420152
42011f:	56                   	push   %esi
420120:	e8 cf a7 00 00       	call   0x42a8f4
420125:	89 45 fc             	mov    %eax,-0x4(%ebp)
420128:	59                   	pop    %ecx
420129:	85 c0                	test   %eax,%eax
42012b:	75 0b                	jne    0x420138
42012d:	50                   	push   %eax
42012e:	e8 87 a7 00 00       	call   0x42a8ba
420133:	59                   	pop    %ecx
420134:	32 c0                	xor    %al,%al
420136:	eb 1c                	jmp    0x420154
420138:	8d 45 fc             	lea    -0x4(%ebp),%eax
42013b:	8b cb                	mov    %ebx,%ecx
42013d:	50                   	push   %eax
42013e:	e8 64 19 00 00       	call   0x421aa7
420143:	ff 75 fc             	push   -0x4(%ebp)
420146:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
42014c:	e8 69 a7 00 00       	call   0x42a8ba
420151:	59                   	pop    %ecx
420152:	b0 01                	mov    $0x1,%al
420154:	5b                   	pop    %ebx
420155:	5f                   	pop    %edi
420156:	5e                   	pop    %esi
420157:	c9                   	leave
420158:	c2 08 00             	ret    $0x8
42015b:	8b ff                	mov    %edi,%edi
42015d:	55                   	push   %ebp
42015e:	8b ec                	mov    %esp,%ebp
420160:	8b 45 14             	mov    0x14(%ebp),%eax
420163:	48                   	dec    %eax
420164:	83 e8 01             	sub    $0x1,%eax
420167:	74 1f                	je     0x420188
420169:	83 e8 01             	sub    $0x1,%eax
42016c:	74 16                	je     0x420184
42016e:	83 e8 09             	sub    $0x9,%eax
420171:	74 11                	je     0x420184
420173:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
420177:	74 0f                	je     0x420188
420179:	8a 45 10             	mov    0x10(%ebp),%al
42017c:	3c 63                	cmp    $0x63,%al
42017e:	74 08                	je     0x420188
420180:	3c 73                	cmp    $0x73,%al
420182:	74 04                	je     0x420188
420184:	b0 01                	mov    $0x1,%al
420186:	5d                   	pop    %ebp
420187:	c3                   	ret
420188:	32 c0                	xor    %al,%al
42018a:	5d                   	pop    %ebp
42018b:	c3                   	ret
42018c:	8b ff                	mov    %edi,%edi
42018e:	55                   	push   %ebp
42018f:	8b ec                	mov    %esp,%ebp
420191:	8b 45 14             	mov    0x14(%ebp),%eax
420194:	48                   	dec    %eax
420195:	83 e8 01             	sub    $0x1,%eax
420198:	74 3c                	je     0x4201d6
42019a:	83 e8 01             	sub    $0x1,%eax
42019d:	74 33                	je     0x4201d2
42019f:	83 e8 09             	sub    $0x9,%eax
4201a2:	74 2e                	je     0x4201d2
4201a4:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4201a8:	74 28                	je     0x4201d2
4201aa:	8b 45 08             	mov    0x8(%ebp),%eax
4201ad:	83 e0 04             	and    $0x4,%eax
4201b0:	83 c8 00             	or     $0x0,%eax
4201b3:	6a 01                	push   $0x1
4201b5:	58                   	pop    %eax
4201b6:	74 04                	je     0x4201bc
4201b8:	8a c8                	mov    %al,%cl
4201ba:	eb 02                	jmp    0x4201be
4201bc:	32 c9                	xor    %cl,%cl
4201be:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
4201c3:	74 07                	je     0x4201cc
4201c5:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
4201ca:	75 02                	jne    0x4201ce
4201cc:	32 c0                	xor    %al,%al
4201ce:	32 c1                	xor    %cl,%al
4201d0:	5d                   	pop    %ebp
4201d1:	c3                   	ret
4201d2:	b0 01                	mov    $0x1,%al
4201d4:	5d                   	pop    %ebp
4201d5:	c3                   	ret
4201d6:	32 c0                	xor    %al,%al
4201d8:	5d                   	pop    %ebp
4201d9:	c3                   	ret
4201da:	8b ff                	mov    %edi,%edi
4201dc:	55                   	push   %ebp
4201dd:	8b ec                	mov    %esp,%ebp
4201df:	83 ec 14             	sub    $0x14,%esp
4201e2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4201e5:	53                   	push   %ebx
4201e6:	56                   	push   %esi
4201e7:	e8 ef f4 ff ff       	call   0x41f6db
4201ec:	84 c0                	test   %al,%al
4201ee:	74 2f                	je     0x42021f
4201f0:	8b 75 14             	mov    0x14(%ebp),%esi
4201f3:	85 f6                	test   %esi,%esi
4201f5:	74 3d                	je     0x420234
4201f7:	83 fe 02             	cmp    $0x2,%esi
4201fa:	7c 05                	jl     0x420201
4201fc:	83 fe 24             	cmp    $0x24,%esi
4201ff:	7e 33                	jle    0x420234
420201:	8b 45 08             	mov    0x8(%ebp),%eax
420204:	50                   	push   %eax
420205:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420209:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
420210:	33 c0                	xor    %eax,%eax
420212:	50                   	push   %eax
420213:	50                   	push   %eax
420214:	50                   	push   %eax
420215:	50                   	push   %eax
420216:	50                   	push   %eax
420217:	e8 ea f6 ff ff       	call   0x41f906
42021c:	83 c4 18             	add    $0x18,%esp
42021f:	8b 4d 10             	mov    0x10(%ebp),%ecx
420222:	85 c9                	test   %ecx,%ecx
420224:	0f 84 52 01 00 00    	je     0x42037c
42022a:	8b 45 0c             	mov    0xc(%ebp),%eax
42022d:	89 01                	mov    %eax,(%ecx)
42022f:	e9 48 01 00 00       	jmp    0x42037c
420234:	8b 45 0c             	mov    0xc(%ebp),%eax
420237:	33 c9                	xor    %ecx,%ecx
420239:	57                   	push   %edi
42023a:	89 45 ec             	mov    %eax,-0x14(%ebp)
42023d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
420240:	8a 18                	mov    (%eax),%bl
420242:	8d 78 01             	lea    0x1(%eax),%edi
420245:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
420249:	88 5d fc             	mov    %bl,-0x4(%ebp)
42024c:	89 7d 0c             	mov    %edi,0xc(%ebp)
42024f:	89 45 f8             	mov    %eax,-0x8(%ebp)
420252:	80 fb 2d             	cmp    $0x2d,%bl
420255:	75 08                	jne    0x42025f
420257:	83 c8 02             	or     $0x2,%eax
42025a:	89 45 f8             	mov    %eax,-0x8(%ebp)
42025d:	eb 05                	jmp    0x420264
42025f:	80 fb 2b             	cmp    $0x2b,%bl
420262:	75 09                	jne    0x42026d
420264:	8a 1f                	mov    (%edi),%bl
420266:	47                   	inc    %edi
420267:	88 5d fc             	mov    %bl,-0x4(%ebp)
42026a:	89 7d 0c             	mov    %edi,0xc(%ebp)
42026d:	85 f6                	test   %esi,%esi
42026f:	74 05                	je     0x420276
420271:	83 fe 10             	cmp    $0x10,%esi
420274:	75 75                	jne    0x4202eb
420276:	8a c3                	mov    %bl,%al
420278:	2c 30                	sub    $0x30,%al
42027a:	3c 09                	cmp    $0x9,%al
42027c:	77 08                	ja     0x420286
42027e:	0f be c3             	movsbl %bl,%eax
420281:	83 c0 d0             	add    $0xffffffd0,%eax
420284:	eb 1e                	jmp    0x4202a4
420286:	8a c3                	mov    %bl,%al
420288:	2c 61                	sub    $0x61,%al
42028a:	3c 19                	cmp    $0x19,%al
42028c:	77 08                	ja     0x420296
42028e:	0f be c3             	movsbl %bl,%eax
420291:	83 c0 a9             	add    $0xffffffa9,%eax
420294:	eb 0e                	jmp    0x4202a4
420296:	8a c3                	mov    %bl,%al
420298:	2c 41                	sub    $0x41,%al
42029a:	3c 19                	cmp    $0x19,%al
42029c:	77 46                	ja     0x4202e4
42029e:	0f be c3             	movsbl %bl,%eax
4202a1:	83 c0 c9             	add    $0xffffffc9,%eax
4202a4:	85 c0                	test   %eax,%eax
4202a6:	75 3c                	jne    0x4202e4
4202a8:	8a 07                	mov    (%edi),%al
4202aa:	47                   	inc    %edi
4202ab:	88 45 f0             	mov    %al,-0x10(%ebp)
4202ae:	89 7d 0c             	mov    %edi,0xc(%ebp)
4202b1:	3c 78                	cmp    $0x78,%al
4202b3:	74 1d                	je     0x4202d2
4202b5:	3c 58                	cmp    $0x58,%al
4202b7:	74 19                	je     0x4202d2
4202b9:	85 f6                	test   %esi,%esi
4202bb:	75 03                	jne    0x4202c0
4202bd:	6a 08                	push   $0x8
4202bf:	5e                   	pop    %esi
4202c0:	ff 75 f0             	push   -0x10(%ebp)
4202c3:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4202c6:	e8 51 f3 ff ff       	call   0x41f61c
4202cb:	8b 7d 0c             	mov    0xc(%ebp),%edi
4202ce:	33 c9                	xor    %ecx,%ecx
4202d0:	eb 19                	jmp    0x4202eb
4202d2:	85 f6                	test   %esi,%esi
4202d4:	75 03                	jne    0x4202d9
4202d6:	6a 10                	push   $0x10
4202d8:	5e                   	pop    %esi
4202d9:	8a 1f                	mov    (%edi),%bl
4202db:	47                   	inc    %edi
4202dc:	88 5d fc             	mov    %bl,-0x4(%ebp)
4202df:	89 7d 0c             	mov    %edi,0xc(%ebp)
4202e2:	eb 07                	jmp    0x4202eb
4202e4:	85 f6                	test   %esi,%esi
4202e6:	75 03                	jne    0x4202eb
4202e8:	6a 0a                	push   $0xa
4202ea:	5e                   	pop    %esi
4202eb:	83 c8 ff             	or     $0xffffffff,%eax
4202ee:	33 d2                	xor    %edx,%edx
4202f0:	f7 f6                	div    %esi
4202f2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4202f5:	8a c3                	mov    %bl,%al
4202f7:	2c 30                	sub    $0x30,%al
4202f9:	3c 09                	cmp    $0x9,%al
4202fb:	77 08                	ja     0x420305
4202fd:	0f be d3             	movsbl %bl,%edx
420300:	83 c2 d0             	add    $0xffffffd0,%edx
420303:	eb 23                	jmp    0x420328
420305:	8a c3                	mov    %bl,%al
420307:	2c 61                	sub    $0x61,%al
420309:	3c 19                	cmp    $0x19,%al
42030b:	77 08                	ja     0x420315
42030d:	0f be d3             	movsbl %bl,%edx
420310:	83 c2 a9             	add    $0xffffffa9,%edx
420313:	eb 13                	jmp    0x420328
420315:	8a c3                	mov    %bl,%al
420317:	2c 41                	sub    $0x41,%al
420319:	3c 19                	cmp    $0x19,%al
42031b:	77 08                	ja     0x420325
42031d:	0f be d3             	movsbl %bl,%edx
420320:	83 c2 c9             	add    $0xffffffc9,%edx
420323:	eb 03                	jmp    0x420328
420325:	83 ca ff             	or     $0xffffffff,%edx
420328:	3b d6                	cmp    %esi,%edx
42032a:	73 30                	jae    0x42035c
42032c:	8b 45 f0             	mov    -0x10(%ebp),%eax
42032f:	0f af ce             	imul   %esi,%ecx
420332:	8a 1f                	mov    (%edi),%bl
420334:	88 5d fc             	mov    %bl,-0x4(%ebp)
420337:	03 d1                	add    %ecx,%edx
420339:	3b d1                	cmp    %ecx,%edx
42033b:	1b c9                	sbb    %ecx,%ecx
42033d:	f7 d9                	neg    %ecx
42033f:	3b 45 f4             	cmp    -0xc(%ebp),%eax
420342:	89 55 f4             	mov    %edx,-0xc(%ebp)
420345:	1b c0                	sbb    %eax,%eax
420347:	f7 d8                	neg    %eax
420349:	0b c8                	or     %eax,%ecx
42034b:	c1 e1 02             	shl    $0x2,%ecx
42034e:	83 c9 08             	or     $0x8,%ecx
420351:	09 4d f8             	or     %ecx,-0x8(%ebp)
420354:	47                   	inc    %edi
420355:	8b ca                	mov    %edx,%ecx
420357:	89 7d 0c             	mov    %edi,0xc(%ebp)
42035a:	eb 99                	jmp    0x4202f5
42035c:	ff 75 fc             	push   -0x4(%ebp)
42035f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
420362:	e8 b5 f2 ff ff       	call   0x41f61c
420367:	8b 5d f8             	mov    -0x8(%ebp),%ebx
42036a:	5f                   	pop    %edi
42036b:	f6 c3 08             	test   $0x8,%bl
42036e:	75 10                	jne    0x420380
420370:	8b 45 10             	mov    0x10(%ebp),%eax
420373:	85 c0                	test   %eax,%eax
420375:	74 05                	je     0x42037c
420377:	8b 4d ec             	mov    -0x14(%ebp),%ecx
42037a:	89 08                	mov    %ecx,(%eax)
42037c:	33 c0                	xor    %eax,%eax
42037e:	eb 65                	jmp    0x4203e5
420380:	8b 75 f4             	mov    -0xc(%ebp),%esi
420383:	56                   	push   %esi
420384:	53                   	push   %ebx
420385:	e8 19 e4 ff ff       	call   0x41e7a3
42038a:	59                   	pop    %ecx
42038b:	59                   	pop    %ecx
42038c:	84 c0                	test   %al,%al
42038e:	74 40                	je     0x4203d0
420390:	8b 45 08             	mov    0x8(%ebp),%eax
420393:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420397:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
42039e:	f6 c3 01             	test   $0x1,%bl
4203a1:	75 05                	jne    0x4203a8
4203a3:	83 ce ff             	or     $0xffffffff,%esi
4203a6:	eb 2f                	jmp    0x4203d7
4203a8:	8b 4d 10             	mov    0x10(%ebp),%ecx
4203ab:	f6 c3 02             	test   $0x2,%bl
4203ae:	74 10                	je     0x4203c0
4203b0:	85 c9                	test   %ecx,%ecx
4203b2:	74 05                	je     0x4203b9
4203b4:	8b 45 0c             	mov    0xc(%ebp),%eax
4203b7:	89 01                	mov    %eax,(%ecx)
4203b9:	b8 00 00 00 80       	mov    $0x80000000,%eax
4203be:	eb 25                	jmp    0x4203e5
4203c0:	85 c9                	test   %ecx,%ecx
4203c2:	74 05                	je     0x4203c9
4203c4:	8b 45 0c             	mov    0xc(%ebp),%eax
4203c7:	89 01                	mov    %eax,(%ecx)
4203c9:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4203ce:	eb 15                	jmp    0x4203e5
4203d0:	f6 c3 02             	test   $0x2,%bl
4203d3:	74 02                	je     0x4203d7
4203d5:	f7 de                	neg    %esi
4203d7:	8b 55 10             	mov    0x10(%ebp),%edx
4203da:	85 d2                	test   %edx,%edx
4203dc:	74 05                	je     0x4203e3
4203de:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4203e1:	89 0a                	mov    %ecx,(%edx)
4203e3:	8b c6                	mov    %esi,%eax
4203e5:	5e                   	pop    %esi
4203e6:	5b                   	pop    %ebx
4203e7:	c9                   	leave
4203e8:	c3                   	ret
4203e9:	8b ff                	mov    %edi,%edi
4203eb:	55                   	push   %ebp
4203ec:	8b ec                	mov    %esp,%ebp
4203ee:	81 ec 90 00 00 00    	sub    $0x90,%esp
4203f4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4203f7:	53                   	push   %ebx
4203f8:	56                   	push   %esi
4203f9:	57                   	push   %edi
4203fa:	e8 dc f2 ff ff       	call   0x41f6db
4203ff:	84 c0                	test   %al,%al
420401:	74 2f                	je     0x420432
420403:	8b 7d 14             	mov    0x14(%ebp),%edi
420406:	85 ff                	test   %edi,%edi
420408:	74 3d                	je     0x420447
42040a:	83 ff 02             	cmp    $0x2,%edi
42040d:	7c 05                	jl     0x420414
42040f:	83 ff 24             	cmp    $0x24,%edi
420412:	7e 33                	jle    0x420447
420414:	8b 45 08             	mov    0x8(%ebp),%eax
420417:	50                   	push   %eax
420418:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42041c:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
420423:	33 c0                	xor    %eax,%eax
420425:	50                   	push   %eax
420426:	50                   	push   %eax
420427:	50                   	push   %eax
420428:	50                   	push   %eax
420429:	50                   	push   %eax
42042a:	e8 d7 f4 ff ff       	call   0x41f906
42042f:	83 c4 18             	add    $0x18,%esp
420432:	8b 4d 10             	mov    0x10(%ebp),%ecx
420435:	85 c9                	test   %ecx,%ecx
420437:	0f 84 11 05 00 00    	je     0x42094e
42043d:	8b 45 0c             	mov    0xc(%ebp),%eax
420440:	89 01                	mov    %eax,(%ecx)
420442:	e9 07 05 00 00       	jmp    0x42094e
420447:	8b 45 0c             	mov    0xc(%ebp),%eax
42044a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)