42120c:	76 3b                	jbe    0x421249
42120e:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
421214:	76 33                	jbe    0x421249
421216:	56                   	push   %esi
421217:	e8 95 b2 00 00       	call   0x42c4b1
42121c:	89 45 fc             	mov    %eax,-0x4(%ebp)
42121f:	59                   	pop    %ecx
421220:	85 c0                	test   %eax,%eax
421222:	75 0b                	jne    0x42122f
421224:	50                   	push   %eax
421225:	e8 4d b2 00 00       	call   0x42c477
42122a:	59                   	pop    %ecx
42122b:	32 c0                	xor    %al,%al
42122d:	eb 1c                	jmp    0x42124b
42122f:	8d 45 fc             	lea    -0x4(%ebp),%eax
421232:	8b cb                	mov    %ebx,%ecx
421234:	50                   	push   %eax
421235:	e8 b3 19 00 00       	call   0x422bed
42123a:	ff 75 fc             	push   -0x4(%ebp)
42123d:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
421243:	e8 2f b2 00 00       	call   0x42c477
421248:	59                   	pop    %ecx
421249:	b0 01                	mov    $0x1,%al
42124b:	5b                   	pop    %ebx
42124c:	5f                   	pop    %edi
42124d:	5e                   	pop    %esi
42124e:	c9                   	leave
42124f:	c2 08 00             	ret    $0x8
421252:	8b ff                	mov    %edi,%edi
421254:	55                   	push   %ebp
421255:	8b ec                	mov    %esp,%ebp
421257:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
42125b:	75 25                	jne    0x421282
42125d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
421261:	74 0f                	je     0x421272
421263:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
421267:	74 0d                	je     0x421276
421269:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
421270:	77 10                	ja     0x421282
421272:	32 c0                	xor    %al,%al
421274:	5d                   	pop    %ebp
421275:	c3                   	ret
421276:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
42127d:	0f 97 c0             	seta   %al
421280:	5d                   	pop    %ebp
421281:	c3                   	ret
421282:	b0 01                	mov    $0x1,%al
421284:	5d                   	pop    %ebp
421285:	c3                   	ret
421286:	8b ff                	mov    %edi,%edi
421288:	55                   	push   %ebp
421289:	8b ec                	mov    %esp,%ebp
42128b:	8b 45 14             	mov    0x14(%ebp),%eax
42128e:	48                   	dec    %eax
42128f:	83 e8 01             	sub    $0x1,%eax
421292:	74 1f                	je     0x4212b3
421294:	83 e8 01             	sub    $0x1,%eax
421297:	74 16                	je     0x4212af
421299:	83 e8 09             	sub    $0x9,%eax
42129c:	74 11                	je     0x4212af
42129e:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4212a2:	74 0f                	je     0x4212b3
4212a4:	8a 45 10             	mov    0x10(%ebp),%al
4212a7:	3c 63                	cmp    $0x63,%al
4212a9:	74 08                	je     0x4212b3
4212ab:	3c 73                	cmp    $0x73,%al
4212ad:	74 04                	je     0x4212b3
4212af:	b0 01                	mov    $0x1,%al
4212b1:	5d                   	pop    %ebp
4212b2:	c3                   	ret
4212b3:	32 c0                	xor    %al,%al
4212b5:	5d                   	pop    %ebp
4212b6:	c3                   	ret
4212b7:	8b ff                	mov    %edi,%edi
4212b9:	55                   	push   %ebp
4212ba:	8b ec                	mov    %esp,%ebp
4212bc:	8b 45 14             	mov    0x14(%ebp),%eax
4212bf:	48                   	dec    %eax
4212c0:	83 e8 01             	sub    $0x1,%eax
4212c3:	74 3c                	je     0x421301
4212c5:	83 e8 01             	sub    $0x1,%eax
4212c8:	74 33                	je     0x4212fd
4212ca:	83 e8 09             	sub    $0x9,%eax
4212cd:	74 2e                	je     0x4212fd
4212cf:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4212d3:	74 28                	je     0x4212fd
4212d5:	8b 45 08             	mov    0x8(%ebp),%eax
4212d8:	83 e0 04             	and    $0x4,%eax
4212db:	83 c8 00             	or     $0x0,%eax
4212de:	6a 01                	push   $0x1
4212e0:	58                   	pop    %eax
4212e1:	74 04                	je     0x4212e7
4212e3:	8a c8                	mov    %al,%cl
4212e5:	eb 02                	jmp    0x4212e9
4212e7:	32 c9                	xor    %cl,%cl
4212e9:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
4212ee:	74 07                	je     0x4212f7
4212f0:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
4212f5:	75 02                	jne    0x4212f9
4212f7:	32 c0                	xor    %al,%al
4212f9:	32 c1                	xor    %cl,%al
4212fb:	5d                   	pop    %ebp
4212fc:	c3                   	ret
4212fd:	b0 01                	mov    $0x1,%al
4212ff:	5d                   	pop    %ebp
421300:	c3                   	ret
421301:	32 c0                	xor    %al,%al
421303:	5d                   	pop    %ebp
421304:	c3                   	ret
421305:	8b ff                	mov    %edi,%edi
421307:	55                   	push   %ebp
421308:	8b ec                	mov    %esp,%ebp
42130a:	8b 45 08             	mov    0x8(%ebp),%eax
42130d:	8b 4d 10             	mov    0x10(%ebp),%ecx
421310:	8b 55 0c             	mov    0xc(%ebp),%edx
421313:	89 10                	mov    %edx,(%eax)
421315:	89 48 04             	mov    %ecx,0x4(%eax)
421318:	85 c9                	test   %ecx,%ecx
42131a:	74 02                	je     0x42131e
42131c:	89 11                	mov    %edx,(%ecx)
42131e:	5d                   	pop    %ebp
42131f:	c3                   	ret
421320:	8b ff                	mov    %edi,%edi
421322:	55                   	push   %ebp
421323:	8b ec                	mov    %esp,%ebp
421325:	83 ec 14             	sub    $0x14,%esp
421328:	8d 4d 0c             	lea    0xc(%ebp),%ecx
42132b:	53                   	push   %ebx
42132c:	56                   	push   %esi
42132d:	e8 c9 32 00 00       	call   0x4245fb
421332:	84 c0                	test   %al,%al
421334:	74 2f                	je     0x421365
421336:	8b 75 14             	mov    0x14(%ebp),%esi
421339:	85 f6                	test   %esi,%esi
42133b:	74 3d                	je     0x42137a
42133d:	83 fe 02             	cmp    $0x2,%esi
421340:	7c 05                	jl     0x421347
421342:	83 fe 24             	cmp    $0x24,%esi
421345:	7e 33                	jle    0x42137a
421347:	8b 45 08             	mov    0x8(%ebp),%eax
42134a:	50                   	push   %eax
42134b:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42134f:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
421356:	33 c0                	xor    %eax,%eax
421358:	50                   	push   %eax
421359:	50                   	push   %eax
42135a:	50                   	push   %eax
42135b:	50                   	push   %eax
42135c:	50                   	push   %eax
42135d:	e8 90 f6 ff ff       	call   0x4209f2
421362:	83 c4 18             	add    $0x18,%esp
421365:	8b 4d 10             	mov    0x10(%ebp),%ecx
421368:	85 c9                	test   %ecx,%ecx
42136a:	0f 84 52 01 00 00    	je     0x4214c2
421370:	8b 45 0c             	mov    0xc(%ebp),%eax
421373:	89 01                	mov    %eax,(%ecx)
421375:	e9 48 01 00 00       	jmp    0x4214c2
42137a:	8b 45 0c             	mov    0xc(%ebp),%eax
42137d:	33 c9                	xor    %ecx,%ecx
42137f:	57                   	push   %edi
421380:	89 45 ec             	mov    %eax,-0x14(%ebp)
421383:	89 4d f4             	mov    %ecx,-0xc(%ebp)
421386:	8a 18                	mov    (%eax),%bl
421388:	8d 78 01             	lea    0x1(%eax),%edi
42138b:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
42138f:	88 5d fc             	mov    %bl,-0x4(%ebp)
421392:	89 7d 0c             	mov    %edi,0xc(%ebp)
421395:	89 45 f8             	mov    %eax,-0x8(%ebp)
421398:	80 fb 2d             	cmp    $0x2d,%bl
42139b:	75 08                	jne    0x4213a5
42139d:	83 c8 02             	or     $0x2,%eax
4213a0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4213a3:	eb 05                	jmp    0x4213aa
4213a5:	80 fb 2b             	cmp    $0x2b,%bl
4213a8:	75 09                	jne    0x4213b3
4213aa:	8a 1f                	mov    (%edi),%bl
4213ac:	47                   	inc    %edi
4213ad:	88 5d fc             	mov    %bl,-0x4(%ebp)
4213b0:	89 7d 0c             	mov    %edi,0xc(%ebp)
4213b3:	85 f6                	test   %esi,%esi
4213b5:	74 05                	je     0x4213bc
4213b7:	83 fe 10             	cmp    $0x10,%esi
4213ba:	75 75                	jne    0x421431
4213bc:	8a c3                	mov    %bl,%al
4213be:	2c 30                	sub    $0x30,%al
4213c0:	3c 09                	cmp    $0x9,%al
4213c2:	77 08                	ja     0x4213cc
4213c4:	0f be c3             	movsbl %bl,%eax
4213c7:	83 c0 d0             	add    $0xffffffd0,%eax
4213ca:	eb 1e                	jmp    0x4213ea
4213cc:	8a c3                	mov    %bl,%al
4213ce:	2c 61                	sub    $0x61,%al
4213d0:	3c 19                	cmp    $0x19,%al
4213d2:	77 08                	ja     0x4213dc
4213d4:	0f be c3             	movsbl %bl,%eax
4213d7:	83 c0 a9             	add    $0xffffffa9,%eax
4213da:	eb 0e                	jmp    0x4213ea
4213dc:	8a c3                	mov    %bl,%al
4213de:	2c 41                	sub    $0x41,%al
4213e0:	3c 19                	cmp    $0x19,%al
4213e2:	77 46                	ja     0x42142a
4213e4:	0f be c3             	movsbl %bl,%eax
4213e7:	83 c0 c9             	add    $0xffffffc9,%eax
4213ea:	85 c0                	test   %eax,%eax
4213ec:	75 3c                	jne    0x42142a
4213ee:	8a 07                	mov    (%edi),%al
4213f0:	47                   	inc    %edi
4213f1:	88 45 f0             	mov    %al,-0x10(%ebp)
4213f4:	89 7d 0c             	mov    %edi,0xc(%ebp)
4213f7:	3c 78                	cmp    $0x78,%al
4213f9:	74 1d                	je     0x421418
4213fb:	3c 58                	cmp    $0x58,%al
4213fd:	74 19                	je     0x421418
4213ff:	85 f6                	test   %esi,%esi
421401:	75 03                	jne    0x421406
421403:	6a 08                	push   $0x8
421405:	5e                   	pop    %esi
421406:	ff 75 f0             	push   -0x10(%ebp)
421409:	8d 4d 0c             	lea    0xc(%ebp),%ecx
42140c:	e8 36 31 00 00       	call   0x424547
421411:	8b 7d 0c             	mov    0xc(%ebp),%edi
421414:	33 c9                	xor    %ecx,%ecx
421416:	eb 19                	jmp    0x421431
421418:	85 f6                	test   %esi,%esi
42141a:	75 03                	jne    0x42141f
42141c:	6a 10                	push   $0x10
42141e:	5e                   	pop    %esi
42141f:	8a 1f                	mov    (%edi),%bl
421421:	47                   	inc    %edi
421422:	88 5d fc             	mov    %bl,-0x4(%ebp)
421425:	89 7d 0c             	mov    %edi,0xc(%ebp)
421428:	eb 07                	jmp    0x421431
42142a:	85 f6                	test   %esi,%esi
42142c:	75 03                	jne    0x421431
42142e:	6a 0a                	push   $0xa
421430:	5e                   	pop    %esi
421431:	83 c8 ff             	or     $0xffffffff,%eax
421434:	33 d2                	xor    %edx,%edx
421436:	f7 f6                	div    %esi
421438:	89 45 f0             	mov    %eax,-0x10(%ebp)
42143b:	8a c3                	mov    %bl,%al
42143d:	2c 30                	sub    $0x30,%al
42143f:	3c 09                	cmp    $0x9,%al
421441:	77 08                	ja     0x42144b
421443:	0f be d3             	movsbl %bl,%edx
421446:	83 c2 d0             	add    $0xffffffd0,%edx
421449:	eb 23                	jmp    0x42146e
42144b:	8a c3                	mov    %bl,%al
42144d:	2c 61                	sub    $0x61,%al
42144f:	3c 19                	cmp    $0x19,%al
421451:	77 08                	ja     0x42145b
421453:	0f be d3             	movsbl %bl,%edx
421456:	83 c2 a9             	add    $0xffffffa9,%edx
421459:	eb 13                	jmp    0x42146e
42145b:	8a c3                	mov    %bl,%al
42145d:	2c 41                	sub    $0x41,%al
42145f:	3c 19                	cmp    $0x19,%al
421461:	77 08                	ja     0x42146b
421463:	0f be d3             	movsbl %bl,%edx
421466:	83 c2 c9             	add    $0xffffffc9,%edx
421469:	eb 03                	jmp    0x42146e
42146b:	83 ca ff             	or     $0xffffffff,%edx
42146e:	3b d6                	cmp    %esi,%edx
421470:	73 30                	jae    0x4214a2
421472:	8b 45 f0             	mov    -0x10(%ebp),%eax
421475:	0f af ce             	imul   %esi,%ecx
421478:	8a 1f                	mov    (%edi),%bl
42147a:	88 5d fc             	mov    %bl,-0x4(%ebp)
42147d:	03 d1                	add    %ecx,%edx
42147f:	3b d1                	cmp    %ecx,%edx
421481:	1b c9                	sbb    %ecx,%ecx
421483:	f7 d9                	neg    %ecx
421485:	3b 45 f4             	cmp    -0xc(%ebp),%eax
421488:	89 55 f4             	mov    %edx,-0xc(%ebp)
42148b:	1b c0                	sbb    %eax,%eax
42148d:	f7 d8                	neg    %eax
42148f:	0b c8                	or     %eax,%ecx
421491:	c1 e1 02             	shl    $0x2,%ecx
421494:	83 c9 08             	or     $0x8,%ecx
421497:	09 4d f8             	or     %ecx,-0x8(%ebp)
42149a:	47                   	inc    %edi
42149b:	8b ca                	mov    %edx,%ecx
42149d:	89 7d 0c             	mov    %edi,0xc(%ebp)
4214a0:	eb 99                	jmp    0x42143b
4214a2:	ff 75 fc             	push   -0x4(%ebp)
4214a5:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4214a8:	e8 9a 30 00 00       	call   0x424547
4214ad:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4214b0:	5f                   	pop    %edi
4214b1:	f6 c3 08             	test   $0x8,%bl
4214b4:	75 10                	jne    0x4214c6
4214b6:	8b 45 10             	mov    0x10(%ebp),%eax
4214b9:	85 c0                	test   %eax,%eax
4214bb:	74 05                	je     0x4214c2
4214bd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4214c0:	89 08                	mov    %ecx,(%eax)
4214c2:	33 c0                	xor    %eax,%eax
4214c4:	eb 65                	jmp    0x42152b
4214c6:	8b 75 f4             	mov    -0xc(%ebp),%esi
4214c9:	56                   	push   %esi
4214ca:	53                   	push   %ebx
4214cb:	e8 82 fd ff ff       	call   0x421252
4214d0:	59                   	pop    %ecx
4214d1:	59                   	pop    %ecx
4214d2:	84 c0                	test   %al,%al
4214d4:	74 40                	je     0x421516
4214d6:	8b 45 08             	mov    0x8(%ebp),%eax
4214d9:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4214dd:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
4214e4:	f6 c3 01             	test   $0x1,%bl
4214e7:	75 05                	jne    0x4214ee
4214e9:	83 ce ff             	or     $0xffffffff,%esi
4214ec:	eb 2f                	jmp    0x42151d
4214ee:	8b 4d 10             	mov    0x10(%ebp),%ecx
4214f1:	f6 c3 02             	test   $0x2,%bl
4214f4:	74 10                	je     0x421506
4214f6:	85 c9                	test   %ecx,%ecx
4214f8:	74 05                	je     0x4214ff
4214fa:	8b 45 0c             	mov    0xc(%ebp),%eax
4214fd:	89 01                	mov    %eax,(%ecx)
4214ff:	b8 00 00 00 80       	mov    $0x80000000,%eax
421504:	eb 25                	jmp    0x42152b
421506:	85 c9                	test   %ecx,%ecx
421508:	74 05                	je     0x42150f
42150a:	8b 45 0c             	mov    0xc(%ebp),%eax
42150d:	89 01                	mov    %eax,(%ecx)
42150f:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
421514:	eb 15                	jmp    0x42152b
421516:	f6 c3 02             	test   $0x2,%bl
421519:	74 02                	je     0x42151d
42151b:	f7 de                	neg    %esi
42151d:	8b 55 10             	mov    0x10(%ebp),%edx
421520:	85 d2                	test   %edx,%edx
421522:	74 05                	je     0x421529
421524:	8b 4d 0c             	mov    0xc(%ebp),%ecx
421527:	89 0a                	mov    %ecx,(%edx)
421529:	8b c6                	mov    %esi,%eax
42152b:	5e                   	pop    %esi
42152c:	5b                   	pop    %ebx
42152d:	c9                   	leave
42152e:	c3                   	ret
42152f:	8b ff                	mov    %edi,%edi
421531:	55                   	push   %ebp
421532:	8b ec                	mov    %esp,%ebp
421534:	81 ec 90 00 00 00    	sub    $0x90,%esp
42153a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
42153d:	53                   	push   %ebx
42153e:	56                   	push   %esi
42153f:	57                   	push   %edi
421540:	e8 b6 30 00 00       	call   0x4245fb