41a2d9:	e8 ff 1f 00 00       	call   0x41c2dd
41a2de:	cc                   	int3
41a2df:	8b ff                	mov    %edi,%edi
41a2e1:	55                   	push   %ebp
41a2e2:	8b ec                	mov    %esp,%ebp
41a2e4:	83 ec 20             	sub    $0x20,%esp
41a2e7:	53                   	push   %ebx
41a2e8:	33 db                	xor    %ebx,%ebx
41a2ea:	39 5d 14             	cmp    %ebx,0x14(%ebp)
41a2ed:	75 20                	jne    0x41a30f
41a2ef:	e8 aa 45 00 00       	call   0x41e89e
41a2f4:	53                   	push   %ebx
41a2f5:	53                   	push   %ebx
41a2f6:	53                   	push   %ebx
41a2f7:	53                   	push   %ebx
41a2f8:	53                   	push   %ebx
41a2f9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41a2ff:	e8 ef 58 00 00       	call   0x41fbf3
41a304:	83 c4 14             	add    $0x14,%esp
41a307:	83 c8 ff             	or     $0xffffffff,%eax
41a30a:	e9 c5 00 00 00       	jmp    0x41a3d4
41a30f:	56                   	push   %esi
41a310:	8b 75 0c             	mov    0xc(%ebp),%esi
41a313:	57                   	push   %edi
41a314:	8b 7d 10             	mov    0x10(%ebp),%edi
41a317:	3b fb                	cmp    %ebx,%edi
41a319:	74 24                	je     0x41a33f
41a31b:	3b f3                	cmp    %ebx,%esi
41a31d:	75 20                	jne    0x41a33f
41a31f:	e8 7a 45 00 00       	call   0x41e89e
41a324:	53                   	push   %ebx
41a325:	53                   	push   %ebx
41a326:	53                   	push   %ebx
41a327:	53                   	push   %ebx
41a328:	53                   	push   %ebx
41a329:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41a32f:	e8 bf 58 00 00       	call   0x41fbf3
41a334:	83 c4 14             	add    $0x14,%esp
41a337:	83 c8 ff             	or     $0xffffffff,%eax
41a33a:	e9 93 00 00 00       	jmp    0x41a3d2
41a33f:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
41a346:	89 75 e8             	mov    %esi,-0x18(%ebp)
41a349:	89 75 e0             	mov    %esi,-0x20(%ebp)
41a34c:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
41a352:	76 09                	jbe    0x41a35d
41a354:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41a35b:	eb 06                	jmp    0x41a363
41a35d:	8d 04 3f             	lea    (%edi,%edi,1),%eax
41a360:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41a363:	ff 75 1c             	push   0x1c(%ebp)
41a366:	8d 45 e0             	lea    -0x20(%ebp),%eax
41a369:	ff 75 18             	push   0x18(%ebp)
41a36c:	ff 75 14             	push   0x14(%ebp)
41a36f:	50                   	push   %eax
41a370:	ff 55 08             	call   *0x8(%ebp)
41a373:	83 c4 10             	add    $0x10,%esp
41a376:	89 45 14             	mov    %eax,0x14(%ebp)
41a379:	3b f3                	cmp    %ebx,%esi
41a37b:	74 55                	je     0x41a3d2
41a37d:	3b c3                	cmp    %ebx,%eax
41a37f:	7c 42                	jl     0x41a3c3
41a381:	ff 4d e4             	decl   -0x1c(%ebp)
41a384:	78 0a                	js     0x41a390
41a386:	8b 45 e0             	mov    -0x20(%ebp),%eax
41a389:	88 18                	mov    %bl,(%eax)
41a38b:	ff 45 e0             	incl   -0x20(%ebp)
41a38e:	eb 11                	jmp    0x41a3a1
41a390:	8d 45 e0             	lea    -0x20(%ebp),%eax
41a393:	50                   	push   %eax
41a394:	53                   	push   %ebx
41a395:	e8 be 55 00 00       	call   0x41f958
41a39a:	59                   	pop    %ecx
41a39b:	59                   	pop    %ecx
41a39c:	83 f8 ff             	cmp    $0xffffffff,%eax
41a39f:	74 22                	je     0x41a3c3
41a3a1:	ff 4d e4             	decl   -0x1c(%ebp)
41a3a4:	78 07                	js     0x41a3ad
41a3a6:	8b 45 e0             	mov    -0x20(%ebp),%eax
41a3a9:	88 18                	mov    %bl,(%eax)
41a3ab:	eb 11                	jmp    0x41a3be
41a3ad:	8d 45 e0             	lea    -0x20(%ebp),%eax
41a3b0:	50                   	push   %eax
41a3b1:	53                   	push   %ebx
41a3b2:	e8 a1 55 00 00       	call   0x41f958
41a3b7:	59                   	pop    %ecx
41a3b8:	59                   	pop    %ecx
41a3b9:	83 f8 ff             	cmp    $0xffffffff,%eax
41a3bc:	74 05                	je     0x41a3c3
41a3be:	8b 45 14             	mov    0x14(%ebp),%eax
41a3c1:	eb 0f                	jmp    0x41a3d2
41a3c3:	33 c0                	xor    %eax,%eax
41a3c5:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
41a3c8:	66 89 44 7e fe       	mov    %ax,-0x2(%esi,%edi,2)
41a3cd:	0f 9d c0             	setge  %al
41a3d0:	48                   	dec    %eax
41a3d1:	48                   	dec    %eax
41a3d2:	5f                   	pop    %edi
41a3d3:	5e                   	pop    %esi
41a3d4:	5b                   	pop    %ebx
41a3d5:	c9                   	leave
41a3d6:	c3                   	ret
41a3d7:	8b ff                	mov    %edi,%edi
41a3d9:	55                   	push   %ebp
41a3da:	8b ec                	mov    %esp,%ebp
41a3dc:	ff 75 18             	push   0x18(%ebp)
41a3df:	ff 75 14             	push   0x14(%ebp)
41a3e2:	ff 75 10             	push   0x10(%ebp)
41a3e5:	ff 75 0c             	push   0xc(%ebp)
41a3e8:	ff 75 08             	push   0x8(%ebp)
41a3eb:	68 c1 fc 41 00       	push   $0x41fcc1
41a3f0:	e8 ea fe ff ff       	call   0x41a2df
41a3f5:	83 c4 18             	add    $0x18,%esp
41a3f8:	85 c0                	test   %eax,%eax
41a3fa:	7d 03                	jge    0x41a3ff
41a3fc:	83 c8 ff             	or     $0xffffffff,%eax
41a3ff:	5d                   	pop    %ebp
41a400:	c3                   	ret
41a401:	8b ff                	mov    %edi,%edi
41a403:	55                   	push   %ebp
41a404:	8b ec                	mov    %esp,%ebp
41a406:	8b 55 08             	mov    0x8(%ebp),%edx
41a409:	56                   	push   %esi
41a40a:	8b 75 0c             	mov    0xc(%ebp),%esi
41a40d:	57                   	push   %edi
41a40e:	eb 09                	jmp    0x41a419
41a410:	66 85 c9             	test   %cx,%cx
41a413:	74 11                	je     0x41a426
41a415:	42                   	inc    %edx
41a416:	42                   	inc    %edx
41a417:	46                   	inc    %esi
41a418:	46                   	inc    %esi
41a419:	0f b7 0e             	movzwl (%esi),%ecx
41a41c:	0f b7 02             	movzwl (%edx),%eax
41a41f:	0f b7 f9             	movzwl %cx,%edi
41a422:	2b c7                	sub    %edi,%eax
41a424:	74 ea                	je     0x41a410
41a426:	5f                   	pop    %edi
41a427:	5e                   	pop    %esi
41a428:	85 c0                	test   %eax,%eax
41a42a:	7d 05                	jge    0x41a431
41a42c:	83 c8 ff             	or     $0xffffffff,%eax
41a42f:	5d                   	pop    %ebp
41a430:	c3                   	ret
41a431:	7e 03                	jle    0x41a436
41a433:	33 c0                	xor    %eax,%eax
41a435:	40                   	inc    %eax
41a436:	5d                   	pop    %ebp
41a437:	c3                   	ret
41a438:	cc                   	int3
41a439:	cc                   	int3
41a43a:	cc                   	int3
41a43b:	cc                   	int3
41a43c:	cc                   	int3
41a43d:	cc                   	int3
41a43e:	cc                   	int3
41a43f:	cc                   	int3
41a440:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a444:	f7 c1 03 00 00 00    	test   $0x3,%ecx
41a44a:	74 24                	je     0x41a470
41a44c:	8a 01                	mov    (%ecx),%al
41a44e:	83 c1 01             	add    $0x1,%ecx
41a451:	84 c0                	test   %al,%al
41a453:	74 4e                	je     0x41a4a3
41a455:	f7 c1 03 00 00 00    	test   $0x3,%ecx
41a45b:	75 ef                	jne    0x41a44c
41a45d:	05 00 00 00 00       	add    $0x0,%eax
41a462:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41a469:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41a470:	8b 01                	mov    (%ecx),%eax
41a472:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
41a477:	03 d0                	add    %eax,%edx
41a479:	83 f0 ff             	xor    $0xffffffff,%eax
41a47c:	33 c2                	xor    %edx,%eax
41a47e:	83 c1 04             	add    $0x4,%ecx
41a481:	a9 00 01 01 81       	test   $0x81010100,%eax
41a486:	74 e8                	je     0x41a470
41a488:	8b 41 fc             	mov    -0x4(%ecx),%eax
41a48b:	84 c0                	test   %al,%al
41a48d:	74 32                	je     0x41a4c1
41a48f:	84 e4                	test   %ah,%ah
41a491:	74 24                	je     0x41a4b7
41a493:	a9 00 00 ff 00       	test   $0xff0000,%eax
41a498:	74 13                	je     0x41a4ad
41a49a:	a9 00 00 00 ff       	test   $0xff000000,%eax
41a49f:	74 02                	je     0x41a4a3
41a4a1:	eb cd                	jmp    0x41a470
41a4a3:	8d 41 ff             	lea    -0x1(%ecx),%eax
41a4a6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4aa:	2b c1                	sub    %ecx,%eax
41a4ac:	c3                   	ret
41a4ad:	8d 41 fe             	lea    -0x2(%ecx),%eax
41a4b0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4b4:	2b c1                	sub    %ecx,%eax
41a4b6:	c3                   	ret
41a4b7:	8d 41 fd             	lea    -0x3(%ecx),%eax
41a4ba:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4be:	2b c1                	sub    %ecx,%eax
41a4c0:	c3                   	ret
41a4c1:	8d 41 fc             	lea    -0x4(%ecx),%eax
41a4c4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4c8:	2b c1                	sub    %ecx,%eax
41a4ca:	c3                   	ret
41a4cb:	cc                   	int3
41a4cc:	cc                   	int3
41a4cd:	cc                   	int3
41a4ce:	cc                   	int3
41a4cf:	cc                   	int3
41a4d0:	51                   	push   %ecx
41a4d1:	8d 4c 24 04          	lea    0x4(%esp),%ecx
41a4d5:	2b c8                	sub    %eax,%ecx
41a4d7:	1b c0                	sbb    %eax,%eax
41a4d9:	f7 d0                	not    %eax
41a4db:	23 c8                	and    %eax,%ecx
41a4dd:	8b c4                	mov    %esp,%eax
41a4df:	25 00 f0 ff ff       	and    $0xfffff000,%eax
41a4e4:	3b c8                	cmp    %eax,%ecx
41a4e6:	72 0a                	jb     0x41a4f2
41a4e8:	8b c1                	mov    %ecx,%eax
41a4ea:	59                   	pop    %ecx
41a4eb:	94                   	xchg   %eax,%esp
41a4ec:	8b 00                	mov    (%eax),%eax
41a4ee:	89 04 24             	mov    %eax,(%esp)
41a4f1:	c3                   	ret
41a4f2:	2d 00 10 00 00       	sub    $0x1000,%eax
41a4f7:	85 00                	test   %eax,(%eax)
41a4f9:	eb e9                	jmp    0x41a4e4
41a4fb:	cc                   	int3
41a4fc:	cc                   	int3
41a4fd:	cc                   	int3
41a4fe:	cc                   	int3
41a4ff:	cc                   	int3
41a500:	57                   	push   %edi
41a501:	56                   	push   %esi
41a502:	53                   	push   %ebx
41a503:	33 ff                	xor    %edi,%edi
41a505:	8b 44 24 14          	mov    0x14(%esp),%eax
41a509:	0b c0                	or     %eax,%eax
41a50b:	7d 14                	jge    0x41a521
41a50d:	47                   	inc    %edi
41a50e:	8b 54 24 10          	mov    0x10(%esp),%edx
41a512:	f7 d8                	neg    %eax
41a514:	f7 da                	neg    %edx
41a516:	83 d8 00             	sbb    $0x0,%eax
41a519:	89 44 24 14          	mov    %eax,0x14(%esp)
41a51d:	89 54 24 10          	mov    %edx,0x10(%esp)
41a521:	8b 44 24 1c          	mov    0x1c(%esp),%eax
41a525:	0b c0                	or     %eax,%eax
41a527:	7d 14                	jge    0x41a53d
41a529:	47                   	inc    %edi
41a52a:	8b 54 24 18          	mov    0x18(%esp),%edx
41a52e:	f7 d8                	neg    %eax
41a530:	f7 da                	neg    %edx
41a532:	83 d8 00             	sbb    $0x0,%eax
41a535:	89 44 24 1c          	mov    %eax,0x1c(%esp)
41a539:	89 54 24 18          	mov    %edx,0x18(%esp)
41a53d:	0b c0                	or     %eax,%eax
41a53f:	75 18                	jne    0x41a559
41a541:	8b 4c 24 18          	mov    0x18(%esp),%ecx
41a545:	8b 44 24 14          	mov    0x14(%esp),%eax
41a549:	33 d2                	xor    %edx,%edx
41a54b:	f7 f1                	div    %ecx
41a54d:	8b d8                	mov    %eax,%ebx
41a54f:	8b 44 24 10          	mov    0x10(%esp),%eax
41a553:	f7 f1                	div    %ecx
41a555:	8b d3                	mov    %ebx,%edx
41a557:	eb 41                	jmp    0x41a59a
41a559:	8b d8                	mov    %eax,%ebx
41a55b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
41a55f:	8b 54 24 14          	mov    0x14(%esp),%edx
41a563:	8b 44 24 10          	mov    0x10(%esp),%eax
41a567:	d1 eb                	shr    $1,%ebx
41a569:	d1 d9                	rcr    $1,%ecx
41a56b:	d1 ea                	shr    $1,%edx
41a56d:	d1 d8                	rcr    $1,%eax
41a56f:	0b db                	or     %ebx,%ebx
41a571:	75 f4                	jne    0x41a567
41a573:	f7 f1                	div    %ecx
41a575:	8b f0                	mov    %eax,%esi
41a577:	f7 64 24 1c          	mull   0x1c(%esp)
41a57b:	8b c8                	mov    %eax,%ecx
41a57d:	8b 44 24 18          	mov    0x18(%esp),%eax
41a581:	f7 e6                	mul    %esi
41a583:	03 d1                	add    %ecx,%edx
41a585:	72 0e                	jb     0x41a595
41a587:	3b 54 24 14          	cmp    0x14(%esp),%edx
41a58b:	77 08                	ja     0x41a595
41a58d:	72 07                	jb     0x41a596
41a58f:	3b 44 24 10          	cmp    0x10(%esp),%eax
41a593:	76 01                	jbe    0x41a596
41a595:	4e                   	dec    %esi
41a596:	33 d2                	xor    %edx,%edx
41a598:	8b c6                	mov    %esi,%eax
41a59a:	4f                   	dec    %edi
41a59b:	75 07                	jne    0x41a5a4
41a59d:	f7 da                	neg    %edx
41a59f:	f7 d8                	neg    %eax
41a5a1:	83 da 00             	sbb    $0x0,%edx
41a5a4:	5b                   	pop    %ebx
41a5a5:	5e                   	pop    %esi
41a5a6:	5f                   	pop    %edi
41a5a7:	c2 10 00             	ret    $0x10
41a5aa:	cc                   	int3
41a5ab:	cc                   	int3
41a5ac:	cc                   	int3
41a5ad:	cc                   	int3
41a5ae:	cc                   	int3
41a5af:	cc                   	int3
41a5b0:	8b 44 24 08          	mov    0x8(%esp),%eax
41a5b4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41a5b8:	0b c8                	or     %eax,%ecx
41a5ba:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
41a5be:	75 09                	jne    0x41a5c9
41a5c0:	8b 44 24 04          	mov    0x4(%esp),%eax
41a5c4:	f7 e1                	mul    %ecx
41a5c6:	c2 10 00             	ret    $0x10
41a5c9:	53                   	push   %ebx
41a5ca:	f7 e1                	mul    %ecx
41a5cc:	8b d8                	mov    %eax,%ebx
41a5ce:	8b 44 24 08          	mov    0x8(%esp),%eax
41a5d2:	f7 64 24 14          	mull   0x14(%esp)
41a5d6:	03 d8                	add    %eax,%ebx
41a5d8:	8b 44 24 08          	mov    0x8(%esp),%eax
41a5dc:	f7 e1                	mul    %ecx
41a5de:	03 d3                	add    %ebx,%edx
41a5e0:	5b                   	pop    %ebx
41a5e1:	c2 10 00             	ret    $0x10
41a5e4:	8b ff                	mov    %edi,%edi
41a5e6:	55                   	push   %ebp
41a5e7:	8b ec                	mov    %esp,%ebp
41a5e9:	56                   	push   %esi
41a5ea:	57                   	push   %edi
41a5eb:	8b 7d 10             	mov    0x10(%ebp),%edi
41a5ee:	8b c7                	mov    %edi,%eax
41a5f0:	83 e8 00             	sub    $0x0,%eax
41a5f3:	0f 84 e5 15 00 00    	je     0x41bbde
41a5f9:	48                   	dec    %eax
41a5fa:	0f 84 cd 15 00 00    	je     0x41bbcd
41a600:	48                   	dec    %eax
41a601:	0f 84 98 15 00 00    	je     0x41bb9f
41a607:	48                   	dec    %eax
41a608:	0f 84 49 15 00 00    	je     0x41bb57
41a60e:	48                   	dec    %eax
41a60f:	0f 84 b9 14 00 00    	je     0x41bace
41a615:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41a618:	8b 45 08             	mov    0x8(%ebp),%eax
41a61b:	53                   	push   %ebx
41a61c:	6a 20                	push   $0x20
41a61e:	5a                   	pop    %edx
41a61f:	e9 72 04 00 00       	jmp    0x41aa96
41a624:	8b 30                	mov    (%eax),%esi