41770b:	23 45 f4             	and    -0xc(%ebp),%eax
41770e:	0f 85 de 00 00 00    	jne    0x4177f2
417714:	8b 43 2c             	mov    0x2c(%ebx),%eax
417717:	3b 45 f8             	cmp    -0x8(%ebp),%eax
41771a:	0f 8e b9 00 00 00    	jle    0x4177d9
417720:	8b 7b 20             	mov    0x20(%ebx),%edi
417723:	66 83 7f 2a 00       	cmpw   $0x0,0x2a(%edi)
417728:	74 47                	je     0x417771
41772a:	8b c7                	mov    %edi,%eax
41772c:	e8 47 1b 00 00       	call   0x419278
417731:	89 45 dc             	mov    %eax,-0x24(%ebp)
417734:	8b 43 20             	mov    0x20(%ebx),%eax
417737:	e8 18 1b 00 00       	call   0x419254
41773c:	89 45 d8             	mov    %eax,-0x28(%ebp)
41773f:	c6 45 d7 00          	movb   $0x0,-0x29(%ebp)
417743:	8d 55 dc             	lea    -0x24(%ebp),%edx
417746:	52                   	push   %edx
417747:	8d 55 d8             	lea    -0x28(%ebp),%edx
41774a:	52                   	push   %edx
41774b:	8d 55 ec             	lea    -0x14(%ebp),%edx
41774e:	52                   	push   %edx
41774f:	8d 55 f0             	lea    -0x10(%ebp),%edx
417752:	52                   	push   %edx
417753:	8d 55 d7             	lea    -0x29(%ebp),%edx
417756:	52                   	push   %edx
417757:	8b 43 20             	mov    0x20(%ebx),%eax
41775a:	8b f8                	mov    %eax,%edi
41775c:	8b d0                	mov    %eax,%edx
41775e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417761:	8b 47 2c             	mov    0x2c(%edi),%eax
417764:	ff 57 28             	call   *0x28(%edi)
417767:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)
41776b:	0f 85 93 00 00 00    	jne    0x417804
417771:	8b 45 f0             	mov    -0x10(%ebp),%eax
417774:	50                   	push   %eax
417775:	33 c0                	xor    %eax,%eax
417777:	8a 43 5c             	mov    0x5c(%ebx),%al
41777a:	8b 44 83 54          	mov    0x54(%ebx,%eax,4),%eax
41777e:	8d 50 01             	lea    0x1(%eax),%edx
417781:	8b 4d ec             	mov    -0x14(%ebp),%ecx
417784:	8b 45 e4             	mov    -0x1c(%ebp),%eax
417787:	ff 55 e0             	call   *-0x20(%ebp)
41778a:	8b 7b 20             	mov    0x20(%ebx),%edi
41778d:	66 83 7f 2a 00       	cmpw   $0x0,0x2a(%edi)
417792:	74 45                	je     0x4177d9
417794:	8b c7                	mov    %edi,%eax
417796:	e8 dd 1a 00 00       	call   0x419278
41779b:	f7 d8                	neg    %eax
41779d:	89 45 dc             	mov    %eax,-0x24(%ebp)
4177a0:	8b 43 20             	mov    0x20(%ebx),%eax
4177a3:	e8 ac 1a 00 00       	call   0x419254
4177a8:	89 45 d8             	mov    %eax,-0x28(%ebp)
4177ab:	c6 45 d7 00          	movb   $0x0,-0x29(%ebp)
4177af:	8d 55 dc             	lea    -0x24(%ebp),%edx
4177b2:	52                   	push   %edx
4177b3:	8d 55 d8             	lea    -0x28(%ebp),%edx
4177b6:	52                   	push   %edx
4177b7:	8d 55 ec             	lea    -0x14(%ebp),%edx
4177ba:	52                   	push   %edx
4177bb:	8d 55 f0             	lea    -0x10(%ebp),%edx
4177be:	52                   	push   %edx
4177bf:	8d 55 d7             	lea    -0x29(%ebp),%edx
4177c2:	52                   	push   %edx
4177c3:	8b 43 20             	mov    0x20(%ebx),%eax
4177c6:	8b f8                	mov    %eax,%edi
4177c8:	8b d0                	mov    %eax,%edx
4177ca:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4177cd:	8b 47 2c             	mov    0x2c(%edi),%eax
4177d0:	ff 57 28             	call   *0x28(%edi)
4177d3:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)
4177d7:	75 2b                	jne    0x417804
4177d9:	ff 45 f8             	incl   -0x8(%ebp)
4177dc:	8b c3                	mov    %ebx,%eax
4177de:	e8 11 e2 ff ff       	call   0x4159f4
4177e3:	8b 80 5c 04 00 00    	mov    0x45c(%eax),%eax
4177e9:	29 45 ec             	sub    %eax,-0x14(%ebp)
4177ec:	8b 43 28             	mov    0x28(%ebx),%eax
4177ef:	01 45 f0             	add    %eax,-0x10(%ebp)
4177f2:	8a 43 5c             	mov    0x5c(%ebx),%al
4177f5:	34 01                	xor    $0x1,%al
4177f7:	88 43 5c             	mov    %al,0x5c(%ebx)
4177fa:	ff 45 f4             	incl   -0xc(%ebp)
4177fd:	4e                   	dec    %esi
4177fe:	0f 85 8a fe ff ff    	jne    0x41768e
417804:	5f                   	pop    %edi
417805:	5e                   	pop    %esi
417806:	5b                   	pop    %ebx
417807:	8b e5                	mov    %ebp,%esp
417809:	5d                   	pop    %ebp
41780a:	c2 08 00             	ret    $0x8
41780d:	8d 40 00             	lea    0x0(%eax),%eax
417810:	55                   	push   %ebp
417811:	8b ec                	mov    %esp,%ebp
417813:	83 c4 e4             	add    $0xffffffe4,%esp
417816:	53                   	push   %ebx
417817:	8a 48 5c             	mov    0x5c(%eax),%cl
41781a:	33 d2                	xor    %edx,%edx
41781c:	8a d1                	mov    %cl,%dl
41781e:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
417822:	8a 1a                	mov    (%edx),%bl
417824:	fe cb                	dec    %bl
417826:	74 19                	je     0x417841
417828:	fe cb                	dec    %bl
41782a:	74 57                	je     0x417883
41782c:	fe cb                	dec    %bl
41782e:	0f 84 02 01 00 00    	je     0x417936
417834:	fe cb                	dec    %bl
417836:	0f 84 87 01 00 00    	je     0x4179c3
41783c:	e9 2e 02 00 00       	jmp    0x417a6f
417841:	8b 48 38             	mov    0x38(%eax),%ecx
417844:	8d 54 0a 01          	lea    0x1(%edx,%ecx,1),%edx
417848:	89 55 e8             	mov    %edx,-0x18(%ebp)
41784b:	8b 50 38             	mov    0x38(%eax),%edx
41784e:	f7 da                	neg    %edx
417850:	89 55 f0             	mov    %edx,-0x10(%ebp)
417853:	8b 50 38             	mov    0x38(%eax),%edx
417856:	42                   	inc    %edx
417857:	8b 40 34             	mov    0x34(%eax),%eax
41785a:	2b c2                	sub    %edx,%eax
41785c:	0f 82 0d 02 00 00    	jb     0x417a6f
417862:	40                   	inc    %eax
417863:	92                   	xchg   %eax,%edx
417864:	89 45 ec             	mov    %eax,-0x14(%ebp)
417867:	8b 45 e8             	mov    -0x18(%ebp),%eax
41786a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41786d:	8a 04 08             	mov    (%eax,%ecx,1),%al
417870:	8b 4d e8             	mov    -0x18(%ebp),%ecx
417873:	00 01                	add    %al,(%ecx)
417875:	ff 45 e8             	incl   -0x18(%ebp)
417878:	ff 45 ec             	incl   -0x14(%ebp)
41787b:	4a                   	dec    %edx
41787c:	75 e9                	jne    0x417867
41787e:	e9 ec 01 00 00       	jmp    0x417a6f
417883:	80 3d d1 9d 42 00 00 	cmpb   $0x0,0x429dd1
41788a:	74 58                	je     0x4178e4
41788c:	80 f1 01             	xor    $0x1,%cl
41788f:	33 d2                	xor    %edx,%edx
417891:	8a d1                	mov    %cl,%dl
417893:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
417897:	89 55 f8             	mov    %edx,-0x8(%ebp)
41789a:	33 d2                	xor    %edx,%edx
41789c:	8a 50 5c             	mov    0x5c(%eax),%dl
41789f:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
4178a3:	89 55 fc             	mov    %edx,-0x4(%ebp)
4178a6:	8b 40 34             	mov    0x34(%eax),%eax
4178a9:	83 c0 08             	add    $0x8,%eax
4178ac:	c1 e8 03             	shr    $0x3,%eax
4178af:	89 45 f4             	mov    %eax,-0xc(%ebp)
4178b2:	8b 55 fc             	mov    -0x4(%ebp),%edx
4178b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4178b8:	29 d0                	sub    %edx,%eax
4178ba:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4178bd:	0f 6f 04 10          	movq   (%eax,%edx,1),%mm0
4178c1:	0f 73 d0 08          	psrlq  $0x8,%mm0
4178c5:	0f 73 f0 08          	psllq  $0x8,%mm0
4178c9:	eb 04                	jmp    0x4178cf
4178cb:	0f 6f 04 10          	movq   (%eax,%edx,1),%mm0
4178cf:	0f 6f 0a             	movq   (%edx),%mm1
4178d2:	0f fc c1             	paddb  %mm1,%mm0
4178d5:	0f 7f 02             	movq   %mm0,(%edx)
4178d8:	83 c2 08             	add    $0x8,%edx
4178db:	e2 ee                	loop   0x4178cb
4178dd:	0f 77                	emms
4178df:	e9 8b 01 00 00       	jmp    0x417a6f
4178e4:	33 d2                	xor    %edx,%edx
4178e6:	8a 50 5c             	mov    0x5c(%eax),%dl
4178e9:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
4178ed:	42                   	inc    %edx
4178ee:	89 55 e8             	mov    %edx,-0x18(%ebp)
4178f1:	8a 50 5c             	mov    0x5c(%eax),%dl
4178f4:	80 f2 01             	xor    $0x1,%dl
4178f7:	83 e2 7f             	and    $0x7f,%edx
4178fa:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
4178fe:	42                   	inc    %edx
4178ff:	89 55 e4             	mov    %edx,-0x1c(%ebp)
417902:	8b 50 34             	mov    0x34(%eax),%edx
417905:	85 d2                	test   %edx,%edx
417907:	0f 86 62 01 00 00    	jbe    0x417a6f
41790d:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
417914:	8b 45 e8             	mov    -0x18(%ebp),%eax
417917:	8a 00                	mov    (%eax),%al
417919:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41791c:	02 01                	add    (%ecx),%al
41791e:	24 ff                	and    $0xff,%al
417920:	8b 4d e8             	mov    -0x18(%ebp),%ecx
417923:	88 01                	mov    %al,(%ecx)
417925:	ff 45 e8             	incl   -0x18(%ebp)
417928:	ff 45 e4             	incl   -0x1c(%ebp)
41792b:	ff 45 ec             	incl   -0x14(%ebp)
41792e:	4a                   	dec    %edx
41792f:	75 e3                	jne    0x417914
417931:	e9 39 01 00 00       	jmp    0x417a6f
417936:	33 d2                	xor    %edx,%edx
417938:	8a 50 5c             	mov    0x5c(%eax),%dl
41793b:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
41793f:	42                   	inc    %edx
417940:	89 55 e8             	mov    %edx,-0x18(%ebp)
417943:	8a 50 5c             	mov    0x5c(%eax),%dl
417946:	80 f2 01             	xor    $0x1,%dl
417949:	83 e2 7f             	and    $0x7f,%edx
41794c:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
417950:	42                   	inc    %edx
417951:	89 55 e4             	mov    %edx,-0x1c(%ebp)
417954:	8b 50 38             	mov    0x38(%eax),%edx
417957:	4a                   	dec    %edx
417958:	85 d2                	test   %edx,%edx
41795a:	72 21                	jb     0x41797d
41795c:	42                   	inc    %edx
41795d:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
417964:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
417967:	0f b6 09             	movzbl (%ecx),%ecx
41796a:	d1 e9                	shr    $1,%ecx
41796c:	8b 5d e8             	mov    -0x18(%ebp),%ebx
41796f:	00 0b                	add    %cl,(%ebx)
417971:	ff 45 e8             	incl   -0x18(%ebp)
417974:	ff 45 e4             	incl   -0x1c(%ebp)
417977:	ff 45 ec             	incl   -0x14(%ebp)
41797a:	4a                   	dec    %edx
41797b:	75 e7                	jne    0x417964
41797d:	8b 50 38             	mov    0x38(%eax),%edx
417980:	f7 da                	neg    %edx
417982:	89 55 f0             	mov    %edx,-0x10(%ebp)
417985:	8b 50 38             	mov    0x38(%eax),%edx
417988:	8b 40 34             	mov    0x34(%eax),%eax
41798b:	48                   	dec    %eax
41798c:	2b c2                	sub    %edx,%eax
41798e:	0f 82 db 00 00 00    	jb     0x417a6f
417994:	40                   	inc    %eax
417995:	92                   	xchg   %eax,%edx
417996:	89 45 ec             	mov    %eax,-0x14(%ebp)
417999:	8b 45 e8             	mov    -0x18(%ebp),%eax
41799c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41799f:	0f b6 04 08          	movzbl (%eax,%ecx,1),%eax
4179a3:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4179a6:	0f b6 09             	movzbl (%ecx),%ecx
4179a9:	03 c1                	add    %ecx,%eax
4179ab:	d1 e8                	shr    $1,%eax
4179ad:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4179b0:	00 01                	add    %al,(%ecx)
4179b2:	ff 45 e8             	incl   -0x18(%ebp)
4179b5:	ff 45 e4             	incl   -0x1c(%ebp)
4179b8:	ff 45 ec             	incl   -0x14(%ebp)
4179bb:	4a                   	dec    %edx
4179bc:	75 db                	jne    0x417999
4179be:	e9 ac 00 00 00       	jmp    0x417a6f
4179c3:	8b 50 38             	mov    0x38(%eax),%edx
4179c6:	89 55 f0             	mov    %edx,-0x10(%ebp)
4179c9:	8b 55 f0             	mov    -0x10(%ebp),%edx
4179cc:	89 55 f4             	mov    %edx,-0xc(%ebp)
4179cf:	33 d2                	xor    %edx,%edx
4179d1:	8a 50 5c             	mov    0x5c(%eax),%dl
4179d4:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
4179d8:	42                   	inc    %edx
4179d9:	89 55 fc             	mov    %edx,-0x4(%ebp)
4179dc:	8a 50 5c             	mov    0x5c(%eax),%dl
4179df:	80 f2 01             	xor    $0x1,%dl
4179e2:	83 e2 7f             	and    $0x7f,%edx
4179e5:	8b 54 90 54          	mov    0x54(%eax,%edx,4),%edx
4179e9:	42                   	inc    %edx
4179ea:	89 55 f8             	mov    %edx,-0x8(%ebp)
4179ed:	8b 40 34             	mov    0x34(%eax),%eax
4179f0:	2b 45 f0             	sub    -0x10(%ebp),%eax
4179f3:	89 45 ec             	mov    %eax,-0x14(%ebp)
4179f6:	56                   	push   %esi
4179f7:	57                   	push   %edi
4179f8:	53                   	push   %ebx
4179f9:	8b 75 f8             	mov    -0x8(%ebp),%esi
4179fc:	8b 7d fc             	mov    -0x4(%ebp),%edi
4179ff:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417a02:	e3 06                	jecxz  0x417a0a
417a04:	ac                   	lods   %ds:(%esi),%al
417a05:	02 07                	add    (%edi),%al
417a07:	aa                   	stos   %al,%es:(%edi)
417a08:	e2 fa                	loop   0x417a04
417a0a:	55                   	push   %ebp
417a0b:	8b 5d f0             	mov    -0x10(%ebp),%ebx
417a0e:	f7 db                	neg    %ebx
417a10:	8b 6d ec             	mov    -0x14(%ebp),%ebp
417a13:	90                   	nop
417a14:	90                   	nop
417a15:	90                   	nop
417a16:	8a 34 3b             	mov    (%ebx,%edi,1),%dh
417a19:	31 c0                	xor    %eax,%eax
417a1b:	8a 14 33             	mov    (%ebx,%esi,1),%dl
417a1e:	ac                   	lods   %ds:(%esi),%al
417a1f:	56                   	push   %esi
417a20:	57                   	push   %edi
417a21:	89 d1                	mov    %edx,%ecx
417a23:	c1 e1 10             	shl    $0x10,%ecx
417a26:	88 c5                	mov    %al,%ch
417a28:	89 c6                	mov    %eax,%esi
417a2a:	0f b6 fa             	movzbl %dl,%edi
417a2d:	f7 df                	neg    %edi
417a2f:	0f b6 c6             	movzbl %dh,%eax
417a32:	01 c6                	add    %eax,%esi
417a34:	8d 34 7e             	lea    (%esi,%edi,2),%esi
417a37:	01 f8                	add    %edi,%eax
417a39:	99                   	cltd
417a3a:	31 d0                	xor    %edx,%eax
417a3c:	29 d0                	sub    %edx,%eax
417a3e:	96                   	xchg   %eax,%esi
417a3f:	99                   	cltd
417a40:	31 d0                	xor    %edx,%eax
417a42:	29 d0                	sub    %edx,%eax
417a44:	97                   	xchg   %eax,%edi
417a45:	0f b6 d5             	movzbl %ch,%edx
417a48:	01 d0                	add    %edx,%eax
417a4a:	99                   	cltd
417a4b:	31 d0                	xor    %edx,%eax
417a4d:	29 d0                	sub    %edx,%eax
417a4f:	39 f0                	cmp    %esi,%eax
417a51:	77 06                	ja     0x417a59
417a53:	39 f8                	cmp    %edi,%eax
417a55:	b1 18                	mov    $0x18,%cl
417a57:	76 08                	jbe    0x417a61
417a59:	b1 08                	mov    $0x8,%cl
417a5b:	39 fe                	cmp    %edi,%esi
417a5d:	76 02                	jbe    0x417a61
417a5f:	b1 10                	mov    $0x10,%cl
417a61:	d3 e9                	shr    %cl,%ecx
417a63:	5f                   	pop    %edi
417a64:	5e                   	pop    %esi
417a65:	00 0f                	add    %cl,(%edi)
417a67:	47                   	inc    %edi
417a68:	4d                   	dec    %ebp
417a69:	75 ab                	jne    0x417a16
417a6b:	5d                   	pop    %ebp
417a6c:	5b                   	pop    %ebx
417a6d:	5f                   	pop    %edi
417a6e:	5e                   	pop    %esi
417a6f:	5b                   	pop    %ebx
417a70:	8b e5                	mov    %ebp,%esp
417a72:	5d                   	pop    %ebp
417a73:	c3                   	ret
417a74:	55                   	push   %ebp
417a75:	8b ec                	mov    %esp,%ebp
417a77:	83 c4 ac             	add    $0xffffffac,%esp
417a7a:	53                   	push   %ebx
417a7b:	56                   	push   %esi
417a7c:	57                   	push   %edi
417a7d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
417a80:	8b f2                	mov    %edx,%esi
417a82:	89 45 fc             	mov    %eax,-0x4(%ebp)
417a85:	8b 7d 08             	mov    0x8(%ebp),%edi
417a88:	8b 5d fc             	mov    -0x4(%ebp),%ebx
417a8b:	8b 43 20             	mov    0x20(%ebx),%eax
417a8e:	e8 35 18 00 00       	call   0x4192c8
417a93:	89 45 ec             	mov    %eax,-0x14(%ebp)
417a96:	8b 45 ec             	mov    -0x14(%ebp),%eax
417a99:	80 78 30 00          	cmpb   $0x0,0x30(%eax)