40565e:	5e                   	pop    %esi
40565f:	c9                   	leave
405660:	c2 08 00             	ret    $0x8
405663:	cc                   	int3
405664:	cc                   	int3
405665:	cc                   	int3
405666:	cc                   	int3
405667:	cc                   	int3
405668:	cc                   	int3
405669:	cc                   	int3
40566a:	cc                   	int3
40566b:	cc                   	int3
40566c:	cc                   	int3
40566d:	cc                   	int3
40566e:	cc                   	int3
40566f:	cc                   	int3
405670:	8b ff                	mov    %edi,%edi
405672:	55                   	push   %ebp
405673:	8b ec                	mov    %esp,%ebp
405675:	8b 45 08             	mov    0x8(%ebp),%eax
405678:	3b 48 04             	cmp    0x4(%eax),%ecx
40567b:	75 0b                	jne    0x405688
40567d:	8b 00                	mov    (%eax),%eax
40567f:	3b 45 0c             	cmp    0xc(%ebp),%eax
405682:	75 04                	jne    0x405688
405684:	b0 01                	mov    $0x1,%al
405686:	eb 02                	jmp    0x40568a
405688:	32 c0                	xor    %al,%al
40568a:	5d                   	pop    %ebp
40568b:	c2 08 00             	ret    $0x8
40568e:	cc                   	int3
40568f:	cc                   	int3
405690:	b8 1c 25 40 00       	mov    $0x40251c,%eax
405695:	c3                   	ret
405696:	cc                   	int3
405697:	cc                   	int3
405698:	cc                   	int3
405699:	cc                   	int3
40569a:	cc                   	int3
40569b:	cc                   	int3
40569c:	cc                   	int3
40569d:	cc                   	int3
40569e:	cc                   	int3
40569f:	cc                   	int3
4056a0:	8b ff                	mov    %edi,%edi
4056a2:	55                   	push   %ebp
4056a3:	8b ec                	mov    %esp,%ebp
4056a5:	ff 75 0c             	push   0xc(%ebp)
4056a8:	e8 87 de 00 00       	call   0x413534
4056ad:	59                   	pop    %ecx
4056ae:	85 c0                	test   %eax,%eax
4056b0:	75 05                	jne    0x4056b7
4056b2:	b8 24 25 40 00       	mov    $0x402524,%eax
4056b7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4056ba:	50                   	push   %eax
4056bb:	e8 23 1a 00 00       	call   0x4070e3
4056c0:	8b 45 08             	mov    0x8(%ebp),%eax
4056c3:	5d                   	pop    %ebp
4056c4:	c2 08 00             	ret    $0x8
4056c7:	cc                   	int3
4056c8:	cc                   	int3
4056c9:	cc                   	int3
4056ca:	cc                   	int3
4056cb:	cc                   	int3
4056cc:	cc                   	int3
4056cd:	cc                   	int3
4056ce:	cc                   	int3
4056cf:	cc                   	int3
4056d0:	b8 34 25 40 00       	mov    $0x402534,%eax
4056d5:	c3                   	ret
4056d6:	cc                   	int3
4056d7:	cc                   	int3
4056d8:	cc                   	int3
4056d9:	cc                   	int3
4056da:	cc                   	int3
4056db:	cc                   	int3
4056dc:	cc                   	int3
4056dd:	cc                   	int3
4056de:	cc                   	int3
4056df:	cc                   	int3
4056e0:	8b ff                	mov    %edi,%edi
4056e2:	55                   	push   %ebp
4056e3:	8b ec                	mov    %esp,%ebp
4056e5:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4056e9:	75 0f                	jne    0x4056fa
4056eb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4056ee:	68 40 25 40 00       	push   $0x402540
4056f3:	e8 eb 19 00 00       	call   0x4070e3
4056f8:	eb 0b                	jmp    0x405705
4056fa:	ff 75 0c             	push   0xc(%ebp)
4056fd:	ff 75 08             	push   0x8(%ebp)
405700:	e8 9b ff ff ff       	call   0x4056a0
405705:	8b 45 08             	mov    0x8(%ebp),%eax
405708:	5d                   	pop    %ebp
405709:	c2 08 00             	ret    $0x8
40570c:	cc                   	int3
40570d:	cc                   	int3
40570e:	cc                   	int3
40570f:	cc                   	int3
405710:	b8 58 25 40 00       	mov    $0x402558,%eax
405715:	c3                   	ret
405716:	cc                   	int3
405717:	cc                   	int3
405718:	cc                   	int3
405719:	cc                   	int3
40571a:	cc                   	int3
40571b:	cc                   	int3
40571c:	cc                   	int3
40571d:	cc                   	int3
40571e:	cc                   	int3
40571f:	cc                   	int3
405720:	8b ff                	mov    %edi,%edi
405722:	55                   	push   %ebp
405723:	8b ec                	mov    %esp,%ebp
405725:	ff 75 0c             	push   0xc(%ebp)
405728:	e8 33 de 00 00       	call   0x413560
40572d:	59                   	pop    %ecx
40572e:	85 c0                	test   %eax,%eax
405730:	75 05                	jne    0x405737
405732:	b8 24 25 40 00       	mov    $0x402524,%eax
405737:	8b 4d 08             	mov    0x8(%ebp),%ecx
40573a:	50                   	push   %eax
40573b:	e8 a3 19 00 00       	call   0x4070e3
405740:	8b 45 08             	mov    0x8(%ebp),%eax
405743:	5d                   	pop    %ebp
405744:	c2 08 00             	ret    $0x8
405747:	cc                   	int3
405748:	cc                   	int3
405749:	cc                   	int3
40574a:	cc                   	int3
40574b:	cc                   	int3
40574c:	cc                   	int3
40574d:	cc                   	int3
40574e:	cc                   	int3
40574f:	cc                   	int3
405750:	8b ff                	mov    %edi,%edi
405752:	55                   	push   %ebp
405753:	8b ec                	mov    %esp,%ebp
405755:	56                   	push   %esi
405756:	8b 75 0c             	mov    0xc(%ebp),%esi
405759:	56                   	push   %esi
40575a:	e8 d5 dd 00 00       	call   0x413534
40575f:	59                   	pop    %ecx
405760:	8b 4d 08             	mov    0x8(%ebp),%ecx
405763:	85 c0                	test   %eax,%eax
405765:	8b c1                	mov    %ecx,%eax
405767:	89 31                	mov    %esi,(%ecx)
405769:	5e                   	pop    %esi
40576a:	74 09                	je     0x405775
40576c:	c7 41 04 2c 50 41 00 	movl   $0x41502c,0x4(%ecx)
405773:	eb 07                	jmp    0x40577c
405775:	c7 41 04 28 50 41 00 	movl   $0x415028,0x4(%ecx)
40577c:	5d                   	pop    %ebp
40577d:	c2 08 00             	ret    $0x8
405780:	8b ff                	mov    %edi,%edi
405782:	55                   	push   %ebp
405783:	8b ec                	mov    %esp,%ebp
405785:	56                   	push   %esi
405786:	33 f6                	xor    %esi,%esi
405788:	85 d2                	test   %edx,%edx
40578a:	74 08                	je     0x405794
40578c:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
405792:	76 05                	jbe    0x405799
405794:	be 57 00 07 80       	mov    $0x80070057,%esi
405799:	85 f6                	test   %esi,%esi
40579b:	78 41                	js     0x4057de
40579d:	8b f2                	mov    %edx,%esi
40579f:	85 d2                	test   %edx,%edx
4057a1:	74 28                	je     0x4057cb
4057a3:	57                   	push   %edi
4057a4:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
4057a9:	2b fa                	sub    %edx,%edi
4057ab:	8b 55 08             	mov    0x8(%ebp),%edx
4057ae:	2b d1                	sub    %ecx,%edx
4057b0:	8d 04 37             	lea    (%edi,%esi,1),%eax
4057b3:	85 c0                	test   %eax,%eax
4057b5:	74 0f                	je     0x4057c6
4057b7:	8a 04 0a             	mov    (%edx,%ecx,1),%al
4057ba:	84 c0                	test   %al,%al
4057bc:	74 08                	je     0x4057c6
4057be:	88 01                	mov    %al,(%ecx)
4057c0:	41                   	inc    %ecx
4057c1:	83 ee 01             	sub    $0x1,%esi
4057c4:	75 ea                	jne    0x4057b0
4057c6:	5f                   	pop    %edi
4057c7:	85 f6                	test   %esi,%esi
4057c9:	75 01                	jne    0x4057cc
4057cb:	49                   	dec    %ecx
4057cc:	f7 de                	neg    %esi
4057ce:	1b f6                	sbb    %esi,%esi
4057d0:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
4057d6:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
4057dc:	eb 04                	jmp    0x4057e2
4057de:	85 d2                	test   %edx,%edx
4057e0:	74 03                	je     0x4057e5
4057e2:	c6 01 00             	movb   $0x0,(%ecx)
4057e5:	8b c6                	mov    %esi,%eax
4057e7:	5e                   	pop    %esi
4057e8:	5d                   	pop    %ebp
4057e9:	c2 04 00             	ret    $0x4
4057ec:	8b ff                	mov    %edi,%edi
4057ee:	55                   	push   %ebp
4057ef:	8b ec                	mov    %esp,%ebp
4057f1:	56                   	push   %esi
4057f2:	57                   	push   %edi
4057f3:	8b f9                	mov    %ecx,%edi
4057f5:	be 04 01 00 00       	mov    $0x104,%esi
4057fa:	8b ce                	mov    %esi,%ecx
4057fc:	8b c7                	mov    %edi,%eax
4057fe:	66 83 38 00          	cmpw   $0x0,(%eax)
405802:	74 08                	je     0x40580c
405804:	83 c0 02             	add    $0x2,%eax
405807:	83 e9 01             	sub    $0x1,%ecx
40580a:	75 f2                	jne    0x4057fe
40580c:	8b c1                	mov    %ecx,%eax
40580e:	f7 d8                	neg    %eax
405810:	1b c0                	sbb    %eax,%eax
405812:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
405817:	05 57 00 07 80       	add    $0x80070057,%eax
40581c:	85 c9                	test   %ecx,%ecx
40581e:	74 26                	je     0x405846
405820:	8b d1                	mov    %ecx,%edx
405822:	8d 81 fc fe ff ff    	lea    -0x104(%ecx),%eax
405828:	f7 da                	neg    %edx
40582a:	51                   	push   %ecx
40582b:	ff 75 08             	push   0x8(%ebp)
40582e:	1b d2                	sbb    %edx,%edx
405830:	23 d0                	and    %eax,%edx
405832:	03 d6                	add    %esi,%edx
405834:	2b f1                	sub    %ecx,%esi
405836:	51                   	push   %ecx
405837:	03 f6                	add    %esi,%esi
405839:	f7 d9                	neg    %ecx
40583b:	1b c9                	sbb    %ecx,%ecx
40583d:	23 ce                	and    %esi,%ecx
40583f:	03 cf                	add    %edi,%ecx
405841:	e8 81 00 00 00       	call   0x4058c7
405846:	5f                   	pop    %edi
405847:	5e                   	pop    %esi
405848:	5d                   	pop    %ebp
405849:	c2 04 00             	ret    $0x4
40584c:	8b ff                	mov    %edi,%edi
40584e:	55                   	push   %ebp
40584f:	8b ec                	mov    %esp,%ebp
405851:	33 c0                	xor    %eax,%eax
405853:	85 d2                	test   %edx,%edx
405855:	74 08                	je     0x40585f
405857:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40585d:	76 05                	jbe    0x405864
40585f:	b8 57 00 07 80       	mov    $0x80070057,%eax
405864:	85 c0                	test   %eax,%eax
405866:	78 0e                	js     0x405876
405868:	ff 75 0c             	push   0xc(%ebp)
40586b:	ff 75 08             	push   0x8(%ebp)
40586e:	51                   	push   %ecx
40586f:	e8 a3 00 00 00       	call   0x405917
405874:	eb 09                	jmp    0x40587f
405876:	85 d2                	test   %edx,%edx
405878:	74 05                	je     0x40587f
40587a:	33 d2                	xor    %edx,%edx
40587c:	66 89 11             	mov    %dx,(%ecx)
40587f:	5d                   	pop    %ebp
405880:	c2 08 00             	ret    $0x8
405883:	8b ff                	mov    %edi,%edi
405885:	55                   	push   %ebp
405886:	8b ec                	mov    %esp,%ebp
405888:	8b 45 0c             	mov    0xc(%ebp),%eax
40588b:	33 c9                	xor    %ecx,%ecx
40588d:	85 c0                	test   %eax,%eax
40588f:	74 07                	je     0x405898
405891:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
405896:	76 05                	jbe    0x40589d
405898:	b9 57 00 07 80       	mov    $0x80070057,%ecx
40589d:	85 c9                	test   %ecx,%ecx
40589f:	78 16                	js     0x4058b7
4058a1:	8d 4d 14             	lea    0x14(%ebp),%ecx
4058a4:	8b d0                	mov    %eax,%edx
4058a6:	51                   	push   %ecx
4058a7:	ff 75 10             	push   0x10(%ebp)
4058aa:	51                   	push   %ecx
4058ab:	8b 4d 08             	mov    0x8(%ebp),%ecx
4058ae:	e8 64 00 00 00       	call   0x405917
4058b3:	8b c8                	mov    %eax,%ecx
4058b5:	eb 0c                	jmp    0x4058c3
4058b7:	85 c0                	test   %eax,%eax
4058b9:	74 08                	je     0x4058c3
4058bb:	8b 45 08             	mov    0x8(%ebp),%eax
4058be:	33 d2                	xor    %edx,%edx
4058c0:	66 89 10             	mov    %dx,(%eax)
4058c3:	8b c1                	mov    %ecx,%eax
4058c5:	5d                   	pop    %ebp
4058c6:	c3                   	ret
4058c7:	8b ff                	mov    %edi,%edi
4058c9:	55                   	push   %ebp
4058ca:	8b ec                	mov    %esp,%ebp
4058cc:	85 d2                	test   %edx,%edx
4058ce:	74 2b                	je     0x4058fb
4058d0:	8b 45 0c             	mov    0xc(%ebp),%eax
4058d3:	56                   	push   %esi
4058d4:	57                   	push   %edi
4058d5:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
4058da:	2b c1                	sub    %ecx,%eax
4058dc:	85 f6                	test   %esi,%esi
4058de:	74 15                	je     0x4058f5
4058e0:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
4058e4:	66 85 ff             	test   %di,%di
4058e7:	74 0c                	je     0x4058f5
4058e9:	66 89 39             	mov    %di,(%ecx)
4058ec:	83 c1 02             	add    $0x2,%ecx
4058ef:	4e                   	dec    %esi
4058f0:	83 ea 01             	sub    $0x1,%edx
4058f3:	75 e7                	jne    0x4058dc
4058f5:	5f                   	pop    %edi
4058f6:	5e                   	pop    %esi
4058f7:	85 d2                	test   %edx,%edx
4058f9:	75 03                	jne    0x4058fe
4058fb:	83 e9 02             	sub    $0x2,%ecx
4058fe:	f7 da                	neg    %edx
405900:	1b d2                	sbb    %edx,%edx
405902:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
405908:	33 c0                	xor    %eax,%eax
40590a:	66 89 01             	mov    %ax,(%ecx)
40590d:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
405913:	5d                   	pop    %ebp
405914:	c2 0c 00             	ret    $0xc
405917:	8b ff                	mov    %edi,%edi
405919:	55                   	push   %ebp
40591a:	8b ec                	mov    %esp,%ebp
40591c:	53                   	push   %ebx
40591d:	56                   	push   %esi
40591e:	57                   	push   %edi
40591f:	ff 75 10             	push   0x10(%ebp)
405922:	8d 72 ff             	lea    -0x1(%edx),%esi
405925:	8b f9                	mov    %ecx,%edi
405927:	ff 75 0c             	push   0xc(%ebp)
40592a:	33 db                	xor    %ebx,%ebx
40592c:	56                   	push   %esi
40592d:	57                   	push   %edi
40592e:	ff 15 c8 b2 41 00    	call   *0x41b2c8
405934:	83 c4 10             	add    $0x10,%esp
405937:	85 c0                	test   %eax,%eax
405939:	78 08                	js     0x405943
40593b:	3b c6                	cmp    %esi,%eax
40593d:	77 04                	ja     0x405943
40593f:	75 0d                	jne    0x40594e
405941:	eb 05                	jmp    0x405948
405943:	bb 7a 00 07 80       	mov    $0x8007007a,%ebx
405948:	33 c0                	xor    %eax,%eax
40594a:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
40594e:	5f                   	pop    %edi