4165e1:	85 c9                	test   %ecx,%ecx
4165e3:	74 06                	je     0x4165eb
4165e5:	8b 01                	mov    (%ecx),%eax
4165e7:	6a 01                	push   $0x1
4165e9:	ff 10                	call   *(%eax)
4165eb:	33 f6                	xor    %esi,%esi
4165ed:	56                   	push   %esi
4165ee:	56                   	push   %esi
4165ef:	e8 ce db 02 00       	call   0x4441c2
4165f4:	cc                   	int3
4165f5:	6a 10                	push   $0x10
4165f7:	b8 98 f1 48 00       	mov    $0x48f198,%eax
4165fc:	e8 b4 94 02 00       	call   0x43fab5
416601:	89 4d ec             	mov    %ecx,-0x14(%ebp)
416604:	6a 18                	push   $0x18
416606:	e8 98 8c 02 00       	call   0x43f2a3
41660b:	59                   	pop    %ecx
41660c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41660f:	33 f6                	xor    %esi,%esi
416611:	89 75 fc             	mov    %esi,-0x4(%ebp)
416614:	85 c0                	test   %eax,%eax
416616:	74 17                	je     0x41662f
416618:	56                   	push   %esi
416619:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
41661d:	83 c1 0a             	add    $0xa,%ecx
416620:	51                   	push   %ecx
416621:	8b c8                	mov    %eax,%ecx
416623:	e8 bd 62 ff ff       	call   0x40c8e5
416628:	8b d8                	mov    %eax,%ebx
41662a:	89 5d 08             	mov    %ebx,0x8(%ebp)
41662d:	eb 05                	jmp    0x416634
41662f:	8b de                	mov    %esi,%ebx
416631:	89 75 08             	mov    %esi,0x8(%ebp)
416634:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416638:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
41663f:	6a 14                	push   $0x14
416641:	e8 5d 8c 02 00       	call   0x43f2a3
416646:	59                   	pop    %ecx
416647:	8b f8                	mov    %eax,%edi
416649:	89 7d e8             	mov    %edi,-0x18(%ebp)
41664c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
416650:	85 ff                	test   %edi,%edi
416652:	74 18                	je     0x41666c
416654:	c7 07 7c 4b 49 00    	movl   $0x494b7c,(%edi)
41665a:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
416661:	89 77 08             	mov    %esi,0x8(%edi)
416664:	89 77 0c             	mov    %esi,0xc(%edi)
416667:	89 77 10             	mov    %esi,0x10(%edi)
41666a:	eb 02                	jmp    0x41666e
41666c:	8b fe                	mov    %esi,%edi
41666e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
416672:	89 7d e4             	mov    %edi,-0x1c(%ebp)
416675:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416679:	53                   	push   %ebx
41667a:	8b 75 ec             	mov    -0x14(%ebp),%esi
41667d:	8b ce                	mov    %esi,%ecx
41667f:	e8 02 50 00 00       	call   0x41b686
416684:	89 7b 14             	mov    %edi,0x14(%ebx)
416687:	89 5f 10             	mov    %ebx,0x10(%edi)
41668a:	89 7e 04             	mov    %edi,0x4(%esi)
41668d:	8b c3                	mov    %ebx,%eax
41668f:	e8 7f 93 02 00       	call   0x43fa13
416694:	c2 04 00             	ret    $0x4
416697:	8b 4d 08             	mov    0x8(%ebp),%ecx
41669a:	85 c9                	test   %ecx,%ecx
41669c:	74 06                	je     0x4166a4
41669e:	8b 01                	mov    (%ecx),%eax
4166a0:	6a 01                	push   $0x1
4166a2:	ff 10                	call   *(%eax)
4166a4:	33 f6                	xor    %esi,%esi
4166a6:	56                   	push   %esi
4166a7:	56                   	push   %esi
4166a8:	e8 15 db 02 00       	call   0x4441c2
4166ad:	cc                   	int3
4166ae:	6a 04                	push   $0x4
4166b0:	b8 c0 f1 48 00       	mov    $0x48f1c0,%eax
4166b5:	e8 90 93 02 00       	call   0x43fa4a
4166ba:	8b f1                	mov    %ecx,%esi
4166bc:	6a 18                	push   $0x18
4166be:	e8 e0 8b 02 00       	call   0x43f2a3
4166c3:	59                   	pop    %ecx
4166c4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4166c7:	33 d2                	xor    %edx,%edx
4166c9:	89 55 fc             	mov    %edx,-0x4(%ebp)
4166cc:	85 c0                	test   %eax,%eax
4166ce:	74 0c                	je     0x4166dc
4166d0:	ff 75 08             	push   0x8(%ebp)
4166d3:	8b c8                	mov    %eax,%ecx
4166d5:	e8 92 62 ff ff       	call   0x40c96c
4166da:	8b d0                	mov    %eax,%edx
4166dc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4166e0:	8b ce                	mov    %esi,%ecx
4166e2:	52                   	push   %edx
4166e3:	e8 69 4f 00 00       	call   0x41b651
4166e8:	e8 26 93 02 00       	call   0x43fa13
4166ed:	c2 04 00             	ret    $0x4
4166f0:	6a 04                	push   $0x4
4166f2:	b8 e8 f1 48 00       	mov    $0x48f1e8,%eax
4166f7:	e8 4e 93 02 00       	call   0x43fa4a
4166fc:	8b f1                	mov    %ecx,%esi
4166fe:	6a 18                	push   $0x18
416700:	e8 9e 8b 02 00       	call   0x43f2a3
416705:	59                   	pop    %ecx
416706:	89 45 f0             	mov    %eax,-0x10(%ebp)
416709:	33 d2                	xor    %edx,%edx
41670b:	89 55 fc             	mov    %edx,-0x4(%ebp)
41670e:	85 c0                	test   %eax,%eax
416710:	74 0c                	je     0x41671e
416712:	ff 75 08             	push   0x8(%ebp)
416715:	8b c8                	mov    %eax,%ecx
416717:	e8 50 62 ff ff       	call   0x40c96c
41671c:	8b d0                	mov    %eax,%edx
41671e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416722:	8b ce                	mov    %esi,%ecx
416724:	52                   	push   %edx
416725:	e8 5c 4f 00 00       	call   0x41b686
41672a:	e8 e4 92 02 00       	call   0x43fa13
41672f:	c2 04 00             	ret    $0x4
416732:	6a 04                	push   $0x4
416734:	b8 1d f2 48 00       	mov    $0x48f21d,%eax
416739:	e8 0c 93 02 00       	call   0x43fa4a
41673e:	8b d9                	mov    %ecx,%ebx
416740:	6a 14                	push   $0x14
416742:	e8 5c 8b 02 00       	call   0x43f2a3
416747:	59                   	pop    %ecx
416748:	89 45 f0             	mov    %eax,-0x10(%ebp)
41674b:	33 f6                	xor    %esi,%esi
41674d:	89 75 fc             	mov    %esi,-0x4(%ebp)
416750:	85 c0                	test   %eax,%eax
416752:	74 0b                	je     0x41675f
416754:	8b c8                	mov    %eax,%ecx
416756:	e8 da 62 ff ff       	call   0x40ca35
41675b:	8b f8                	mov    %eax,%edi
41675d:	eb 02                	jmp    0x416761
41675f:	8b fe                	mov    %esi,%edi
416761:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416765:	8b cb                	mov    %ebx,%ecx
416767:	57                   	push   %edi
416768:	e8 e4 4e 00 00       	call   0x41b651
41676d:	6a 1c                	push   $0x1c
41676f:	e8 2f 8b 02 00       	call   0x43f2a3
416774:	59                   	pop    %ecx
416775:	89 45 f0             	mov    %eax,-0x10(%ebp)
416778:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
41677f:	85 c0                	test   %eax,%eax
416781:	74 0a                	je     0x41678d
416783:	57                   	push   %edi
416784:	8b c8                	mov    %eax,%ecx
416786:	e8 e6 62 ff ff       	call   0x40ca71
41678b:	8b f0                	mov    %eax,%esi
41678d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416791:	8b 45 08             	mov    0x8(%ebp),%eax
416794:	8b 48 0c             	mov    0xc(%eax),%ecx
416797:	8b 41 10             	mov    0x10(%ecx),%eax
41679a:	89 70 0c             	mov    %esi,0xc(%eax)
41679d:	8b 41 10             	mov    0x10(%ecx),%eax
4167a0:	89 46 10             	mov    %eax,0x10(%esi)
4167a3:	8b c7                	mov    %edi,%eax
4167a5:	89 71 10             	mov    %esi,0x10(%ecx)
4167a8:	89 4e 0c             	mov    %ecx,0xc(%esi)
4167ab:	e8 63 92 02 00       	call   0x43fa13
4167b0:	c2 04 00             	ret    $0x4
4167b3:	6a 04                	push   $0x4
4167b5:	b8 52 f2 48 00       	mov    $0x48f252,%eax
4167ba:	e8 8b 92 02 00       	call   0x43fa4a
4167bf:	8b d9                	mov    %ecx,%ebx
4167c1:	6a 14                	push   $0x14
4167c3:	e8 db 8a 02 00       	call   0x43f2a3
4167c8:	59                   	pop    %ecx
4167c9:	89 45 f0             	mov    %eax,-0x10(%ebp)
4167cc:	33 f6                	xor    %esi,%esi
4167ce:	89 75 fc             	mov    %esi,-0x4(%ebp)
4167d1:	85 c0                	test   %eax,%eax
4167d3:	74 0b                	je     0x4167e0
4167d5:	8b c8                	mov    %eax,%ecx
4167d7:	e8 59 62 ff ff       	call   0x40ca35
4167dc:	8b f8                	mov    %eax,%edi
4167de:	eb 02                	jmp    0x4167e2
4167e0:	8b fe                	mov    %esi,%edi
4167e2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4167e6:	8b cb                	mov    %ebx,%ecx
4167e8:	57                   	push   %edi
4167e9:	e8 98 4e 00 00       	call   0x41b686
4167ee:	6a 1c                	push   $0x1c
4167f0:	e8 ae 8a 02 00       	call   0x43f2a3
4167f5:	59                   	pop    %ecx
4167f6:	89 45 f0             	mov    %eax,-0x10(%ebp)
4167f9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
416800:	85 c0                	test   %eax,%eax
416802:	74 0a                	je     0x41680e
416804:	57                   	push   %edi
416805:	8b c8                	mov    %eax,%ecx
416807:	e8 65 62 ff ff       	call   0x40ca71
41680c:	8b f0                	mov    %eax,%esi
41680e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416812:	8b 45 08             	mov    0x8(%ebp),%eax
416815:	8b 48 0c             	mov    0xc(%eax),%ecx
416818:	8b 41 10             	mov    0x10(%ecx),%eax
41681b:	89 70 0c             	mov    %esi,0xc(%eax)
41681e:	8b 41 10             	mov    0x10(%ecx),%eax
416821:	89 46 10             	mov    %eax,0x10(%esi)
416824:	8b c7                	mov    %edi,%eax
416826:	89 71 10             	mov    %esi,0x10(%ecx)
416829:	89 4e 0c             	mov    %ecx,0xc(%esi)
41682c:	e8 e2 91 02 00       	call   0x43fa13
416831:	c2 04 00             	ret    $0x4
416834:	55                   	push   %ebp
416835:	8b ec                	mov    %esp,%ebp
416837:	51                   	push   %ecx
416838:	53                   	push   %ebx
416839:	56                   	push   %esi
41683a:	8b f1                	mov    %ecx,%esi
41683c:	33 d2                	xor    %edx,%edx
41683e:	57                   	push   %edi
41683f:	39 56 68             	cmp    %edx,0x68(%esi)
416842:	76 4d                	jbe    0x416891
416844:	8b fa                	mov    %edx,%edi
416846:	33 c0                	xor    %eax,%eax
416848:	8b ca                	mov    %edx,%ecx
41684a:	83 e1 1f             	and    $0x1f,%ecx
41684d:	40                   	inc    %eax
41684e:	d3 e0                	shl    %cl,%eax
416850:	8b da                	mov    %edx,%ebx
416852:	8b 4e 24             	mov    0x24(%esi),%ecx
416855:	c1 eb 05             	shr    $0x5,%ebx
416858:	89 45 fc             	mov    %eax,-0x4(%ebp)
41685b:	85 04 99             	test   %eax,(%ecx,%ebx,4)
41685e:	74 28                	je     0x416888
416860:	8b 46 04             	mov    0x4(%esi),%eax
416863:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416866:	85 0c 98             	test   %ecx,(%eax,%ebx,4)
416869:	74 1d                	je     0x416888
41686b:	8b 5e 34             	mov    0x34(%esi),%ebx
41686e:	8b 46 14             	mov    0x14(%esi),%eax
416871:	8b 0c 1f             	mov    (%edi,%ebx,1),%ecx
416874:	8b 04 07             	mov    (%edi,%eax,1),%eax
416877:	3b c8                	cmp    %eax,%ecx
416879:	75 36                	jne    0x4168b1
41687b:	8b 4e 14             	mov    0x14(%esi),%ecx
41687e:	8b 44 1f 04          	mov    0x4(%edi,%ebx,1),%eax
416882:	3b 44 0f 04          	cmp    0x4(%edi,%ecx,1),%eax
416886:	75 10                	jne    0x416898
416888:	42                   	inc    %edx
416889:	83 c7 08             	add    $0x8,%edi
41688c:	3b 56 68             	cmp    0x68(%esi),%edx
41688f:	72 b5                	jb     0x416846
416891:	32 c0                	xor    %al,%al
416893:	5f                   	pop    %edi
416894:	5e                   	pop    %esi
416895:	5b                   	pop    %ebx
416896:	c9                   	leave
416897:	c3                   	ret
416898:	8b 46 14             	mov    0x14(%esi),%eax
41689b:	8b 4c d3 04          	mov    0x4(%ebx,%edx,8),%ecx
41689f:	2b 4e 4c             	sub    0x4c(%esi),%ecx
4168a2:	83 e1 fe             	and    $0xfffffffe,%ecx
4168a5:	8b 44 d0 04          	mov    0x4(%eax,%edx,8),%eax
4168a9:	2b 46 4c             	sub    0x4c(%esi),%eax
4168ac:	83 e0 fe             	and    $0xfffffffe,%eax
4168af:	eb 0c                	jmp    0x4168bd
4168b1:	2b 46 4c             	sub    0x4c(%esi),%eax
4168b4:	2b 4e 4c             	sub    0x4c(%esi),%ecx
4168b7:	83 e0 fe             	and    $0xfffffffe,%eax
4168ba:	83 e1 fe             	and    $0xfffffffe,%ecx
4168bd:	3b c8                	cmp    %eax,%ecx
4168bf:	0f 9c c0             	setl   %al
4168c2:	eb cf                	jmp    0x416893
4168c4:	55                   	push   %ebp
4168c5:	8b ec                	mov    %esp,%ebp
4168c7:	51                   	push   %ecx
4168c8:	53                   	push   %ebx
4168c9:	56                   	push   %esi
4168ca:	8b f1                	mov    %ecx,%esi
4168cc:	33 d2                	xor    %edx,%edx
4168ce:	57                   	push   %edi
4168cf:	39 56 68             	cmp    %edx,0x68(%esi)
4168d2:	76 4d                	jbe    0x416921
4168d4:	8b fa                	mov    %edx,%edi
4168d6:	33 c0                	xor    %eax,%eax
4168d8:	8b ca                	mov    %edx,%ecx
4168da:	83 e1 1f             	and    $0x1f,%ecx
4168dd:	40                   	inc    %eax
4168de:	d3 e0                	shl    %cl,%eax
4168e0:	8b da                	mov    %edx,%ebx
4168e2:	8b 4e 24             	mov    0x24(%esi),%ecx
4168e5:	c1 eb 05             	shr    $0x5,%ebx
4168e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4168eb:	85 04 99             	test   %eax,(%ecx,%ebx,4)
4168ee:	74 28                	je     0x416918
4168f0:	8b 46 04             	mov    0x4(%esi),%eax
4168f3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4168f6:	85 0c 98             	test   %ecx,(%eax,%ebx,4)
4168f9:	74 1d                	je     0x416918
4168fb:	8b 46 34             	mov    0x34(%esi),%eax
4168fe:	8b 5e 14             	mov    0x14(%esi),%ebx
416901:	8b 0c 07             	mov    (%edi,%eax,1),%ecx
416904:	8b 04 1f             	mov    (%edi,%ebx,1),%eax
416907:	3b c8                	cmp    %eax,%ecx
416909:	75 32                	jne    0x41693d
41690b:	8b 46 34             	mov    0x34(%esi),%eax
41690e:	8b 44 07 04          	mov    0x4(%edi,%eax,1),%eax
416912:	3b 44 1f 04          	cmp    0x4(%edi,%ebx,1),%eax
416916:	75 10                	jne    0x416928
416918:	42                   	inc    %edx
416919:	83 c7 08             	add    $0x8,%edi
41691c:	3b 56 68             	cmp    0x68(%esi),%edx
41691f:	72 b5                	jb     0x4168d6
416921:	32 c0                	xor    %al,%al
416923:	5f                   	pop    %edi
416924:	5e                   	pop    %esi
416925:	5b                   	pop    %ebx
416926:	c9                   	leave
416927:	c3                   	ret
416928:	8b 46 34             	mov    0x34(%esi),%eax
41692b:	8b 4c d3 04          	mov    0x4(%ebx,%edx,8),%ecx
41692f:	2b 4e 4c             	sub    0x4c(%esi),%ecx
416932:	8b 44 d0 04          	mov    0x4(%eax,%edx,8),%eax
416936:	2b 46 4c             	sub    0x4c(%esi),%eax
416939:	3b c1                	cmp    %ecx,%eax
41693b:	eb 08                	jmp    0x416945
41693d:	2b 46 4c             	sub    0x4c(%esi),%eax
416940:	2b 4e 4c             	sub    0x4c(%esi),%ecx
416943:	3b c8                	cmp    %eax,%ecx
416945:	0f 9c c0             	setl   %al
416948:	eb d9                	jmp    0x416923
41694a:	55                   	push   %ebp
41694b:	8b ec                	mov    %esp,%ebp
41694d:	51                   	push   %ecx
41694e:	53                   	push   %ebx
41694f:	56                   	push   %esi
416950:	8b f1                	mov    %ecx,%esi
416952:	33 d2                	xor    %edx,%edx
416954:	57                   	push   %edi
416955:	39 56 68             	cmp    %edx,0x68(%esi)
416958:	76 4d                	jbe    0x4169a7
41695a:	8b fa                	mov    %edx,%edi
41695c:	33 c0                	xor    %eax,%eax
41695e:	8b ca                	mov    %edx,%ecx
416960:	83 e1 1f             	and    $0x1f,%ecx
416963:	40                   	inc    %eax
416964:	d3 e0                	shl    %cl,%eax
416966:	8b da                	mov    %edx,%ebx
416968:	8b 4e 24             	mov    0x24(%esi),%ecx
41696b:	c1 eb 05             	shr    $0x5,%ebx
41696e:	89 45 fc             	mov    %eax,-0x4(%ebp)
416971:	85 04 99             	test   %eax,(%ecx,%ebx,4)
416974:	74 28                	je     0x41699e
416976:	8b 46 04             	mov    0x4(%esi),%eax
416979:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41697c:	85 0c 98             	test   %ecx,(%eax,%ebx,4)