4121e0:	0f 85 e2 01 00 00    	jne    0x4123c8
4121e6:	66 3b f1             	cmp    %cx,%si
4121e9:	0f 82 66 01 00 00    	jb     0x412355
4121ef:	66 3b b5 74 ff ff ff 	cmp    -0x8c(%ebp),%si
4121f6:	73 0a                	jae    0x412202
4121f8:	0f b7 c6             	movzwl %si,%eax
4121fb:	2b c1                	sub    %ecx,%eax
4121fd:	e9 4e 01 00 00       	jmp    0x412350
412202:	66 3b f0             	cmp    %ax,%si
412205:	0f 83 34 01 00 00    	jae    0x41233f
41220b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41220e:	66 3b f1             	cmp    %cx,%si
412211:	0f 82 3e 01 00 00    	jb     0x412355
412217:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
41221b:	72 db                	jb     0x4121f8
41221d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
412220:	66 3b f1             	cmp    %cx,%si
412223:	0f 82 2c 01 00 00    	jb     0x412355
412229:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
41222d:	72 c9                	jb     0x4121f8
41222f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
412232:	66 3b f1             	cmp    %cx,%si
412235:	0f 82 1a 01 00 00    	jb     0x412355
41223b:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
41223f:	72 b7                	jb     0x4121f8
412241:	8b 4d e0             	mov    -0x20(%ebp),%ecx
412244:	66 3b f1             	cmp    %cx,%si
412247:	0f 82 08 01 00 00    	jb     0x412355
41224d:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
412251:	72 a5                	jb     0x4121f8
412253:	8b 4d d8             	mov    -0x28(%ebp),%ecx
412256:	66 3b f1             	cmp    %cx,%si
412259:	0f 82 f6 00 00 00    	jb     0x412355
41225f:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
412263:	72 93                	jb     0x4121f8
412265:	8b 4d d0             	mov    -0x30(%ebp),%ecx
412268:	66 3b f1             	cmp    %cx,%si
41226b:	0f 82 e4 00 00 00    	jb     0x412355
412271:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
412275:	72 81                	jb     0x4121f8
412277:	8b 4d c8             	mov    -0x38(%ebp),%ecx
41227a:	66 3b f1             	cmp    %cx,%si
41227d:	0f 82 d2 00 00 00    	jb     0x412355
412283:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
412287:	0f 82 6b ff ff ff    	jb     0x4121f8
41228d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
412290:	66 3b f1             	cmp    %cx,%si
412293:	0f 82 bc 00 00 00    	jb     0x412355
412299:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
41229d:	0f 82 55 ff ff ff    	jb     0x4121f8
4122a3:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4122a6:	66 3b f1             	cmp    %cx,%si
4122a9:	0f 82 a6 00 00 00    	jb     0x412355
4122af:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
4122b3:	0f 82 3f ff ff ff    	jb     0x4121f8
4122b9:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4122bc:	66 3b f1             	cmp    %cx,%si
4122bf:	0f 82 90 00 00 00    	jb     0x412355
4122c5:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
4122c9:	0f 82 29 ff ff ff    	jb     0x4121f8
4122cf:	8b 4d a8             	mov    -0x58(%ebp),%ecx
4122d2:	66 3b f1             	cmp    %cx,%si
4122d5:	72 7e                	jb     0x412355
4122d7:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
4122db:	0f 82 17 ff ff ff    	jb     0x4121f8
4122e1:	8b 4d a0             	mov    -0x60(%ebp),%ecx
4122e4:	66 3b f1             	cmp    %cx,%si
4122e7:	72 6c                	jb     0x412355
4122e9:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
4122ed:	0f 82 05 ff ff ff    	jb     0x4121f8
4122f3:	8b 4d 98             	mov    -0x68(%ebp),%ecx
4122f6:	66 3b f1             	cmp    %cx,%si
4122f9:	72 5a                	jb     0x412355
4122fb:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
4122ff:	0f 82 f3 fe ff ff    	jb     0x4121f8
412305:	8b 4d 90             	mov    -0x70(%ebp),%ecx
412308:	66 3b f1             	cmp    %cx,%si
41230b:	72 48                	jb     0x412355
41230d:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
412311:	0f 82 e1 fe ff ff    	jb     0x4121f8
412317:	8b 4d 88             	mov    -0x78(%ebp),%ecx
41231a:	66 3b f1             	cmp    %cx,%si
41231d:	72 36                	jb     0x412355
41231f:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
412323:	0f 82 cf fe ff ff    	jb     0x4121f8
412329:	8b 4d 80             	mov    -0x80(%ebp),%ecx
41232c:	66 3b f1             	cmp    %cx,%si
41232f:	72 24                	jb     0x412355
412331:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
412338:	73 1b                	jae    0x412355
41233a:	e9 b9 fe ff ff       	jmp    0x4121f8
41233f:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
412346:	73 0d                	jae    0x412355
412348:	0f b7 c6             	movzwl %si,%eax
41234b:	2d 10 ff 00 00       	sub    $0xff10,%eax
412350:	83 f8 ff             	cmp    $0xffffffff,%eax
412353:	75 25                	jne    0x41237a
412355:	0f b7 c6             	movzwl %si,%eax
412358:	83 f8 41             	cmp    $0x41,%eax
41235b:	72 0a                	jb     0x412367
41235d:	83 f8 5a             	cmp    $0x5a,%eax
412360:	77 05                	ja     0x412367
412362:	8d 48 9f             	lea    -0x61(%eax),%ecx
412365:	eb 08                	jmp    0x41236f
412367:	8d 48 9f             	lea    -0x61(%eax),%ecx
41236a:	83 f9 19             	cmp    $0x19,%ecx
41236d:	77 4c                	ja     0x4123bb
41236f:	83 f9 19             	cmp    $0x19,%ecx
412372:	77 03                	ja     0x412377
412374:	83 c0 e0             	add    $0xffffffe0,%eax
412377:	83 c0 c9             	add    $0xffffffc9,%eax
41237a:	85 c0                	test   %eax,%eax
41237c:	75 3d                	jne    0x4123bb
41237e:	0f b7 02             	movzwl (%edx),%eax
412381:	8d 4a 02             	lea    0x2(%edx),%ecx
412384:	89 4d 0c             	mov    %ecx,0xc(%ebp)
412387:	83 f8 78             	cmp    $0x78,%eax
41238a:	74 1a                	je     0x4123a6
41238c:	83 f8 58             	cmp    $0x58,%eax
41238f:	74 15                	je     0x4123a6
412391:	85 ff                	test   %edi,%edi
412393:	75 06                	jne    0x41239b
412395:	6a 08                	push   $0x8
412397:	5f                   	pop    %edi
412398:	89 7d 14             	mov    %edi,0x14(%ebp)
41239b:	50                   	push   %eax
41239c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41239f:	e8 e7 f4 ff ff       	call   0x41188b
4123a4:	eb 1f                	jmp    0x4123c5
4123a6:	85 ff                	test   %edi,%edi
4123a8:	75 06                	jne    0x4123b0
4123aa:	6a 10                	push   $0x10
4123ac:	5f                   	pop    %edi
4123ad:	89 7d 14             	mov    %edi,0x14(%ebp)
4123b0:	0f b7 31             	movzwl (%ecx),%esi
4123b3:	8d 51 02             	lea    0x2(%ecx),%edx
4123b6:	89 55 0c             	mov    %edx,0xc(%ebp)
4123b9:	eb 0a                	jmp    0x4123c5
4123bb:	85 ff                	test   %edi,%edi
4123bd:	75 06                	jne    0x4123c5
4123bf:	6a 0a                	push   $0xa
4123c1:	5f                   	pop    %edi
4123c2:	89 7d 14             	mov    %edi,0x14(%ebp)
4123c5:	6a 30                	push   $0x30
4123c7:	59                   	pop    %ecx
4123c8:	83 c8 ff             	or     $0xffffffff,%eax
4123cb:	33 d2                	xor    %edx,%edx
4123cd:	f7 f7                	div    %edi
4123cf:	8b f8                	mov    %eax,%edi
4123d1:	66 3b f1             	cmp    %cx,%si
4123d4:	0f 82 53 01 00 00    	jb     0x41252d
4123da:	6a 3a                	push   $0x3a
4123dc:	58                   	pop    %eax
4123dd:	66 3b f0             	cmp    %ax,%si
4123e0:	73 0b                	jae    0x4123ed
4123e2:	0f b7 ce             	movzwl %si,%ecx
4123e5:	83 e9 30             	sub    $0x30,%ecx
4123e8:	e9 3b 01 00 00       	jmp    0x412528
4123ed:	b8 10 ff 00 00       	mov    $0xff10,%eax
4123f2:	66 3b f0             	cmp    %ax,%si
4123f5:	0f 83 1f 01 00 00    	jae    0x41251a
4123fb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4123fe:	66 3b f0             	cmp    %ax,%si
412401:	0f 82 26 01 00 00    	jb     0x41252d
412407:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
41240b:	0f 82 12 01 00 00    	jb     0x412523
412411:	8b 45 f0             	mov    -0x10(%ebp),%eax
412414:	66 3b f0             	cmp    %ax,%si
412417:	0f 82 10 01 00 00    	jb     0x41252d
41241d:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
412421:	0f 82 fc 00 00 00    	jb     0x412523
412427:	8b 45 e8             	mov    -0x18(%ebp),%eax
41242a:	66 3b f0             	cmp    %ax,%si
41242d:	0f 82 fa 00 00 00    	jb     0x41252d
412433:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
412437:	0f 82 e6 00 00 00    	jb     0x412523
41243d:	8b 45 e0             	mov    -0x20(%ebp),%eax
412440:	66 3b f0             	cmp    %ax,%si
412443:	0f 82 e4 00 00 00    	jb     0x41252d
412449:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
41244d:	0f 82 d0 00 00 00    	jb     0x412523
412453:	8b 45 d8             	mov    -0x28(%ebp),%eax
412456:	66 3b f0             	cmp    %ax,%si
412459:	0f 82 ce 00 00 00    	jb     0x41252d
41245f:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
412463:	0f 82 ba 00 00 00    	jb     0x412523
412469:	8b 45 d0             	mov    -0x30(%ebp),%eax
41246c:	66 3b f0             	cmp    %ax,%si
41246f:	0f 82 b8 00 00 00    	jb     0x41252d
412475:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
412479:	0f 82 a4 00 00 00    	jb     0x412523
41247f:	8b 45 c8             	mov    -0x38(%ebp),%eax
412482:	66 3b f0             	cmp    %ax,%si
412485:	0f 82 a2 00 00 00    	jb     0x41252d
41248b:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
41248f:	0f 82 8e 00 00 00    	jb     0x412523
412495:	8b 45 c0             	mov    -0x40(%ebp),%eax
412498:	66 3b f0             	cmp    %ax,%si
41249b:	0f 82 8c 00 00 00    	jb     0x41252d
4124a1:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
4124a5:	72 7c                	jb     0x412523
4124a7:	8b 45 b8             	mov    -0x48(%ebp),%eax
4124aa:	66 3b f0             	cmp    %ax,%si
4124ad:	72 7e                	jb     0x41252d
4124af:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
4124b3:	72 6e                	jb     0x412523
4124b5:	8b 45 b0             	mov    -0x50(%ebp),%eax
4124b8:	66 3b f0             	cmp    %ax,%si
4124bb:	72 70                	jb     0x41252d
4124bd:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
4124c1:	72 60                	jb     0x412523
4124c3:	8b 45 a8             	mov    -0x58(%ebp),%eax
4124c6:	66 3b f0             	cmp    %ax,%si
4124c9:	72 62                	jb     0x41252d
4124cb:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
4124cf:	72 52                	jb     0x412523
4124d1:	8b 45 a0             	mov    -0x60(%ebp),%eax
4124d4:	66 3b f0             	cmp    %ax,%si
4124d7:	72 54                	jb     0x41252d
4124d9:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
4124dd:	72 44                	jb     0x412523
4124df:	8b 45 98             	mov    -0x68(%ebp),%eax
4124e2:	66 3b f0             	cmp    %ax,%si
4124e5:	72 46                	jb     0x41252d
4124e7:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
4124eb:	72 36                	jb     0x412523
4124ed:	8b 45 90             	mov    -0x70(%ebp),%eax
4124f0:	66 3b f0             	cmp    %ax,%si
4124f3:	72 38                	jb     0x41252d
4124f5:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
4124f9:	72 28                	jb     0x412523
4124fb:	8b 45 88             	mov    -0x78(%ebp),%eax
4124fe:	66 3b f0             	cmp    %ax,%si
412501:	72 2a                	jb     0x41252d
412503:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
412507:	72 1a                	jb     0x412523
412509:	8b 45 80             	mov    -0x80(%ebp),%eax
41250c:	66 3b f0             	cmp    %ax,%si
41250f:	72 1c                	jb     0x41252d
412511:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
412518:	eb 07                	jmp    0x412521
41251a:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
412521:	73 0a                	jae    0x41252d
412523:	0f b7 ce             	movzwl %si,%ecx
412526:	2b c8                	sub    %eax,%ecx
412528:	83 f9 ff             	cmp    $0xffffffff,%ecx
41252b:	75 2e                	jne    0x41255b
41252d:	0f b7 ce             	movzwl %si,%ecx
412530:	83 f9 41             	cmp    $0x41,%ecx
412533:	72 05                	jb     0x41253a
412535:	83 f9 5a             	cmp    $0x5a,%ecx
412538:	76 0b                	jbe    0x412545
41253a:	83 f9 61             	cmp    $0x61,%ecx
41253d:	72 19                	jb     0x412558
41253f:	66 83 fe 7a          	cmp    $0x7a,%si
412543:	77 13                	ja     0x412558
412545:	6a 19                	push   $0x19
412547:	8d 46 9f             	lea    -0x61(%esi),%eax
41254a:	5a                   	pop    %edx
41254b:	66 3b c2             	cmp    %dx,%ax
41254e:	77 03                	ja     0x412553
412550:	83 c1 e0             	add    $0xffffffe0,%ecx
412553:	83 c1 c9             	add    $0xffffffc9,%ecx
412556:	eb 03                	jmp    0x41255b
412558:	83 c9 ff             	or     $0xffffffff,%ecx
41255b:	8b 55 14             	mov    0x14(%ebp),%edx
41255e:	3b ca                	cmp    %edx,%ecx
412560:	73 37                	jae    0x412599
412562:	8b 45 fc             	mov    -0x4(%ebp),%eax
412565:	0f af c2             	imul   %edx,%eax
412568:	6a 30                	push   $0x30
41256a:	8d 14 08             	lea    (%eax,%ecx,1),%edx
41256d:	3b d0                	cmp    %eax,%edx
41256f:	1b c9                	sbb    %ecx,%ecx
412571:	f7 d9                	neg    %ecx
412573:	3b 7d fc             	cmp    -0x4(%ebp),%edi
412576:	89 55 fc             	mov    %edx,-0x4(%ebp)
412579:	1b c0                	sbb    %eax,%eax
41257b:	f7 d8                	neg    %eax
41257d:	0b c8                	or     %eax,%ecx
41257f:	c1 e1 02             	shl    $0x2,%ecx
412582:	83 c9 08             	or     $0x8,%ecx
412585:	0b d9                	or     %ecx,%ebx
412587:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41258a:	0f b7 31             	movzwl (%ecx),%esi
41258d:	83 c1 02             	add    $0x2,%ecx
412590:	89 4d 0c             	mov    %ecx,0xc(%ebp)
412593:	59                   	pop    %ecx
412594:	e9 38 fe ff ff       	jmp    0x4123d1
412599:	56                   	push   %esi
41259a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41259d:	e8 e9 f2 ff ff       	call   0x41188b
4125a2:	f6 c3 08             	test   $0x8,%bl
4125a5:	75 13                	jne    0x4125ba
4125a7:	8b 45 10             	mov    0x10(%ebp),%eax
4125aa:	85 c0                	test   %eax,%eax
4125ac:	74 08                	je     0x4125b6
4125ae:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
4125b4:	89 08                	mov    %ecx,(%eax)
4125b6:	33 c0                	xor    %eax,%eax
4125b8:	eb 65                	jmp    0x41261f
4125ba:	8b 75 fc             	mov    -0x4(%ebp),%esi
4125bd:	56                   	push   %esi
4125be:	53                   	push   %ebx
4125bf:	e8 5e b5 ff ff       	call   0x40db22
4125c4:	59                   	pop    %ecx
4125c5:	59                   	pop    %ecx
4125c6:	84 c0                	test   %al,%al
4125c8:	74 40                	je     0x41260a
4125ca:	8b 45 08             	mov    0x8(%ebp),%eax
4125cd:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4125d1:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
4125d8:	f6 c3 01             	test   $0x1,%bl
4125db:	75 05                	jne    0x4125e2
4125dd:	83 ce ff             	or     $0xffffffff,%esi
4125e0:	eb 2f                	jmp    0x412611
4125e2:	8b 4d 10             	mov    0x10(%ebp),%ecx
4125e5:	f6 c3 02             	test   $0x2,%bl
4125e8:	74 10                	je     0x4125fa
4125ea:	85 c9                	test   %ecx,%ecx
4125ec:	74 05                	je     0x4125f3
4125ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4125f1:	89 01                	mov    %eax,(%ecx)
4125f3:	b8 00 00 00 80       	mov    $0x80000000,%eax
4125f8:	eb 25                	jmp    0x41261f
4125fa:	85 c9                	test   %ecx,%ecx
4125fc:	74 05                	je     0x412603
4125fe:	8b 45 0c             	mov    0xc(%ebp),%eax
412601:	89 01                	mov    %eax,(%ecx)
412603:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
412608:	eb 15                	jmp    0x41261f
41260a:	f6 c3 02             	test   $0x2,%bl
41260d:	74 02                	je     0x412611
41260f:	f7 de                	neg    %esi
412611:	8b 55 10             	mov    0x10(%ebp),%edx
412614:	85 d2                	test   %edx,%edx
412616:	74 05                	je     0x41261d
412618:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41261b:	89 0a                	mov    %ecx,(%edx)
41261d:	8b c6                	mov    %esi,%eax
41261f:	5f                   	pop    %edi
412620:	5e                   	pop    %esi
412621:	5b                   	pop    %ebx
412622:	c9                   	leave
412623:	c3                   	ret
412624:	8b ff                	mov    %edi,%edi
412626:	55                   	push   %ebp
412627:	8b ec                	mov    %esp,%ebp
412629:	83 ec 28             	sub    $0x28,%esp
41262c:	8d 4d 0c             	lea    0xc(%ebp),%ecx