402658:	57                   	push   %edi
402659:	8d 04 31             	lea    (%ecx,%esi,1),%eax
40265c:	33 ff                	xor    %edi,%edi
40265e:	f6 40 08 06          	testb  $0x6,0x8(%eax)
402662:	75 16                	jne    0x40267a
402664:	8b 40 28             	mov    0x28(%eax),%eax
402667:	8b 10                	mov    (%eax),%edx
402669:	8b c8                	mov    %eax,%ecx
40266b:	8b 42 30             	mov    0x30(%edx),%eax
40266e:	ff d0                	call   *%eax
402670:	83 f8 ff             	cmp    $0xffffffff,%eax
402673:	75 05                	jne    0x40267a
402675:	bf 04 00 00 00       	mov    $0x4,%edi
40267a:	8b 0e                	mov    (%esi),%ecx
40267c:	8b 49 04             	mov    0x4(%ecx),%ecx
40267f:	03 ce                	add    %esi,%ecx
402681:	85 ff                	test   %edi,%edi
402683:	74 16                	je     0x40269b
402685:	8b 41 08             	mov    0x8(%ecx),%eax
402688:	0b c7                	or     %edi,%eax
40268a:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
40268e:	75 03                	jne    0x402693
402690:	83 c8 04             	or     $0x4,%eax
402693:	6a 00                	push   $0x0
402695:	50                   	push   %eax
402696:	e8 c5 fd ff ff       	call   0x402460
40269b:	5f                   	pop    %edi
40269c:	8b c6                	mov    %esi,%eax
40269e:	5e                   	pop    %esi
40269f:	c3                   	ret
4026a0:	6a ff                	push   $0xffffffff
4026a2:	68 b8 5a 41 00       	push   $0x415ab8
4026a7:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4026ad:	50                   	push   %eax
4026ae:	51                   	push   %ecx
4026af:	56                   	push   %esi
4026b0:	57                   	push   %edi
4026b1:	a1 20 c5 41 00       	mov    0x41c520,%eax
4026b6:	33 c4                	xor    %esp,%eax
4026b8:	50                   	push   %eax
4026b9:	8d 44 24 10          	lea    0x10(%esp),%eax
4026bd:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4026c3:	8b f9                	mov    %ecx,%edi
4026c5:	89 7c 24 0c          	mov    %edi,0xc(%esp)
4026c9:	8b 74 24 20          	mov    0x20(%esp),%esi
4026cd:	89 37                	mov    %esi,(%edi)
4026cf:	8b 06                	mov    (%esi),%eax
4026d1:	8b 48 04             	mov    0x4(%eax),%ecx
4026d4:	8b 44 31 28          	mov    0x28(%ecx,%esi,1),%eax
4026d8:	85 c0                	test   %eax,%eax
4026da:	74 08                	je     0x4026e4
4026dc:	8d 48 04             	lea    0x4(%eax),%ecx
4026df:	e8 f1 0b 00 00       	call   0x4032d5
4026e4:	8b 16                	mov    (%esi),%edx
4026e6:	8b 42 04             	mov    0x4(%edx),%eax
4026e9:	03 c6                	add    %esi,%eax
4026eb:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
4026ef:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
4026f6:	00
4026f7:	75 0e                	jne    0x402707
4026f9:	8b 40 2c             	mov    0x2c(%eax),%eax
4026fc:	85 c0                	test   %eax,%eax
4026fe:	74 07                	je     0x402707
402700:	8b c8                	mov    %eax,%ecx
402702:	e8 49 ff ff ff       	call   0x402650
402707:	8b 0e                	mov    (%esi),%ecx
402709:	8b 51 04             	mov    0x4(%ecx),%edx
40270c:	83 7c 32 08 00       	cmpl   $0x0,0x8(%edx,%esi,1)
402711:	0f 94 c0             	sete   %al
402714:	88 47 04             	mov    %al,0x4(%edi)
402717:	8b c7                	mov    %edi,%eax
402719:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40271d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402724:	59                   	pop    %ecx
402725:	5f                   	pop    %edi
402726:	5e                   	pop    %esi
402727:	83 c4 10             	add    $0x10,%esp
40272a:	c2 04 00             	ret    $0x4
40272d:	cc                   	int3
40272e:	cc                   	int3
40272f:	cc                   	int3
402730:	55                   	push   %ebp
402731:	8b ec                	mov    %esp,%ebp
402733:	6a ff                	push   $0xffffffff
402735:	68 e0 5a 41 00       	push   $0x415ae0
40273a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402740:	50                   	push   %eax
402741:	51                   	push   %ecx
402742:	53                   	push   %ebx
402743:	56                   	push   %esi
402744:	57                   	push   %edi
402745:	a1 20 c5 41 00       	mov    0x41c520,%eax
40274a:	33 c5                	xor    %ebp,%eax
40274c:	50                   	push   %eax
40274d:	8d 45 f4             	lea    -0xc(%ebp),%eax
402750:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402756:	89 65 f0             	mov    %esp,-0x10(%ebp)
402759:	8b 01                	mov    (%ecx),%eax
40275b:	8b 50 04             	mov    0x4(%eax),%edx
40275e:	f6 44 0a 10 02       	testb  $0x2,0x10(%edx,%ecx,1)
402763:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40276a:	74 05                	je     0x402771
40276c:	e8 df fe ff ff       	call   0x402650
402771:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402774:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40277b:	59                   	pop    %ecx
40277c:	5f                   	pop    %edi
40277d:	5e                   	pop    %esi
40277e:	5b                   	pop    %ebx
40277f:	8b e5                	mov    %ebp,%esp
402781:	5d                   	pop    %ebp
402782:	c3                   	ret
402783:	b8 71 27 40 00       	mov    $0x402771,%eax
402788:	c3                   	ret
402789:	cc                   	int3
40278a:	cc                   	int3
40278b:	cc                   	int3
40278c:	cc                   	int3
40278d:	cc                   	int3
40278e:	cc                   	int3
40278f:	cc                   	int3
402790:	6a ff                	push   $0xffffffff
402792:	68 08 5b 41 00       	push   $0x415b08
402797:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40279d:	50                   	push   %eax
40279e:	51                   	push   %ecx
40279f:	56                   	push   %esi
4027a0:	a1 20 c5 41 00       	mov    0x41c520,%eax
4027a5:	33 c4                	xor    %esp,%eax
4027a7:	50                   	push   %eax
4027a8:	8d 44 24 0c          	lea    0xc(%esp),%eax
4027ac:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4027b2:	8b f1                	mov    %ecx,%esi
4027b4:	89 74 24 08          	mov    %esi,0x8(%esp)
4027b8:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
4027bf:	00
4027c0:	e8 e5 0c 00 00       	call   0x4034aa
4027c5:	84 c0                	test   %al,%al
4027c7:	75 07                	jne    0x4027d0
4027c9:	8b 0e                	mov    (%esi),%ecx
4027cb:	e8 60 ff ff ff       	call   0x402730
4027d0:	8b 06                	mov    (%esi),%eax
4027d2:	8b 08                	mov    (%eax),%ecx
4027d4:	8b 51 04             	mov    0x4(%ecx),%edx
4027d7:	8b 44 02 28          	mov    0x28(%edx,%eax,1),%eax
4027db:	85 c0                	test   %eax,%eax
4027dd:	c7 44 24 14 ff ff ff 	movl   $0xffffffff,0x14(%esp)
4027e4:	ff
4027e5:	74 08                	je     0x4027ef
4027e7:	8d 48 04             	lea    0x4(%eax),%ecx
4027ea:	e8 ef 0a 00 00       	call   0x4032de
4027ef:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4027f3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4027fa:	59                   	pop    %ecx
4027fb:	5e                   	pop    %esi
4027fc:	83 c4 10             	add    $0x10,%esp
4027ff:	c3                   	ret
402800:	55                   	push   %ebp
402801:	8b ec                	mov    %esp,%ebp
402803:	6a ff                	push   $0xffffffff
402805:	68 38 5b 41 00       	push   $0x415b38
40280a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402810:	50                   	push   %eax
402811:	83 ec 14             	sub    $0x14,%esp
402814:	53                   	push   %ebx
402815:	56                   	push   %esi
402816:	57                   	push   %edi
402817:	a1 20 c5 41 00       	mov    0x41c520,%eax
40281c:	33 c5                	xor    %ebp,%eax
40281e:	50                   	push   %eax
40281f:	8d 45 f4             	lea    -0xc(%ebp),%eax
402822:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402828:	89 65 f0             	mov    %esp,-0x10(%ebp)
40282b:	8b 45 0c             	mov    0xc(%ebp),%eax
40282e:	33 db                	xor    %ebx,%ebx
402830:	89 5d ec             	mov    %ebx,-0x14(%ebp)
402833:	8d 50 02             	lea    0x2(%eax),%edx
402836:	66 8b 08             	mov    (%eax),%cx
402839:	83 c0 02             	add    $0x2,%eax
40283c:	66 3b cb             	cmp    %bx,%cx
40283f:	75 f5                	jne    0x402836
402841:	8b 75 08             	mov    0x8(%ebp),%esi
402844:	2b c2                	sub    %edx,%eax
402846:	d1 f8                	sar    $1,%eax
402848:	8b f8                	mov    %eax,%edi
40284a:	8b 06                	mov    (%esi),%eax
40284c:	8b 48 04             	mov    0x4(%eax),%ecx
40284f:	8b 44 31 18          	mov    0x18(%ecx,%esi,1),%eax
402853:	3b c3                	cmp    %ebx,%eax
402855:	7e 0d                	jle    0x402864
402857:	3b c7                	cmp    %edi,%eax
402859:	7e 09                	jle    0x402864
40285b:	2b c7                	sub    %edi,%eax
40285d:	8b d8                	mov    %eax,%ebx
40285f:	89 45 e8             	mov    %eax,-0x18(%ebp)
402862:	eb 03                	jmp    0x402867
402864:	89 5d e8             	mov    %ebx,-0x18(%ebp)
402867:	56                   	push   %esi
402868:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40286b:	e8 30 fe ff ff       	call   0x4026a0
402870:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
402874:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40287b:	75 0a                	jne    0x402887
40287d:	ba 04 00 00 00       	mov    $0x4,%edx
402882:	e9 a8 00 00 00       	jmp    0x40292f
402887:	8b 16                	mov    (%esi),%edx
402889:	8b 42 04             	mov    0x4(%edx),%eax
40288c:	8b 44 30 10          	mov    0x10(%eax,%esi,1),%eax
402890:	25 c0 01 00 00       	and    $0x1c0,%eax
402895:	83 f8 40             	cmp    $0x40,%eax
402898:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40289c:	74 60                	je     0x4028fe
40289e:	8b ff                	mov    %edi,%edi
4028a0:	85 db                	test   %ebx,%ebx
4028a2:	7e 54                	jle    0x4028f8
4028a4:	8b 0e                	mov    (%esi),%ecx
4028a6:	8b 51 04             	mov    0x4(%ecx),%edx
4028a9:	8b 4c 32 28          	mov    0x28(%edx,%esi,1),%ecx
4028ad:	8d 04 32             	lea    (%edx,%esi,1),%eax
4028b0:	0f b7 50 30          	movzwl 0x30(%eax),%edx
4028b4:	8b 41 24             	mov    0x24(%ecx),%eax
4028b7:	83 38 00             	cmpl   $0x0,(%eax)
4028ba:	74 20                	je     0x4028dc
4028bc:	8b 41 34             	mov    0x34(%ecx),%eax
4028bf:	83 38 00             	cmpl   $0x0,(%eax)
4028c2:	7e 18                	jle    0x4028dc
4028c4:	83 00 ff             	addl   $0xffffffff,(%eax)
4028c7:	8b 49 24             	mov    0x24(%ecx),%ecx
4028ca:	8b 01                	mov    (%ecx),%eax
4028cc:	8d 58 02             	lea    0x2(%eax),%ebx
4028cf:	89 19                	mov    %ebx,(%ecx)
4028d1:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4028d4:	66 89 10             	mov    %dx,(%eax)
4028d7:	0f b7 c2             	movzwl %dx,%eax
4028da:	eb 0e                	jmp    0x4028ea
4028dc:	8b 01                	mov    (%ecx),%eax
4028de:	52                   	push   %edx
4028df:	8b 50 04             	mov    0x4(%eax),%edx
4028e2:	ff d2                	call   *%edx
4028e4:	0f b7 c0             	movzwl %ax,%eax
4028e7:	0f b7 c0             	movzwl %ax,%eax
4028ea:	66 3d ff ff          	cmp    $0xffff,%ax
4028ee:	0f 85 7f 00 00 00    	jne    0x402973
4028f4:	83 4d ec 04          	orl    $0x4,-0x14(%ebp)
4028f8:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
4028fc:	75 1f                	jne    0x40291d
4028fe:	8b 06                	mov    (%esi),%eax
402900:	8b 48 04             	mov    0x4(%eax),%ecx
402903:	8b 4c 31 28          	mov    0x28(%ecx,%esi,1),%ecx
402907:	8b 11                	mov    (%ecx),%edx
402909:	8b 42 20             	mov    0x20(%edx),%eax
40290c:	57                   	push   %edi
40290d:	ff 75 0c             	push   0xc(%ebp)
402910:	ff d0                	call   *%eax
402912:	3b c7                	cmp    %edi,%eax
402914:	74 6a                	je     0x402980
402916:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
40291d:	8b 0e                	mov    (%esi),%ecx
40291f:	8b 41 04             	mov    0x4(%ecx),%eax
402922:	03 c6                	add    %esi,%eax
402924:	33 c9                	xor    %ecx,%ecx
402926:	89 48 18             	mov    %ecx,0x18(%eax)
402929:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40292c:	8b 55 ec             	mov    -0x14(%ebp),%edx
40292f:	8b 06                	mov    (%esi),%eax
402931:	8b 48 04             	mov    0x4(%eax),%ecx
402934:	03 ce                	add    %esi,%ecx
402936:	85 d2                	test   %edx,%edx
402938:	74 16                	je     0x402950
40293a:	8b 41 08             	mov    0x8(%ecx),%eax
40293d:	0b c2                	or     %edx,%eax
40293f:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
402943:	75 03                	jne    0x402948
402945:	83 c8 04             	or     $0x4,%eax
402948:	6a 00                	push   $0x0
40294a:	50                   	push   %eax
40294b:	e8 10 fb ff ff       	call   0x402460
402950:	8d 4d e0             	lea    -0x20(%ebp),%ecx
402953:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40295a:	e8 31 fe ff ff       	call   0x402790
40295f:	8b c6                	mov    %esi,%eax
402961:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402964:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40296b:	59                   	pop    %ecx
40296c:	5f                   	pop    %edi
40296d:	5e                   	pop    %esi
40296e:	5b                   	pop    %ebx
40296f:	8b e5                	mov    %ebp,%esp
402971:	5d                   	pop    %ebp
402972:	c3                   	ret
402973:	83 eb 01             	sub    $0x1,%ebx
402976:	89 5d e8             	mov    %ebx,-0x18(%ebp)
402979:	e9 22 ff ff ff       	jmp    0x4028a0
40297e:	8b ff                	mov    %edi,%edi
402980:	85 db                	test   %ebx,%ebx
402982:	7e 99                	jle    0x40291d
402984:	8b 0e                	mov    (%esi),%ecx
402986:	8b 51 04             	mov    0x4(%ecx),%edx
402989:	8b 4c 32 28          	mov    0x28(%edx,%esi,1),%ecx
40298d:	8d 04 32             	lea    (%edx,%esi,1),%eax
402990:	0f b7 50 30          	movzwl 0x30(%eax),%edx
402994:	8b 41 24             	mov    0x24(%ecx),%eax
402997:	83 38 00             	cmpl   $0x0,(%eax)
40299a:	74 1d                	je     0x4029b9
40299c:	8b 41 34             	mov    0x34(%ecx),%eax
40299f:	83 38 00             	cmpl   $0x0,(%eax)
4029a2:	7e 15                	jle    0x4029b9
4029a4:	83 00 ff             	addl   $0xffffffff,(%eax)
4029a7:	8b 49 24             	mov    0x24(%ecx),%ecx
4029aa:	8b 01                	mov    (%ecx),%eax
4029ac:	8d 78 02             	lea    0x2(%eax),%edi
4029af:	89 39                	mov    %edi,(%ecx)
4029b1:	66 89 10             	mov    %dx,(%eax)
4029b4:	0f b7 c2             	movzwl %dx,%eax
4029b7:	eb 0e                	jmp    0x4029c7
4029b9:	8b 01                	mov    (%ecx),%eax
4029bb:	52                   	push   %edx
4029bc:	8b 50 04             	mov    0x4(%eax),%edx
4029bf:	ff d2                	call   *%edx
4029c1:	0f b7 c0             	movzwl %ax,%eax
4029c4:	0f b7 c0             	movzwl %ax,%eax
4029c7:	66 3d ff ff          	cmp    $0xffff,%ax
4029cb:	75 09                	jne    0x4029d6
4029cd:	83 4d ec 04          	orl    $0x4,-0x14(%ebp)
4029d1:	e9 47 ff ff ff       	jmp    0x40291d
4029d6:	83 eb 01             	sub    $0x1,%ebx
4029d9:	eb a5                	jmp    0x402980
4029db:	8b 4d 08             	mov    0x8(%ebp),%ecx
4029de:	8b 01                	mov    (%ecx),%eax
4029e0:	8b 40 04             	mov    0x4(%eax),%eax
4029e3:	03 c1                	add    %ecx,%eax
4029e5:	8b 48 08             	mov    0x8(%eax),%ecx
4029e8:	83 c9 04             	or     $0x4,%ecx
4029eb:	83 78 28 00          	cmpl   $0x0,0x28(%eax)
4029ef:	75 03                	jne    0x4029f4
4029f1:	83 c9 04             	or     $0x4,%ecx
4029f4:	83 e1 17             	and    $0x17,%ecx
4029f7:	85 48 0c             	test   %ecx,0xc(%eax)
4029fa:	89 48 08             	mov    %ecx,0x8(%eax)
4029fd:	75 0e                	jne    0x402a0d
4029ff:	b8 05 2a 40 00       	mov    $0x402a05,%eax
402a04:	c3                   	ret
402a05:	8b 75 08             	mov    0x8(%ebp),%esi
402a08:	e9 1f ff ff ff       	jmp    0x40292c
402a0d:	6a 00                	push   $0x0
402a0f:	6a 00                	push   $0x0
402a11:	e8 2c 36 00 00       	call   0x406042
402a16:	cc                   	int3
402a17:	cc                   	int3
402a18:	cc                   	int3