41a3db:	f6 41 40 02          	testb  $0x2,0x40(%ecx)
41a3df:	75 21                	jne    0x41a402
41a3e1:	8b 41 30             	mov    0x30(%ecx),%eax
41a3e4:	ff 00                	incl   (%eax)
41a3e6:	8b 41 20             	mov    0x20(%ecx),%eax
41a3e9:	83 00 fe             	addl   $0xfffffffe,(%eax)
41a3ec:	66 3b fa             	cmp    %dx,%di
41a3ef:	74 0d                	je     0x41a3fe
41a3f1:	8b 41 20             	mov    0x20(%ecx),%eax
41a3f4:	8b 00                	mov    (%eax),%eax
41a3f6:	66 89 10             	mov    %dx,(%eax)
41a3f9:	0f b7 c2             	movzwl %dx,%eax
41a3fc:	eb 07                	jmp    0x41a405
41a3fe:	33 c0                	xor    %eax,%eax
41a400:	eb 03                	jmp    0x41a405
41a402:	66 8b c7             	mov    %di,%ax
41a405:	5f                   	pop    %edi
41a406:	5e                   	pop    %esi
41a407:	5d                   	pop    %ebp
41a408:	c2 04 00             	ret    $0x4
41a40b:	cc                   	int3
41a40c:	cc                   	int3
41a40d:	cc                   	int3
41a40e:	cc                   	int3
41a40f:	cc                   	int3
41a410:	8b ff                	mov    %edi,%edi
41a412:	55                   	push   %ebp
41a413:	8b ec                	mov    %esp,%ebp
41a415:	51                   	push   %ecx
41a416:	53                   	push   %ebx
41a417:	56                   	push   %esi
41a418:	57                   	push   %edi
41a419:	8b f9                	mov    %ecx,%edi
41a41b:	f6 47 40 08          	testb  $0x8,0x40(%edi)
41a41f:	74 23                	je     0x41a444
41a421:	8b 77 24             	mov    0x24(%edi),%esi
41a424:	8b 0e                	mov    (%esi),%ecx
41a426:	85 c9                	test   %ecx,%ecx
41a428:	74 1a                	je     0x41a444
41a42a:	8b 57 3c             	mov    0x3c(%edi),%edx
41a42d:	3b ca                	cmp    %edx,%ecx
41a42f:	73 13                	jae    0x41a444
41a431:	8b 47 34             	mov    0x34(%edi),%eax
41a434:	8b 00                	mov    (%eax),%eax
41a436:	89 16                	mov    %edx,(%esi)
41a438:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41a43b:	8b 47 34             	mov    0x34(%edi),%eax
41a43e:	2b ca                	sub    %edx,%ecx
41a440:	d1 f9                	sar    $1,%ecx
41a442:	89 08                	mov    %ecx,(%eax)
41a444:	66 8b 5d 08          	mov    0x8(%ebp),%bx
41a448:	ba ff ff 00 00       	mov    $0xffff,%edx
41a44d:	66 3b d3             	cmp    %bx,%dx
41a450:	75 07                	jne    0x41a459
41a452:	33 c0                	xor    %eax,%eax
41a454:	e9 9c 01 00 00       	jmp    0x41a5f5
41a459:	8b 47 24             	mov    0x24(%edi),%eax
41a45c:	8b 08                	mov    (%eax),%ecx
41a45e:	85 c9                	test   %ecx,%ecx
41a460:	74 2b                	je     0x41a48d
41a462:	8b 57 34             	mov    0x34(%edi),%edx
41a465:	8b 32                	mov    (%edx),%esi
41a467:	8d 04 71             	lea    (%ecx,%esi,2),%eax
41a46a:	3b c8                	cmp    %eax,%ecx
41a46c:	73 1a                	jae    0x41a488
41a46e:	8d 4e ff             	lea    -0x1(%esi),%ecx
41a471:	66 8b c3             	mov    %bx,%ax
41a474:	89 0a                	mov    %ecx,(%edx)
41a476:	8b 57 24             	mov    0x24(%edi),%edx
41a479:	8b 32                	mov    (%edx),%esi
41a47b:	8d 4e 02             	lea    0x2(%esi),%ecx
41a47e:	89 0a                	mov    %ecx,(%edx)
41a480:	66 89 1e             	mov    %bx,(%esi)
41a483:	e9 6d 01 00 00       	jmp    0x41a5f5
41a488:	ba ff ff 00 00       	mov    $0xffff,%edx
41a48d:	f6 47 40 02          	testb  $0x2,0x40(%edi)
41a491:	74 08                	je     0x41a49b
41a493:	66 8b c2             	mov    %dx,%ax
41a496:	e9 5a 01 00 00       	jmp    0x41a5f5
41a49b:	85 c9                	test   %ecx,%ecx
41a49d:	75 04                	jne    0x41a4a3
41a49f:	33 f6                	xor    %esi,%esi
41a4a1:	eb 10                	jmp    0x41a4b3
41a4a3:	8b 47 34             	mov    0x34(%edi),%eax
41a4a6:	8b 30                	mov    (%eax),%esi
41a4a8:	8b 47 10             	mov    0x10(%edi),%eax
41a4ab:	03 f6                	add    %esi,%esi
41a4ad:	2b 30                	sub    (%eax),%esi
41a4af:	03 f1                	add    %ecx,%esi
41a4b1:	d1 fe                	sar    $1,%esi
41a4b3:	8b c6                	mov    %esi,%eax
41a4b5:	8b d6                	mov    %esi,%edx
41a4b7:	6a 20                	push   $0x20
41a4b9:	d1 e8                	shr    $1,%eax
41a4bb:	59                   	pop    %ecx
41a4bc:	89 55 fc             	mov    %edx,-0x4(%ebp)
41a4bf:	3b c1                	cmp    %ecx,%eax
41a4c1:	72 02                	jb     0x41a4c5
41a4c3:	8b c8                	mov    %eax,%ecx
41a4c5:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41a4ca:	2b c1                	sub    %ecx,%eax
41a4cc:	3b c6                	cmp    %esi,%eax
41a4ce:	73 04                	jae    0x41a4d4
41a4d0:	d1 e9                	shr    $1,%ecx
41a4d2:	75 f1                	jne    0x41a4c5
41a4d4:	33 db                	xor    %ebx,%ebx
41a4d6:	85 c9                	test   %ecx,%ecx
41a4d8:	74 11                	je     0x41a4eb
41a4da:	8d 04 31             	lea    (%ecx,%esi,1),%eax
41a4dd:	50                   	push   %eax
41a4de:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a4e1:	e8 8c 20 00 00       	call   0x41c572
41a4e6:	8b 55 fc             	mov    -0x4(%ebp),%edx
41a4e9:	8b d8                	mov    %eax,%ebx
41a4eb:	85 f6                	test   %esi,%esi
41a4ed:	74 17                	je     0x41a506
41a4ef:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
41a4f2:	51                   	push   %ecx
41a4f3:	8b 4f 10             	mov    0x10(%edi),%ecx
41a4f6:	8d 04 12             	lea    (%edx,%edx,1),%eax
41a4f9:	ff 31                	push   (%ecx)
41a4fb:	50                   	push   %eax
41a4fc:	53                   	push   %ebx
41a4fd:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41a503:	83 c4 10             	add    $0x10,%esp
41a506:	8b 47 40             	mov    0x40(%edi),%eax
41a509:	a8 01                	test   $0x1,%al
41a50b:	74 0f                	je     0x41a51c
41a50d:	8b 47 10             	mov    0x10(%edi),%eax
41a510:	ff 30                	push   (%eax)
41a512:	ff 15 10 74 4a 00    	call   *0x4a7410
41a518:	8b 47 40             	mov    0x40(%edi),%eax
41a51b:	59                   	pop    %ecx
41a51c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41a51f:	33 d2                	xor    %edx,%edx
41a521:	42                   	inc    %edx
41a522:	0b c2                	or     %edx,%eax
41a524:	89 47 40             	mov    %eax,0x40(%edi)
41a527:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
41a52a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a52d:	85 f6                	test   %esi,%esi
41a52f:	75 2e                	jne    0x41a55f
41a531:	8b 47 14             	mov    0x14(%edi),%eax
41a534:	89 5f 3c             	mov    %ebx,0x3c(%edi)
41a537:	89 18                	mov    %ebx,(%eax)
41a539:	8b 47 24             	mov    0x24(%edi),%eax
41a53c:	89 18                	mov    %ebx,(%eax)
41a53e:	8b 47 34             	mov    0x34(%edi),%eax
41a541:	89 08                	mov    %ecx,(%eax)
41a543:	8b 47 10             	mov    0x10(%edi),%eax
41a546:	8b 4f 40             	mov    0x40(%edi),%ecx
41a549:	89 18                	mov    %ebx,(%eax)
41a54b:	8b 47 20             	mov    0x20(%edi),%eax
41a54e:	83 e1 04             	and    $0x4,%ecx
41a551:	75 59                	jne    0x41a5ac
41a553:	89 18                	mov    %ebx,(%eax)
41a555:	8b 47 30             	mov    0x30(%edi),%eax
41a558:	89 10                	mov    %edx,(%eax)
41a55a:	e9 80 00 00 00       	jmp    0x41a5df
41a55f:	8b 4f 10             	mov    0x10(%edi),%ecx
41a562:	8b 47 3c             	mov    0x3c(%edi),%eax
41a565:	2b 01                	sub    (%ecx),%eax
41a567:	d1 f8                	sar    $1,%eax
41a569:	8d 04 43             	lea    (%ebx,%eax,2),%eax
41a56c:	89 47 3c             	mov    %eax,0x3c(%edi)
41a56f:	8b 11                	mov    (%ecx),%edx
41a571:	8b 47 24             	mov    0x24(%edi),%eax
41a574:	8b 4f 14             	mov    0x14(%edi),%ecx
41a577:	8b 00                	mov    (%eax),%eax
41a579:	2b c2                	sub    %edx,%eax
41a57b:	d1 f8                	sar    $1,%eax
41a57d:	8d 34 43             	lea    (%ebx,%eax,2),%esi
41a580:	8b 01                	mov    (%ecx),%eax
41a582:	2b c2                	sub    %edx,%eax
41a584:	d1 f8                	sar    $1,%eax
41a586:	8d 04 43             	lea    (%ebx,%eax,2),%eax
41a589:	89 01                	mov    %eax,(%ecx)
41a58b:	8b 47 24             	mov    0x24(%edi),%eax
41a58e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41a591:	2b ce                	sub    %esi,%ecx
41a593:	03 cb                	add    %ebx,%ecx
41a595:	89 30                	mov    %esi,(%eax)
41a597:	8b 47 34             	mov    0x34(%edi),%eax
41a59a:	d1 f9                	sar    $1,%ecx
41a59c:	89 08                	mov    %ecx,(%eax)
41a59e:	f6 47 40 04          	testb  $0x4,0x40(%edi)
41a5a2:	74 14                	je     0x41a5b8
41a5a4:	8b 47 10             	mov    0x10(%edi),%eax
41a5a7:	89 18                	mov    %ebx,(%eax)
41a5a9:	8b 47 20             	mov    0x20(%edi),%eax
41a5ac:	83 20 00             	andl   $0x0,(%eax)
41a5af:	8b 47 30             	mov    0x30(%edi),%eax
41a5b2:	d1 fb                	sar    $1,%ebx
41a5b4:	89 18                	mov    %ebx,(%eax)
41a5b6:	eb 27                	jmp    0x41a5df
41a5b8:	8b 47 24             	mov    0x24(%edi),%eax
41a5bb:	8b 57 10             	mov    0x10(%edi),%edx
41a5be:	8b 30                	mov    (%eax),%esi
41a5c0:	8b 47 20             	mov    0x20(%edi),%eax
41a5c3:	8b 00                	mov    (%eax),%eax
41a5c5:	2b 02                	sub    (%edx),%eax
41a5c7:	d1 f8                	sar    $1,%eax
41a5c9:	89 1a                	mov    %ebx,(%edx)
41a5cb:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
41a5ce:	8b 47 20             	mov    0x20(%edi),%eax
41a5d1:	2b f1                	sub    %ecx,%esi
41a5d3:	83 c6 02             	add    $0x2,%esi
41a5d6:	d1 fe                	sar    $1,%esi
41a5d8:	89 08                	mov    %ecx,(%eax)
41a5da:	8b 47 30             	mov    0x30(%edi),%eax
41a5dd:	89 30                	mov    %esi,(%eax)
41a5df:	8b 47 34             	mov    0x34(%edi),%eax
41a5e2:	ff 08                	decl   (%eax)
41a5e4:	8b 4f 24             	mov    0x24(%edi),%ecx
41a5e7:	8b 11                	mov    (%ecx),%edx
41a5e9:	8d 42 02             	lea    0x2(%edx),%eax
41a5ec:	89 01                	mov    %eax,(%ecx)
41a5ee:	66 8b 45 08          	mov    0x8(%ebp),%ax
41a5f2:	66 89 02             	mov    %ax,(%edx)
41a5f5:	5f                   	pop    %edi
41a5f6:	5e                   	pop    %esi
41a5f7:	5b                   	pop    %ebx
41a5f8:	c9                   	leave
41a5f9:	c2 04 00             	ret    $0x4
41a5fc:	8b ff                	mov    %edi,%edi
41a5fe:	56                   	push   %esi
41a5ff:	8b f1                	mov    %ecx,%esi
41a601:	f6 46 40 01          	testb  $0x1,0x40(%esi)
41a605:	c7 06 84 11 40 00    	movl   $0x401184,(%esi)
41a60b:	74 0c                	je     0x41a619
41a60d:	8b 46 10             	mov    0x10(%esi),%eax
41a610:	ff 30                	push   (%eax)
41a612:	ff 15 10 74 4a 00    	call   *0x4a7410
41a618:	59                   	pop    %ecx
41a619:	8b 46 10             	mov    0x10(%esi),%eax
41a61c:	33 c9                	xor    %ecx,%ecx
41a61e:	89 08                	mov    %ecx,(%eax)
41a620:	8b 46 20             	mov    0x20(%esi),%eax
41a623:	89 08                	mov    %ecx,(%eax)
41a625:	8b 46 30             	mov    0x30(%esi),%eax
41a628:	89 08                	mov    %ecx,(%eax)
41a62a:	8b 46 14             	mov    0x14(%esi),%eax
41a62d:	89 08                	mov    %ecx,(%eax)
41a62f:	8b 46 24             	mov    0x24(%esi),%eax
41a632:	89 08                	mov    %ecx,(%eax)
41a634:	8b 46 34             	mov    0x34(%esi),%eax
41a637:	89 08                	mov    %ecx,(%eax)
41a639:	83 66 40 fe          	andl   $0xfffffffe,0x40(%esi)
41a63d:	89 4e 3c             	mov    %ecx,0x3c(%esi)
41a640:	8b ce                	mov    %esi,%ecx
41a642:	5e                   	pop    %esi
41a643:	e9 53 16 00 00       	jmp    0x41bc9b
41a648:	cc                   	int3
41a649:	cc                   	int3
41a64a:	cc                   	int3
41a64b:	cc                   	int3
41a64c:	cc                   	int3
41a64d:	cc                   	int3
41a64e:	cc                   	int3
41a64f:	cc                   	int3
41a650:	8b ff                	mov    %edi,%edi
41a652:	55                   	push   %ebp
41a653:	8b ec                	mov    %esp,%ebp
41a655:	6a ff                	push   $0xffffffff
41a657:	68 20 12 49 00       	push   $0x491220
41a65c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41a662:	50                   	push   %eax
41a663:	56                   	push   %esi
41a664:	57                   	push   %edi
41a665:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
41a66a:	33 c5                	xor    %ebp,%eax
41a66c:	50                   	push   %eax
41a66d:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a670:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
41a676:	8b f1                	mov    %ecx,%esi
41a678:	8d 7e b4             	lea    -0x4c(%esi),%edi
41a67b:	e8 c9 f9 ff ff       	call   0x41a049
41a680:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41a684:	56                   	push   %esi
41a685:	c7 06 04 12 40 00    	movl   $0x401204,(%esi)
41a68b:	e8 69 34 07 00       	call   0x48daf9
41a690:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41a694:	59                   	pop    %ecx
41a695:	74 08                	je     0x41a69f
41a697:	57                   	push   %edi
41a698:	ff 15 10 74 4a 00    	call   *0x4a7410
41a69e:	59                   	pop    %ecx
41a69f:	8b c7                	mov    %edi,%eax
41a6a1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41a6a4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41a6ab:	59                   	pop    %ecx
41a6ac:	5f                   	pop    %edi
41a6ad:	5e                   	pop    %esi
41a6ae:	c9                   	leave
41a6af:	c2 04 00             	ret    $0x4
41a6b2:	cc                   	int3
41a6b3:	cc                   	int3
41a6b4:	cc                   	int3
41a6b5:	cc                   	int3
41a6b6:	cc                   	int3
41a6b7:	cc                   	int3
41a6b8:	cc                   	int3
41a6b9:	cc                   	int3
41a6ba:	cc                   	int3
41a6bb:	cc                   	int3
41a6bc:	cc                   	int3
41a6bd:	cc                   	int3
41a6be:	cc                   	int3
41a6bf:	cc                   	int3
41a6c0:	8b ff                	mov    %edi,%edi
41a6c2:	55                   	push   %ebp
41a6c3:	8b ec                	mov    %esp,%ebp
41a6c5:	6a ff                	push   $0xffffffff
41a6c7:	68 20 12 49 00       	push   $0x491220
41a6cc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41a6d2:	50                   	push   %eax
41a6d3:	56                   	push   %esi
41a6d4:	57                   	push   %edi
41a6d5:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
41a6da:	33 c5                	xor    %ebp,%eax
41a6dc:	50                   	push   %eax
41a6dd:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a6e0:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
41a6e6:	8b f1                	mov    %ecx,%esi
41a6e8:	8d 7e b0             	lea    -0x50(%esi),%edi
41a6eb:	e8 84 f9 ff ff       	call   0x41a074
41a6f0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41a6f4:	56                   	push   %esi
41a6f5:	c7 06 04 12 40 00    	movl   $0x401204,(%esi)
41a6fb:	e8 f9 33 07 00       	call   0x48daf9
41a700:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41a704:	59                   	pop    %ecx
41a705:	74 08                	je     0x41a70f
41a707:	57                   	push   %edi
41a708:	ff 15 10 74 4a 00    	call   *0x4a7410
41a70e:	59                   	pop    %ecx
41a70f:	8b c7                	mov    %edi,%eax
41a711:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41a714:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41a71b:	59                   	pop    %ecx
41a71c:	5f                   	pop    %edi
41a71d:	5e                   	pop    %esi
41a71e:	c9                   	leave
41a71f:	c2 04 00             	ret    $0x4
41a722:	cc                   	int3
41a723:	cc                   	int3
41a724:	cc                   	int3
41a725:	cc                   	int3
41a726:	cc                   	int3
41a727:	cc                   	int3