5fe642:	89 45 bc             	mov    %eax,-0x44(%ebp)
5fe645:	d9 45 bc             	flds   -0x44(%ebp)
5fe648:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe64b:	dc 58 58             	fcompl 0x58(%eax)
5fe64e:	df e0                	fnstsw %ax
5fe650:	9e                   	sahf
5fe651:	77 0a                	ja     0x5fe65d
5fe653:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe656:	dd 40 58             	fldl   0x58(%eax)
5fe659:	d9 5d bc             	fstps  -0x44(%ebp)
5fe65c:	9b d9 45 bc          	flds   -0x44(%ebp)
5fe660:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe663:	dc 58 60             	fcompl 0x60(%eax)
5fe666:	df e0                	fnstsw %ax
5fe668:	9e                   	sahf
5fe669:	72 0a                	jb     0x5fe675
5fe66b:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe66e:	dd 40 60             	fldl   0x60(%eax)
5fe671:	d9 5d bc             	fstps  -0x44(%ebp)
5fe674:	9b d9 45 bc          	flds   -0x44(%ebp)
5fe678:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe67b:	dc 60 58             	fsubl  0x58(%eax)
5fe67e:	dc 75 c0             	fdivl  -0x40(%ebp)
5fe681:	d8 0d f4 e6 5f 00    	fmuls  0x5fe6f4
5fe687:	e8 40 46 e0 ff       	call   0x402ccc
5fe68c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5fe68f:	33 c9                	xor    %ecx,%ecx
5fe691:	8a 4a 02             	mov    0x2(%edx),%cl
5fe694:	51                   	push   %ecx
5fe695:	8b c8                	mov    %eax,%ecx
5fe697:	5f                   	pop    %edi
5fe698:	2b cf                	sub    %edi,%ecx
5fe69a:	0f af ce             	imul   %esi,%ecx
5fe69d:	c1 e9 12             	shr    $0x12,%ecx
5fe6a0:	00 4a 02             	add    %cl,0x2(%edx)
5fe6a3:	33 c9                	xor    %ecx,%ecx
5fe6a5:	8a 4a 01             	mov    0x1(%edx),%cl
5fe6a8:	51                   	push   %ecx
5fe6a9:	8b c8                	mov    %eax,%ecx
5fe6ab:	5f                   	pop    %edi
5fe6ac:	2b cf                	sub    %edi,%ecx
5fe6ae:	0f af ce             	imul   %esi,%ecx
5fe6b1:	c1 e9 12             	shr    $0x12,%ecx
5fe6b4:	00 4a 01             	add    %cl,0x1(%edx)
5fe6b7:	33 c9                	xor    %ecx,%ecx
5fe6b9:	8a 0a                	mov    (%edx),%cl
5fe6bb:	51                   	push   %ecx
5fe6bc:	59                   	pop    %ecx
5fe6bd:	2b c1                	sub    %ecx,%eax
5fe6bf:	0f af c6             	imul   %esi,%eax
5fe6c2:	c1 e8 12             	shr    $0x12,%eax
5fe6c5:	00 02                	add    %al,(%edx)
5fe6c7:	83 45 e4 03          	addl   $0x3,-0x1c(%ebp)
5fe6cb:	83 c3 04             	add    $0x4,%ebx
5fe6ce:	ff 4d b4             	decl   -0x4c(%ebp)
5fe6d1:	0f 85 4d ff ff ff    	jne    0x5fe624
5fe6d7:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
5fe6db:	ff 45 ec             	incl   -0x14(%ebp)
5fe6de:	ff 4d b8             	decl   -0x48(%ebp)
5fe6e1:	0f 85 49 fe ff ff    	jne    0x5fe530
5fe6e7:	5f                   	pop    %edi
5fe6e8:	5e                   	pop    %esi
5fe6e9:	5b                   	pop    %ebx
5fe6ea:	8b e5                	mov    %ebp,%esp
5fe6ec:	5d                   	pop    %ebp
5fe6ed:	c2 40 00             	ret    $0x40
5fe6f0:	00 00                	add    %al,(%eax)
5fe6f2:	00 00                	add    %al,(%eax)
5fe6f4:	00 00                	add    %al,(%eax)
5fe6f6:	7f 43                	jg     0x5fe73b
5fe6f8:	55                   	push   %ebp
5fe6f9:	8b ec                	mov    %esp,%ebp
5fe6fb:	83 c4 e0             	add    $0xffffffe0,%esp
5fe6fe:	53                   	push   %ebx
5fe6ff:	56                   	push   %esi
5fe700:	57                   	push   %edi
5fe701:	89 55 f8             	mov    %edx,-0x8(%ebp)
5fe704:	89 45 fc             	mov    %eax,-0x4(%ebp)
5fe707:	8b 45 38             	mov    0x38(%ebp),%eax
5fe70a:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fe70d:	8b 45 34             	mov    0x34(%ebp),%eax
5fe710:	89 45 f4             	mov    %eax,-0xc(%ebp)
5fe713:	8b 45 1c             	mov    0x1c(%ebp),%eax
5fe716:	8b 55 14             	mov    0x14(%ebp),%edx
5fe719:	2b d0                	sub    %eax,%edx
5fe71b:	7c 6d                	jl     0x5fe78a
5fe71d:	42                   	inc    %edx
5fe71e:	89 55 e0             	mov    %edx,-0x20(%ebp)
5fe721:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fe724:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fe727:	8b 55 ec             	mov    -0x14(%ebp),%edx
5fe72a:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
5fe72d:	8b 45 20             	mov    0x20(%ebp),%eax
5fe730:	8d 04 40             	lea    (%eax,%eax,2),%eax
5fe733:	03 d8                	add    %eax,%ebx
5fe735:	8b 45 f4             	mov    -0xc(%ebp),%eax
5fe738:	8b 10                	mov    (%eax),%edx
5fe73a:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe73d:	8b 08                	mov    (%eax),%ecx
5fe73f:	ff 11                	call   *(%ecx)
5fe741:	89 45 e8             	mov    %eax,-0x18(%ebp)
5fe744:	8b 7d f0             	mov    -0x10(%ebp),%edi
5fe747:	8b 45 20             	mov    0x20(%ebp),%eax
5fe74a:	8b 75 18             	mov    0x18(%ebp),%esi
5fe74d:	2b f0                	sub    %eax,%esi
5fe74f:	7c 2d                	jl     0x5fe77e
5fe751:	46                   	inc    %esi
5fe752:	8b 07                	mov    (%edi),%eax
5fe754:	8b 55 e8             	mov    -0x18(%ebp),%edx
5fe757:	8b 04 82             	mov    (%edx,%eax,4),%eax
5fe75a:	8d 55 e5             	lea    -0x1b(%ebp),%edx
5fe75d:	e8 3e 68 fd ff       	call   0x5d4fa0
5fe762:	8b c3                	mov    %ebx,%eax
5fe764:	8a 55 e7             	mov    -0x19(%ebp),%dl
5fe767:	88 50 02             	mov    %dl,0x2(%eax)
5fe76a:	8a 55 e6             	mov    -0x1a(%ebp),%dl
5fe76d:	88 50 01             	mov    %dl,0x1(%eax)
5fe770:	8a 55 e5             	mov    -0x1b(%ebp),%dl
5fe773:	88 10                	mov    %dl,(%eax)
5fe775:	83 c3 03             	add    $0x3,%ebx
5fe778:	83 c7 04             	add    $0x4,%edi
5fe77b:	4e                   	dec    %esi
5fe77c:	75 d4                	jne    0x5fe752
5fe77e:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
5fe782:	ff 45 ec             	incl   -0x14(%ebp)
5fe785:	ff 4d e0             	decl   -0x20(%ebp)
5fe788:	75 9a                	jne    0x5fe724
5fe78a:	5f                   	pop    %edi
5fe78b:	5e                   	pop    %esi
5fe78c:	5b                   	pop    %ebx
5fe78d:	8b e5                	mov    %ebp,%esp
5fe78f:	5d                   	pop    %ebp
5fe790:	c2 34 00             	ret    $0x34
5fe793:	90                   	nop
5fe794:	55                   	push   %ebp
5fe795:	8b ec                	mov    %esp,%ebp
5fe797:	83 c4 d8             	add    $0xffffffd8,%esp
5fe79a:	53                   	push   %ebx
5fe79b:	56                   	push   %esi
5fe79c:	57                   	push   %edi
5fe79d:	89 55 f8             	mov    %edx,-0x8(%ebp)
5fe7a0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5fe7a3:	8b 45 38             	mov    0x38(%ebp),%eax
5fe7a6:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fe7a9:	8b 45 34             	mov    0x34(%ebp),%eax
5fe7ac:	89 45 f4             	mov    %eax,-0xc(%ebp)
5fe7af:	8b 45 1c             	mov    0x1c(%ebp),%eax
5fe7b2:	8b 55 14             	mov    0x14(%ebp),%edx
5fe7b5:	2b d0                	sub    %eax,%edx
5fe7b7:	0f 8c db 00 00 00    	jl     0x5fe898
5fe7bd:	42                   	inc    %edx
5fe7be:	89 55 d8             	mov    %edx,-0x28(%ebp)
5fe7c1:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fe7c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fe7c7:	8b 55 ec             	mov    -0x14(%ebp),%edx
5fe7ca:	8b 04 90             	mov    (%eax,%edx,4),%eax
5fe7cd:	89 45 e8             	mov    %eax,-0x18(%ebp)
5fe7d0:	8b 45 20             	mov    0x20(%ebp),%eax
5fe7d3:	8d 04 40             	lea    (%eax,%eax,2),%eax
5fe7d6:	01 45 e8             	add    %eax,-0x18(%ebp)
5fe7d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
5fe7dc:	8b 10                	mov    (%eax),%edx
5fe7de:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe7e1:	8b 08                	mov    (%eax),%ecx
5fe7e3:	ff 11                	call   *(%ecx)
5fe7e5:	89 45 e0             	mov    %eax,-0x20(%ebp)
5fe7e8:	80 7d 40 00          	cmpb   $0x0,0x40(%ebp)
5fe7ec:	74 16                	je     0x5fe804
5fe7ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe7f1:	e8 e2 90 ff ff       	call   0x5f78d8
5fe7f6:	8b 55 f4             	mov    -0xc(%ebp),%edx
5fe7f9:	8b 12                	mov    (%edx),%edx
5fe7fb:	8b 08                	mov    (%eax),%ecx
5fe7fd:	ff 11                	call   *(%ecx)
5fe7ff:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5fe802:	eb 06                	jmp    0x5fe80a
5fe804:	8b 45 3c             	mov    0x3c(%ebp),%eax
5fe807:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5fe80a:	8b 75 f0             	mov    -0x10(%ebp),%esi
5fe80d:	8b 45 20             	mov    0x20(%ebp),%eax
5fe810:	8b 5d 18             	mov    0x18(%ebp),%ebx
5fe813:	2b d8                	sub    %eax,%ebx
5fe815:	7c 71                	jl     0x5fe888
5fe817:	43                   	inc    %ebx
5fe818:	8b 06                	mov    (%esi),%eax
5fe81a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5fe81d:	0f b6 14 02          	movzbl (%edx,%eax,1),%edx
5fe821:	8b 45 44             	mov    0x44(%ebp),%eax
5fe824:	e8 f3 ab fa ff       	call   0x5a941c
5fe829:	8b f8                	mov    %eax,%edi
5fe82b:	c1 e7 0a             	shl    $0xa,%edi
5fe82e:	8b 06                	mov    (%esi),%eax
5fe830:	8b 55 e0             	mov    -0x20(%ebp),%edx
5fe833:	8b 04 82             	mov    (%edx,%eax,4),%eax
5fe836:	8d 55 dd             	lea    -0x23(%ebp),%edx
5fe839:	e8 62 67 fd ff       	call   0x5d4fa0
5fe83e:	8b 45 e8             	mov    -0x18(%ebp),%eax
5fe841:	33 d2                	xor    %edx,%edx
5fe843:	8a 55 df             	mov    -0x21(%ebp),%dl
5fe846:	33 c9                	xor    %ecx,%ecx
5fe848:	8a 48 02             	mov    0x2(%eax),%cl
5fe84b:	2b d1                	sub    %ecx,%edx
5fe84d:	0f af d7             	imul   %edi,%edx
5fe850:	c1 ea 12             	shr    $0x12,%edx
5fe853:	00 50 02             	add    %dl,0x2(%eax)
5fe856:	33 d2                	xor    %edx,%edx
5fe858:	8a 55 de             	mov    -0x22(%ebp),%dl
5fe85b:	33 c9                	xor    %ecx,%ecx
5fe85d:	8a 48 01             	mov    0x1(%eax),%cl
5fe860:	2b d1                	sub    %ecx,%edx
5fe862:	0f af d7             	imul   %edi,%edx
5fe865:	c1 ea 12             	shr    $0x12,%edx
5fe868:	00 50 01             	add    %dl,0x1(%eax)
5fe86b:	33 d2                	xor    %edx,%edx
5fe86d:	8a 55 dd             	mov    -0x23(%ebp),%dl
5fe870:	33 c9                	xor    %ecx,%ecx
5fe872:	8a 08                	mov    (%eax),%cl
5fe874:	2b d1                	sub    %ecx,%edx
5fe876:	0f af d7             	imul   %edi,%edx
5fe879:	c1 ea 12             	shr    $0x12,%edx
5fe87c:	00 10                	add    %dl,(%eax)
5fe87e:	83 45 e8 03          	addl   $0x3,-0x18(%ebp)
5fe882:	83 c6 04             	add    $0x4,%esi
5fe885:	4b                   	dec    %ebx
5fe886:	75 90                	jne    0x5fe818
5fe888:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
5fe88c:	ff 45 ec             	incl   -0x14(%ebp)
5fe88f:	ff 4d d8             	decl   -0x28(%ebp)
5fe892:	0f 85 2c ff ff ff    	jne    0x5fe7c4
5fe898:	5f                   	pop    %edi
5fe899:	5e                   	pop    %esi
5fe89a:	5b                   	pop    %ebx
5fe89b:	8b e5                	mov    %ebp,%esp
5fe89d:	5d                   	pop    %ebp
5fe89e:	c2 40 00             	ret    $0x40
5fe8a1:	8d 40 00             	lea    0x0(%eax),%eax
5fe8a4:	55                   	push   %ebp
5fe8a5:	8b ec                	mov    %esp,%ebp
5fe8a7:	83 c4 e0             	add    $0xffffffe0,%esp
5fe8aa:	53                   	push   %ebx
5fe8ab:	56                   	push   %esi
5fe8ac:	57                   	push   %edi
5fe8ad:	89 55 f8             	mov    %edx,-0x8(%ebp)
5fe8b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5fe8b3:	8b 45 38             	mov    0x38(%ebp),%eax
5fe8b6:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fe8b9:	8b 75 34             	mov    0x34(%ebp),%esi
5fe8bc:	83 cb ff             	or     $0xffffffff,%ebx
5fe8bf:	8b 01                	mov    (%ecx),%eax
5fe8c1:	8b 10                	mov    (%eax),%edx
5fe8c3:	ff 52 14             	call   *0x14(%edx)
5fe8c6:	89 45 e8             	mov    %eax,-0x18(%ebp)
5fe8c9:	89 75 f4             	mov    %esi,-0xc(%ebp)
5fe8cc:	8b 45 1c             	mov    0x1c(%ebp),%eax
5fe8cf:	8b 55 14             	mov    0x14(%ebp),%edx
5fe8d2:	2b d0                	sub    %eax,%edx
5fe8d4:	0f 8c ad 00 00 00    	jl     0x5fe987
5fe8da:	42                   	inc    %edx
5fe8db:	89 55 e0             	mov    %edx,-0x20(%ebp)
5fe8de:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fe8e1:	8b 45 f4             	mov    -0xc(%ebp),%eax
5fe8e4:	8b 00                	mov    (%eax),%eax
5fe8e6:	3b d8                	cmp    %eax,%ebx
5fe8e8:	0f 94 c2             	sete   %dl
5fe8eb:	22 55 08             	and    0x8(%ebp),%dl
5fe8ee:	74 1d                	je     0x5fe90d
5fe8f0:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fe8f3:	8b 55 ec             	mov    -0x14(%ebp),%edx
5fe8f6:	8b 54 90 fc          	mov    -0x4(%eax,%edx,4),%edx
5fe8fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fe8fd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5fe900:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5fe903:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5fe906:	e8 b5 95 e0 ff       	call   0x407ec0
5fe90b:	eb 6a                	jmp    0x5fe977
5fe90d:	8b 55 f8             	mov    -0x8(%ebp),%edx
5fe910:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5fe913:	8b 1c 8a             	mov    (%edx,%ecx,4),%ebx
5fe916:	8b 55 20             	mov    0x20(%ebp),%edx
5fe919:	8d 14 52             	lea    (%edx,%edx,2),%edx
5fe91c:	03 da                	add    %edx,%ebx
5fe91e:	8b d0                	mov    %eax,%edx
5fe920:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fe923:	8b 08                	mov    (%eax),%ecx
5fe925:	ff 11                	call   *(%ecx)
5fe927:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5fe92a:	8b 45 f0             	mov    -0x10(%ebp),%eax
5fe92d:	8b 55 20             	mov    0x20(%ebp),%edx
5fe930:	8b 4d 18             	mov    0x18(%ebp),%ecx
5fe933:	2b ca                	sub    %edx,%ecx
5fe935:	7c 3b                	jl     0x5fe972
5fe937:	41                   	inc    %ecx
5fe938:	87 d1                	xchg   %edx,%ecx
5fe93a:	8b 30                	mov    (%eax),%esi
5fe93c:	8b ce                	mov    %esi,%ecx
5fe93e:	c1 e9 03             	shr    $0x3,%ecx
5fe941:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5fe944:	8a 0c 0f             	mov    (%edi,%ecx,1),%cl
5fe947:	83 e6 07             	and    $0x7,%esi
5fe94a:	22 8e ec 54 6a 00    	and    0x6a54ec(%esi),%cl
5fe950:	75 0e                	jne    0x5fe960
5fe952:	66 c7 03 00 00       	movw   $0x0,(%ebx)
5fe957:	83 c3 02             	add    $0x2,%ebx
5fe95a:	c6 03 00             	movb   $0x0,(%ebx)
5fe95d:	43                   	inc    %ebx
5fe95e:	eb 0c                	jmp    0x5fe96c
5fe960:	66 c7 03 ff ff       	movw   $0xffff,(%ebx)
5fe965:	83 c3 02             	add    $0x2,%ebx
5fe968:	c6 03 ff             	movb   $0xff,(%ebx)
5fe96b:	43                   	inc    %ebx
5fe96c:	83 c0 04             	add    $0x4,%eax
5fe96f:	4a                   	dec    %edx
5fe970:	75 c8                	jne    0x5fe93a
5fe972:	8b 45 f4             	mov    -0xc(%ebp),%eax
5fe975:	8b 18                	mov    (%eax),%ebx
5fe977:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
5fe97b:	ff 45 ec             	incl   -0x14(%ebp)
5fe97e:	ff 4d e0             	decl   -0x20(%ebp)
5fe981:	0f 85 5a ff ff ff    	jne    0x5fe8e1
5fe987:	5f                   	pop    %edi
5fe988:	5e                   	pop    %esi
5fe989:	5b                   	pop    %ebx
5fe98a:	8b e5                	mov    %ebp,%esp
5fe98c:	5d                   	pop    %ebp
5fe98d:	c2 34 00             	ret    $0x34
5fe990:	55                   	push   %ebp
5fe991:	8b ec                	mov    %esp,%ebp
5fe993:	83 c4 cc             	add    $0xffffffcc,%esp
5fe996:	53                   	push   %ebx
5fe997:	56                   	push   %esi
5fe998:	57                   	push   %edi
5fe999:	89 55 f8             	mov    %edx,-0x8(%ebp)
5fe99c:	89 45 fc             	mov    %eax,-0x4(%ebp)
5fe99f:	8b 45 38             	mov    0x38(%ebp),%eax
5fe9a2:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fe9a5:	8b 75 34             	mov    0x34(%ebp),%esi
5fe9a8:	83 cb ff             	or     $0xffffffff,%ebx
5fe9ab:	8b 01                	mov    (%ecx),%eax
5fe9ad:	8b 10                	mov    (%eax),%edx
5fe9af:	ff 52 14             	call   *0x14(%edx)
5fe9b2:	89 45 e8             	mov    %eax,-0x18(%ebp)
5fe9b5:	89 75 f4             	mov    %esi,-0xc(%ebp)
5fe9b8:	8b 45 1c             	mov    0x1c(%ebp),%eax
5fe9bb:	8b 55 14             	mov    0x14(%ebp),%edx
5fe9be:	2b d0                	sub    %eax,%edx
5fe9c0:	0f 8c 5f 01 00 00    	jl     0x5feb25
5fe9c6:	42                   	inc    %edx
5fe9c7:	89 55 cc             	mov    %edx,-0x34(%ebp)
5fe9ca:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fe9cd:	8b 45 f4             	mov    -0xc(%ebp),%eax