4ff5b5:	89 45 c8             	mov    %eax,-0x38(%ebp)
4ff5b8:	eb 07                	jmp    0x4ff5c1
4ff5ba:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4ff5c1:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4ff5c5:	74 5d                	je     0x4ff624
4ff5c7:	8b 45 f4             	mov    -0xc(%ebp),%eax
4ff5ca:	8b 00                	mov    (%eax),%eax
4ff5cc:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
4ff5d0:	75 52                	jne    0x4ff624
4ff5d2:	b8 00 04 00 00       	mov    $0x400,%eax
4ff5d7:	66 09 46 0a          	or     %ax,0xa(%esi)
4ff5db:	33 f6                	xor    %esi,%esi
4ff5dd:	8b 41 08             	mov    0x8(%ecx),%eax
4ff5e0:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4ff5e3:	8a 08                	mov    (%eax),%cl
4ff5e5:	84 c9                	test   %cl,%cl
4ff5e7:	74 3b                	je     0x4ff624
4ff5e9:	8b 7d d8             	mov    -0x28(%ebp),%edi
4ff5ec:	8b d8                	mov    %eax,%ebx
4ff5ee:	66 90                	xchg   %ax,%ax
4ff5f0:	0f b6 d1             	movzbl %cl,%edx
4ff5f3:	0f b6 82 40 1b 6b 00 	movzbl 0x6b1b40(%edx),%eax
4ff5fa:	24 20                	and    $0x20,%al
4ff5fc:	f6 d0                	not    %al
4ff5fe:	22 c1                	and    %cl,%al
4ff600:	88 03                	mov    %al,(%ebx)
4ff602:	8b 45 c8             	mov    -0x38(%ebp),%eax
4ff605:	8b 48 08             	mov    0x8(%eax),%ecx
4ff608:	0f b6 82 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%eax
4ff60f:	88 04 0e             	mov    %al,(%esi,%ecx,1)
4ff612:	46                   	inc    %esi
4ff613:	8b 5f 08             	mov    0x8(%edi),%ebx
4ff616:	03 de                	add    %esi,%ebx
4ff618:	8a 0b                	mov    (%ebx),%cl
4ff61a:	84 c9                	test   %cl,%cl
4ff61c:	75 d2                	jne    0x4ff5f0
4ff61e:	8b 7d a8             	mov    -0x58(%ebp),%edi
4ff621:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4ff624:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4ff627:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
4ff62b:	75 4e                	jne    0x4ff67b
4ff62d:	8b 45 c8             	mov    -0x38(%ebp),%eax
4ff630:	8b 50 08             	mov    0x8(%eax),%edx
4ff633:	85 d2                	test   %edx,%edx
4ff635:	75 04                	jne    0x4ff63b
4ff637:	33 c9                	xor    %ecx,%ecx
4ff639:	eb 14                	jmp    0x4ff64f
4ff63b:	8b ca                	mov    %edx,%ecx
4ff63d:	8d 71 01             	lea    0x1(%ecx),%esi
4ff640:	8a 01                	mov    (%ecx),%al
4ff642:	41                   	inc    %ecx
4ff643:	84 c0                	test   %al,%al
4ff645:	75 f9                	jne    0x4ff640
4ff647:	2b ce                	sub    %esi,%ecx
4ff649:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
4ff64f:	8a 44 0a ff          	mov    -0x1(%edx,%ecx,1),%al
4ff653:	03 d1                	add    %ecx,%edx
4ff655:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4ff659:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4ff65c:	74 10                	je     0x4ff66e
4ff65e:	33 f6                	xor    %esi,%esi
4ff660:	3c 40                	cmp    $0x40,%al
4ff662:	0f b6 c0             	movzbl %al,%eax
4ff665:	0f 44 ce             	cmove  %esi,%ecx
4ff668:	8a 80 20 2a 6b 00    	mov    0x6b2a20(%eax),%al
4ff66e:	fe c0                	inc    %al
4ff670:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4ff673:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4ff676:	88 42 ff             	mov    %al,-0x1(%edx)
4ff679:	eb 06                	jmp    0x4ff681
4ff67b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4ff67e:	89 45 0c             	mov    %eax,0xc(%ebp)
4ff681:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4ff685:	b8 40 1c 6b 00       	mov    $0x6b1c40,%eax
4ff68a:	be 14 bb 6b 00       	mov    $0x6bbb14,%esi
4ff68f:	0f 44 f0             	cmove  %eax,%esi
4ff692:	8b 45 b0             	mov    -0x50(%ebp),%eax
4ff695:	89 75 b4             	mov    %esi,-0x4c(%ebp)
4ff698:	85 c0                	test   %eax,%eax
4ff69a:	74 10                	je     0x4ff6ac
4ff69c:	6a 00                	push   $0x0
4ff69e:	6a 00                	push   $0x0
4ff6a0:	50                   	push   %eax
4ff6a1:	51                   	push   %ecx
4ff6a2:	e8 b9 11 00 00       	call   0x500860
4ff6a7:	83 c4 10             	add    $0x10,%esp
4ff6aa:	eb 02                	jmp    0x4ff6ae
4ff6ac:	33 c0                	xor    %eax,%eax
4ff6ae:	ff 75 d8             	push   -0x28(%ebp)
4ff6b1:	56                   	push   %esi
4ff6b2:	8b 75 f4             	mov    -0xc(%ebp),%esi
4ff6b5:	50                   	push   %eax
4ff6b6:	56                   	push   %esi
4ff6b7:	e8 44 3e 02 00       	call   0x523500
4ff6bc:	83 c4 0c             	add    $0xc,%esp
4ff6bf:	50                   	push   %eax
4ff6c0:	6a 39                	push   $0x39
4ff6c2:	56                   	push   %esi
4ff6c3:	e8 48 29 03 00       	call   0x532010
4ff6c8:	83 c4 10             	add    $0x10,%esp
4ff6cb:	85 c0                	test   %eax,%eax
4ff6cd:	74 11                	je     0x4ff6e0
4ff6cf:	8b 4f 04             	mov    0x4(%edi),%ecx
4ff6d2:	83 e1 01             	and    $0x1,%ecx
4ff6d5:	09 48 04             	or     %ecx,0x4(%eax)
4ff6d8:	66 8b 4f 24          	mov    0x24(%edi),%cx
4ff6dc:	66 89 48 24          	mov    %cx,0x24(%eax)
4ff6e0:	68 03 01 00 00       	push   $0x103
4ff6e5:	50                   	push   %eax
4ff6e6:	53                   	push   %ebx
4ff6e7:	e8 24 0d 06 00       	call   0x560410
4ff6ec:	50                   	push   %eax
4ff6ed:	53                   	push   %ebx
4ff6ee:	ff 75 08             	push   0x8(%ebp)
4ff6f1:	89 45 b8             	mov    %eax,-0x48(%ebp)
4ff6f4:	e8 97 f9 ff ff       	call   0x4ff090
4ff6f9:	8b 45 b0             	mov    -0x50(%ebp),%eax
4ff6fc:	83 c4 18             	add    $0x18,%esp
4ff6ff:	85 c0                	test   %eax,%eax
4ff701:	74 12                	je     0x4ff715
4ff703:	6a 00                	push   $0x0
4ff705:	6a 00                	push   $0x0
4ff707:	50                   	push   %eax
4ff708:	ff 75 ec             	push   -0x14(%ebp)
4ff70b:	e8 50 11 00 00       	call   0x500860
4ff710:	83 c4 10             	add    $0x10,%esp
4ff713:	eb 02                	jmp    0x4ff717
4ff715:	33 c0                	xor    %eax,%eax
4ff717:	ff 75 c8             	push   -0x38(%ebp)
4ff71a:	ff 75 b4             	push   -0x4c(%ebp)
4ff71d:	50                   	push   %eax
4ff71e:	56                   	push   %esi
4ff71f:	e8 dc 3d 02 00       	call   0x523500
4ff724:	83 c4 0c             	add    $0xc,%esp
4ff727:	50                   	push   %eax
4ff728:	6a 38                	push   $0x38
4ff72a:	56                   	push   %esi
4ff72b:	e8 e0 28 03 00       	call   0x532010
4ff730:	83 c4 10             	add    $0x10,%esp
4ff733:	85 c0                	test   %eax,%eax
4ff735:	74 11                	je     0x4ff748
4ff737:	8b 4f 04             	mov    0x4(%edi),%ecx
4ff73a:	83 e1 01             	and    $0x1,%ecx
4ff73d:	09 48 04             	or     %ecx,0x4(%eax)
4ff740:	66 8b 4f 24          	mov    0x24(%edi),%cx
4ff744:	66 89 48 24          	mov    %cx,0x24(%eax)
4ff748:	68 03 01 00 00       	push   $0x103
4ff74d:	50                   	push   %eax
4ff74e:	53                   	push   %ebx
4ff74f:	e8 bc 0c 06 00       	call   0x560410
4ff754:	50                   	push   %eax
4ff755:	53                   	push   %ebx
4ff756:	ff 75 08             	push   0x8(%ebp)
4ff759:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4ff75c:	e8 2f f9 ff ff       	call   0x4ff090
4ff761:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff764:	83 c4 18             	add    $0x18,%esp
4ff767:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4ff76b:	8b 45 f8             	mov    -0x8(%ebp),%eax
4ff76e:	8d 34 01             	lea    (%ecx,%eax,1),%esi
4ff771:	89 75 f0             	mov    %esi,-0x10(%ebp)
4ff774:	74 57                	je     0x4ff7cd
4ff776:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4ff779:	8b 7d 10             	mov    0x10(%ebp),%edi
4ff77c:	8d 14 49             	lea    (%ecx,%ecx,2),%edx
4ff77f:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff782:	03 d2                	add    %edx,%edx
4ff784:	89 7c d1 10          	mov    %edi,0x10(%ecx,%edx,8)
4ff788:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff78b:	0f b7 44 01 08       	movzwl 0x8(%ecx,%eax,1),%eax
4ff790:	66 89 44 d1 08       	mov    %ax,0x8(%ecx,%edx,8)
4ff795:	8b 43 14             	mov    0x14(%ebx),%eax
4ff798:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4ff79b:	fe 44 08 0e          	incb   0xe(%eax,%ecx,1)
4ff79f:	8b cf                	mov    %edi,%ecx
4ff7a1:	8b 45 b4             	mov    -0x4c(%ebp),%eax
4ff7a4:	8b 7d a8             	mov    -0x58(%ebp),%edi
4ff7a7:	8d 14 40             	lea    (%eax,%eax,2),%edx
4ff7aa:	8b 43 14             	mov    0x14(%ebx),%eax
4ff7ad:	03 d2                	add    %edx,%edx
4ff7af:	89 4c d0 10          	mov    %ecx,0x10(%eax,%edx,8)
4ff7b3:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff7b6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4ff7b9:	0f b7 44 01 08       	movzwl 0x8(%ecx,%eax,1),%eax
4ff7be:	66 89 44 d1 08       	mov    %ax,0x8(%ecx,%edx,8)
4ff7c3:	8b 43 14             	mov    0x14(%ebx),%eax
4ff7c6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4ff7c9:	fe 44 08 0e          	incb   0xe(%eax,%ecx,1)
4ff7cd:	80 7b 08 2c          	cmpb   $0x2c,0x8(%ebx)
4ff7d1:	0f 85 e2 02 00 00    	jne    0x4ffab9
4ff7d7:	8d 45 0c             	lea    0xc(%ebp),%eax
4ff7da:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
4ff7e1:	50                   	push   %eax
4ff7e2:	8d 45 a8             	lea    -0x58(%ebp),%eax
4ff7e5:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
4ff7ec:	50                   	push   %eax
4ff7ed:	8d 45 ff             	lea    -0x1(%ebp),%eax
4ff7f0:	50                   	push   %eax
4ff7f1:	57                   	push   %edi
4ff7f2:	ff 75 ec             	push   -0x14(%ebp)
4ff7f5:	e8 c6 7e 00 00       	call   0x5076c0
4ff7fa:	83 c4 14             	add    $0x14,%esp
4ff7fd:	85 c0                	test   %eax,%eax
4ff7ff:	0f 8e b5 01 00 00    	jle    0x4ff9ba
4ff805:	8b 75 0c             	mov    0xc(%ebp),%esi
4ff808:	8b 4d a8             	mov    -0x58(%ebp),%ecx
4ff80b:	89 75 b0             	mov    %esi,-0x50(%ebp)
4ff80e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4ff811:	48                   	dec    %eax
4ff812:	89 45 a8             	mov    %eax,-0x58(%ebp)
4ff815:	85 f6                	test   %esi,%esi
4ff817:	74 14                	je     0x4ff82d
4ff819:	56                   	push   %esi
4ff81a:	ff 75 e8             	push   -0x18(%ebp)
4ff81d:	e8 7e 43 05 00       	call   0x553ba0
4ff822:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4ff825:	83 c4 08             	add    $0x8,%esp
4ff828:	89 55 c0             	mov    %edx,-0x40(%ebp)
4ff82b:	eb 11                	jmp    0x4ff83e
4ff82d:	0f 57 c0             	xorps  %xmm0,%xmm0
4ff830:	66 0f 13 45 a0       	movlpd %xmm0,-0x60(%ebp)
4ff835:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4ff838:	89 45 c0             	mov    %eax,-0x40(%ebp)
4ff83b:	8b 45 a0             	mov    -0x60(%ebp),%eax
4ff83e:	89 45 bc             	mov    %eax,-0x44(%ebp)
4ff841:	85 c9                	test   %ecx,%ecx
4ff843:	74 0e                	je     0x4ff853
4ff845:	51                   	push   %ecx
4ff846:	ff 75 e8             	push   -0x18(%ebp)
4ff849:	e8 52 43 05 00       	call   0x553ba0
4ff84e:	83 c4 08             	add    $0x8,%esp
4ff851:	eb 0e                	jmp    0x4ff861
4ff853:	0f 57 c0             	xorps  %xmm0,%xmm0
4ff856:	66 0f 13 45 a0       	movlpd %xmm0,-0x60(%ebp)
4ff85b:	8b 55 a4             	mov    -0x5c(%ebp),%edx
4ff85e:	8b 45 a0             	mov    -0x60(%ebp),%eax
4ff861:	23 45 bc             	and    -0x44(%ebp),%eax
4ff864:	23 55 c0             	and    -0x40(%ebp),%edx
4ff867:	0b c2                	or     %edx,%eax
4ff869:	0f 85 30 01 00 00    	jne    0x4ff99f
4ff86f:	85 f6                	test   %esi,%esi
4ff871:	74 10                	je     0x4ff883
4ff873:	50                   	push   %eax
4ff874:	50                   	push   %eax
4ff875:	56                   	push   %esi
4ff876:	ff 75 ec             	push   -0x14(%ebp)
4ff879:	e8 e2 0f 00 00       	call   0x500860
4ff87e:	83 c4 10             	add    $0x10,%esp
4ff881:	eb 02                	jmp    0x4ff885
4ff883:	33 c0                	xor    %eax,%eax
4ff885:	89 45 b8             	mov    %eax,-0x48(%ebp)
4ff888:	8b 45 f4             	mov    -0xc(%ebp),%eax
4ff88b:	6a 00                	push   $0x0
4ff88d:	6a 34                	push   $0x34
4ff88f:	ff 30                	push   (%eax)
4ff891:	e8 4a 1b 02 00       	call   0x5213e0
4ff896:	8b f0                	mov    %eax,%esi
4ff898:	83 c4 0c             	add    $0xc,%esp
4ff89b:	85 f6                	test   %esi,%esi
4ff89d:	74 53                	je     0x4ff8f2
4ff89f:	6a 34                	push   $0x34
4ff8a1:	6a 00                	push   $0x0
4ff8a3:	56                   	push   %esi
4ff8a4:	e8 57 41 0e 00       	call   0x5e3a00
4ff8a9:	83 c8 ff             	or     $0xffffffff,%eax
4ff8ac:	c6 06 2e             	movb   $0x2e,(%esi)
4ff8af:	66 89 46 22          	mov    %ax,0x22(%esi)
4ff8b3:	83 c4 0c             	add    $0xc,%esp
4ff8b6:	8b 45 b8             	mov    -0x48(%ebp),%eax
4ff8b9:	85 c0                	test   %eax,%eax
4ff8bb:	74 0e                	je     0x4ff8cb
4ff8bd:	89 46 10             	mov    %eax,0x10(%esi)
4ff8c0:	8b 40 04             	mov    0x4(%eax),%eax
4ff8c3:	25 04 01 20 00       	and    $0x200104,%eax
4ff8c8:	09 46 04             	or     %eax,0x4(%esi)
4ff8cb:	56                   	push   %esi
4ff8cc:	e8 ef 1d 00 00       	call   0x5016c0
4ff8d1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4ff8d4:	83 c4 04             	add    $0x4,%esp
4ff8d7:	8b 01                	mov    (%ecx),%eax
4ff8d9:	8b 40 78             	mov    0x78(%eax),%eax
4ff8dc:	39 46 18             	cmp    %eax,0x18(%esi)
4ff8df:	7e 26                	jle    0x4ff907
4ff8e1:	50                   	push   %eax
4ff8e2:	68 30 90 6b 00       	push   $0x6b9030
4ff8e7:	51                   	push   %ecx
4ff8e8:	e8 73 39 02 00       	call   0x523260
4ff8ed:	83 c4 0c             	add    $0xc,%esp
4ff8f0:	eb 15                	jmp    0x4ff907
4ff8f2:	8b 45 b8             	mov    -0x48(%ebp),%eax
4ff8f5:	85 c0                	test   %eax,%eax
4ff8f7:	74 0e                	je     0x4ff907
4ff8f9:	50                   	push   %eax
4ff8fa:	8b 45 f4             	mov    -0xc(%ebp),%eax
4ff8fd:	ff 30                	push   (%eax)
4ff8ff:	e8 ac 6e 02 00       	call   0x5267b0
4ff904:	83 c4 08             	add    $0x8,%esp
4ff907:	f6 47 04 01          	testb  $0x1,0x4(%edi)
4ff90b:	74 10                	je     0x4ff91d
4ff90d:	85 f6                	test   %esi,%esi
4ff90f:	74 0c                	je     0x4ff91d
4ff911:	83 4e 04 01          	orl    $0x1,0x4(%esi)
4ff915:	66 8b 47 24          	mov    0x24(%edi),%ax
4ff919:	66 89 46 24          	mov    %ax,0x24(%esi)
4ff91d:	6a 03                	push   $0x3
4ff91f:	56                   	push   %esi
4ff920:	53                   	push   %ebx
4ff921:	e8 ea 0a 06 00       	call   0x560410
4ff926:	8b 73 14             	mov    0x14(%ebx),%esi
4ff929:	83 c4 0c             	add    $0xc,%esp
4ff92c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4ff92f:	8d 14 40             	lea    (%eax,%eax,2),%edx
4ff932:	8b 45 bc             	mov    -0x44(%ebp),%eax
4ff935:	c1 e2 04             	shl    $0x4,%edx
4ff938:	03 f2                	add    %edx,%esi
4ff93a:	89 46 20             	mov    %eax,0x20(%esi)
4ff93d:	8b 45 c0             	mov    -0x40(%ebp),%eax
4ff940:	89 46 24             	mov    %eax,0x24(%esi)
4ff943:	8b 41 1c             	mov    0x1c(%ecx),%eax
4ff946:	89 46 14             	mov    %eax,0x14(%esi)
4ff949:	0f bf 41 20          	movswl 0x20(%ecx),%eax
4ff94d:	8b 4d 10             	mov    0x10(%ebp),%ecx
4ff950:	89 46 1c             	mov    %eax,0x1c(%esi)
4ff953:	b8 40 00 00 00       	mov    $0x40,%eax
4ff958:	66 89 46 0c          	mov    %ax,0xc(%esi)
4ff95c:	8a 45 ff             	mov    -0x1(%ebp),%al
4ff95f:	88 46 0f             	mov    %al,0xf(%esi)
4ff962:	8b 43 14             	mov    0x14(%ebx),%eax
4ff965:	89 4c 10 10          	mov    %ecx,0x10(%eax,%edx,1)
4ff969:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff96c:	8b 45 f8             	mov    -0x8(%ebp),%eax
4ff96f:	66 8b 44 01 08       	mov    0x8(%ecx,%eax,1),%ax
4ff974:	66 89 44 11 08       	mov    %ax,0x8(%ecx,%edx,1)
4ff979:	8b 43 14             	mov    0x14(%ebx),%eax
4ff97c:	8b 55 f8             	mov    -0x8(%ebp),%edx
4ff97f:	fe 44 10 0e          	incb   0xe(%eax,%edx,1)
4ff983:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff986:	03 ca                	add    %edx,%ecx
4ff988:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4ff98b:	8b 41 28             	mov    0x28(%ecx),%eax
4ff98e:	66 83 49 0a 08       	orw    $0x8,0xa(%ecx)
4ff993:	89 46 28             	mov    %eax,0x28(%esi)
4ff996:	8b 41 2c             	mov    0x2c(%ecx),%eax
4ff999:	89 46 2c             	mov    %eax,0x2c(%esi)
4ff99c:	8b 75 b0             	mov    -0x50(%ebp),%esi
4ff99f:	8b 45 0c             	mov    0xc(%ebp),%eax
4ff9a2:	8b ce                	mov    %esi,%ecx
4ff9a4:	8b f0                	mov    %eax,%esi
4ff9a6:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4ff9a9:	8b 45 a8             	mov    -0x58(%ebp),%eax