44f670:	0f 84 d1 01 00 00    	je     0x44f847
44f676:	2b 46 04             	sub    0x4(%esi),%eax
44f679:	8d 14 38             	lea    (%eax,%edi,1),%edx
44f67c:	33 c0                	xor    %eax,%eax
44f67e:	85 d2                	test   %edx,%edx
44f680:	89 55 0c             	mov    %edx,0xc(%ebp)
44f683:	0f 48 c2             	cmovs  %edx,%eax
44f686:	03 46 04             	add    0x4(%esi),%eax
44f689:	83 46 44 ff          	addl   $0xffffffff,0x44(%esi)
44f68d:	89 06                	mov    %eax,(%esi)
44f68f:	8b 46 10             	mov    0x10(%esi),%eax
44f692:	89 45 08             	mov    %eax,0x8(%ebp)
44f695:	89 56 10             	mov    %edx,0x10(%esi)
44f698:	0f 88 a9 01 00 00    	js     0x44f847
44f69e:	56                   	push   %esi
44f69f:	57                   	push   %edi
44f6a0:	8b cb                	mov    %ebx,%ecx
44f6a2:	e8 19 e3 ff ff       	call   0x44d9c0
44f6a7:	8b d0                	mov    %eax,%edx
44f6a9:	85 d2                	test   %edx,%edx
44f6ab:	0f 84 96 01 00 00    	je     0x44f847
44f6b1:	ff 46 44             	incl   0x44(%esi)
44f6b4:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
44f6b8:	0f 85 89 01 00 00    	jne    0x44f847
44f6be:	8b 46 10             	mov    0x10(%esi),%eax
44f6c1:	33 c9                	xor    %ecx,%ecx
44f6c3:	2b 45 0c             	sub    0xc(%ebp),%eax
44f6c6:	03 45 08             	add    0x8(%ebp),%eax
44f6c9:	89 46 10             	mov    %eax,0x10(%esi)
44f6cc:	0f 48 c8             	cmovs  %eax,%ecx
44f6cf:	03 4e 04             	add    0x4(%esi),%ecx
44f6d2:	89 0e                	mov    %ecx,(%esi)
44f6d4:	e9 d9 fe ff ff       	jmp    0x44f5b2
44f6d9:	80 fb 12             	cmp    $0x12,%bl
44f6dc:	0f 85 70 01 00 00    	jne    0x44f852
44f6e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44f6e5:	e8 66 2b 00 00       	call   0x452250
44f6ea:	8b d8                	mov    %eax,%ebx
44f6ec:	0f b6 07             	movzbl (%edi),%eax
44f6ef:	3d 80 00 00 00       	cmp    $0x80,%eax
44f6f4:	73 03                	jae    0x44f6f9
44f6f6:	47                   	inc    %edi
44f6f7:	eb 14                	jmp    0x44f70d
44f6f9:	50                   	push   %eax
44f6fa:	8d 45 dc             	lea    -0x24(%ebp),%eax
44f6fd:	57                   	push   %edi
44f6fe:	50                   	push   %eax
44f6ff:	e8 6c 01 01 00       	call   0x45f870
44f704:	8b 7d dc             	mov    -0x24(%ebp),%edi
44f707:	83 c4 0c             	add    $0xc,%esp
44f70a:	8b 45 e0             	mov    -0x20(%ebp),%eax
44f70d:	85 ff                	test   %edi,%edi
44f70f:	0f 84 32 01 00 00    	je     0x44f847
44f715:	2b 46 04             	sub    0x4(%esi),%eax
44f718:	8d 14 38             	lea    (%eax,%edi,1),%edx
44f71b:	33 c0                	xor    %eax,%eax
44f71d:	85 d2                	test   %edx,%edx
44f71f:	89 55 0c             	mov    %edx,0xc(%ebp)
44f722:	0f 48 c2             	cmovs  %edx,%eax
44f725:	03 46 04             	add    0x4(%esi),%eax
44f728:	83 46 44 ff          	addl   $0xffffffff,0x44(%esi)
44f72c:	89 06                	mov    %eax,(%esi)
44f72e:	8b 46 10             	mov    0x10(%esi),%eax
44f731:	89 45 08             	mov    %eax,0x8(%ebp)
44f734:	89 56 10             	mov    %edx,0x10(%esi)
44f737:	0f 88 0a 01 00 00    	js     0x44f847
44f73d:	56                   	push   %esi
44f73e:	57                   	push   %edi
44f73f:	8b cb                	mov    %ebx,%ecx
44f741:	e8 aa e6 ff ff       	call   0x44ddf0
44f746:	e9 5c ff ff ff       	jmp    0x44f6a7
44f74b:	80 fb 1a             	cmp    $0x1a,%bl
44f74e:	0f 85 fe 00 00 00    	jne    0x44f852
44f754:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44f757:	e8 94 2a 00 00       	call   0x4521f0
44f75c:	8b d8                	mov    %eax,%ebx
44f75e:	0f b6 07             	movzbl (%edi),%eax
44f761:	3d 80 00 00 00       	cmp    $0x80,%eax
44f766:	73 03                	jae    0x44f76b
44f768:	47                   	inc    %edi
44f769:	eb 14                	jmp    0x44f77f
44f76b:	50                   	push   %eax
44f76c:	8d 45 d4             	lea    -0x2c(%ebp),%eax
44f76f:	57                   	push   %edi
44f770:	50                   	push   %eax
44f771:	e8 fa 00 01 00       	call   0x45f870
44f776:	8b 7d d4             	mov    -0x2c(%ebp),%edi
44f779:	83 c4 0c             	add    $0xc,%esp
44f77c:	8b 45 d8             	mov    -0x28(%ebp),%eax
44f77f:	85 ff                	test   %edi,%edi
44f781:	0f 84 c0 00 00 00    	je     0x44f847
44f787:	2b 46 04             	sub    0x4(%esi),%eax
44f78a:	8d 14 38             	lea    (%eax,%edi,1),%edx
44f78d:	33 c0                	xor    %eax,%eax
44f78f:	85 d2                	test   %edx,%edx
44f791:	89 55 0c             	mov    %edx,0xc(%ebp)
44f794:	0f 48 c2             	cmovs  %edx,%eax
44f797:	03 46 04             	add    0x4(%esi),%eax
44f79a:	83 46 44 ff          	addl   $0xffffffff,0x44(%esi)
44f79e:	89 06                	mov    %eax,(%esi)
44f7a0:	8b 46 10             	mov    0x10(%esi),%eax
44f7a3:	89 45 08             	mov    %eax,0x8(%ebp)
44f7a6:	89 56 10             	mov    %edx,0x10(%esi)
44f7a9:	0f 88 98 00 00 00    	js     0x44f847
44f7af:	56                   	push   %esi
44f7b0:	57                   	push   %edi
44f7b1:	8b cb                	mov    %ebx,%ecx
44f7b3:	e8 28 f2 ff ff       	call   0x44e9e0
44f7b8:	e9 ea fe ff ff       	jmp    0x44f6a7
44f7bd:	80 fb 22             	cmp    $0x22,%bl
44f7c0:	0f 85 8c 00 00 00    	jne    0x44f852
44f7c6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44f7c9:	e8 e2 24 00 00       	call   0x451cb0
44f7ce:	8b d8                	mov    %eax,%ebx
44f7d0:	0f b6 07             	movzbl (%edi),%eax
44f7d3:	3d 80 00 00 00       	cmp    $0x80,%eax
44f7d8:	73 03                	jae    0x44f7dd
44f7da:	47                   	inc    %edi
44f7db:	eb 14                	jmp    0x44f7f1
44f7dd:	50                   	push   %eax
44f7de:	8d 45 cc             	lea    -0x34(%ebp),%eax
44f7e1:	57                   	push   %edi
44f7e2:	50                   	push   %eax
44f7e3:	e8 88 00 01 00       	call   0x45f870
44f7e8:	8b 7d cc             	mov    -0x34(%ebp),%edi
44f7eb:	83 c4 0c             	add    $0xc,%esp
44f7ee:	8b 45 d0             	mov    -0x30(%ebp),%eax
44f7f1:	85 ff                	test   %edi,%edi
44f7f3:	74 52                	je     0x44f847
44f7f5:	2b 46 04             	sub    0x4(%esi),%eax
44f7f8:	8d 14 38             	lea    (%eax,%edi,1),%edx
44f7fb:	33 c0                	xor    %eax,%eax
44f7fd:	85 d2                	test   %edx,%edx
44f7ff:	89 55 0c             	mov    %edx,0xc(%ebp)
44f802:	0f 48 c2             	cmovs  %edx,%eax
44f805:	03 46 04             	add    0x4(%esi),%eax
44f808:	83 46 44 ff          	addl   $0xffffffff,0x44(%esi)
44f80c:	89 06                	mov    %eax,(%esi)
44f80e:	8b 46 10             	mov    0x10(%esi),%eax
44f811:	89 45 08             	mov    %eax,0x8(%ebp)
44f814:	89 56 10             	mov    %edx,0x10(%esi)
44f817:	78 2e                	js     0x44f847
44f819:	56                   	push   %esi
44f81a:	57                   	push   %edi
44f81b:	8b cb                	mov    %ebx,%ecx
44f81d:	e8 1e a6 ff ff       	call   0x449e40
44f822:	e9 80 fe ff ff       	jmp    0x44f6a7
44f827:	80 fb 2a             	cmp    $0x2a,%bl
44f82a:	75 26                	jne    0x44f852
44f82c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44f82f:	e8 1c 24 00 00       	call   0x451c50
44f834:	57                   	push   %edi
44f835:	50                   	push   %eax
44f836:	8b ce                	mov    %esi,%ecx
44f838:	e8 53 11 00 00       	call   0x450990
44f83d:	8b d0                	mov    %eax,%edx
44f83f:	85 d2                	test   %edx,%edx
44f841:	0f 85 6b fd ff ff    	jne    0x44f5b2
44f847:	33 c0                	xor    %eax,%eax
44f849:	5f                   	pop    %edi
44f84a:	5e                   	pop    %esi
44f84b:	5b                   	pop    %ebx
44f84c:	8b e5                	mov    %ebp,%esp
44f84e:	5d                   	pop    %ebp
44f84f:	c2 08 00             	ret    $0x8
44f852:	8b c3                	mov    %ebx,%eax
44f854:	24 07                	and    $0x7,%al
44f856:	3c 04                	cmp    $0x4,%al
44f858:	74 53                	je     0x44f8ad
44f85a:	85 db                	test   %ebx,%ebx
44f85c:	74 4f                	je     0x44f8ad
44f85e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
44f861:	83 c1 04             	add    $0x4,%ecx
44f864:	f6 01 01             	testb  $0x1,(%ecx)
44f867:	74 18                	je     0x44f881
44f869:	8b 01                	mov    (%ecx),%eax
44f86b:	56                   	push   %esi
44f86c:	83 e0 fc             	and    $0xfffffffc,%eax
44f86f:	57                   	push   %edi
44f870:	83 c0 04             	add    $0x4,%eax
44f873:	50                   	push   %eax
44f874:	6a 00                	push   $0x0
44f876:	53                   	push   %ebx
44f877:	e8 34 17 01 00       	call   0x460fb0
44f87c:	83 c4 14             	add    $0x14,%esp
44f87f:	eb bc                	jmp    0x44f83d
44f881:	e8 aa 13 00 00       	call   0x450c30
44f886:	56                   	push   %esi
44f887:	57                   	push   %edi
44f888:	50                   	push   %eax
44f889:	6a 00                	push   $0x0
44f88b:	53                   	push   %ebx
44f88c:	e8 1f 17 01 00       	call   0x460fb0
44f891:	83 c4 14             	add    $0x14,%esp
44f894:	eb a7                	jmp    0x44f83d
44f896:	85 c0                	test   %eax,%eax
44f898:	7e 08                	jle    0x44f8a2
44f89a:	33 c0                	xor    %eax,%eax
44f89c:	39 46 08             	cmp    %eax,0x8(%esi)
44f89f:	0f 44 d0             	cmove  %eax,%edx
44f8a2:	5f                   	pop    %edi
44f8a3:	5e                   	pop    %esi
44f8a4:	8b c2                	mov    %edx,%eax
44f8a6:	5b                   	pop    %ebx
44f8a7:	8b e5                	mov    %ebp,%esp
44f8a9:	5d                   	pop    %ebp
44f8aa:	c2 08 00             	ret    $0x8
44f8ad:	8d 4b ff             	lea    -0x1(%ebx),%ecx
44f8b0:	8b c7                	mov    %edi,%eax
44f8b2:	5f                   	pop    %edi
44f8b3:	89 4e 3c             	mov    %ecx,0x3c(%esi)
44f8b6:	5e                   	pop    %esi
44f8b7:	5b                   	pop    %ebx
44f8b8:	8b e5                	mov    %ebp,%esp
44f8ba:	5d                   	pop    %ebp
44f8bb:	c2 08 00             	ret    $0x8
44f8be:	8b ff                	mov    %edi,%edi
44f8c0:	3a f6                	cmp    %dh,%dh
44f8c2:	44                   	inc    %esp
44f8c3:	00 d9                	add    %bl,%cl
44f8c5:	f6 44 00 4b f7       	testb  $0xf7,0x4b(%eax,%eax,1)
44f8ca:	44                   	inc    %esp
44f8cb:	00 bd f7 44 00 27    	add    %bh,0x270044f7(%ebp)
44f8d1:	f8                   	clc
44f8d2:	44                   	inc    %esp
44f8d3:	00 cc                	add    %cl,%ah
44f8d5:	cc                   	int3
44f8d6:	cc                   	int3
44f8d7:	cc                   	int3
44f8d8:	cc                   	int3
44f8d9:	cc                   	int3
44f8da:	cc                   	int3
44f8db:	cc                   	int3
44f8dc:	cc                   	int3
44f8dd:	cc                   	int3
44f8de:	cc                   	int3
44f8df:	cc                   	int3
44f8e0:	55                   	push   %ebp
44f8e1:	8b ec                	mov    %esp,%ebp
44f8e3:	83 ec 08             	sub    $0x8,%esp
44f8e6:	53                   	push   %ebx
44f8e7:	56                   	push   %esi
44f8e8:	8b f1                	mov    %ecx,%esi
44f8ea:	57                   	push   %edi
44f8eb:	8b 7d 0c             	mov    0xc(%ebp),%edi
44f8ee:	89 75 fc             	mov    %esi,-0x4(%ebp)
44f8f1:	8b 46 10             	mov    0x10(%esi),%eax
44f8f4:	48                   	dec    %eax
44f8f5:	83 f8 04             	cmp    $0x4,%eax
44f8f8:	0f 87 9f 02 00 00    	ja     0x44fb9d
44f8fe:	ff 24 85 d4 fb 44 00 	jmp    *0x44fbd4(,%eax,4)
44f905:	8b 45 08             	mov    0x8(%ebp),%eax
44f908:	3b 07                	cmp    (%edi),%eax
44f90a:	72 08                	jb     0x44f914
44f90c:	50                   	push   %eax
44f90d:	8b cf                	mov    %edi,%ecx
44f90f:	e8 5c 9c 00 00       	call   0x459570
44f914:	8b 5e 08             	mov    0x8(%esi),%ebx
44f917:	50                   	push   %eax
44f918:	6a 0a                	push   $0xa
44f91a:	e8 a1 11 00 00       	call   0x450ac0
44f91f:	8b 4b 18             	mov    0x18(%ebx),%ecx
44f922:	50                   	push   %eax
44f923:	51                   	push   %ecx
44f924:	e8 97 11 00 00       	call   0x450ac0
44f929:	8b c8                	mov    %eax,%ecx
44f92b:	33 f6                	xor    %esi,%esi
44f92d:	8b 43 0c             	mov    0xc(%ebx),%eax
44f930:	83 c4 10             	add    $0x10,%esp
44f933:	89 75 08             	mov    %esi,0x8(%ebp)
44f936:	89 45 0c             	mov    %eax,0xc(%ebp)
44f939:	85 c0                	test   %eax,%eax
44f93b:	74 44                	je     0x44f981
44f93d:	8d 49 00             	lea    0x0(%ecx),%ecx
44f940:	3b 0f                	cmp    (%edi),%ecx
44f942:	72 0a                	jb     0x44f94e
44f944:	51                   	push   %ecx
44f945:	8b cf                	mov    %edi,%ecx
44f947:	e8 24 9c 00 00       	call   0x459570
44f94c:	8b c8                	mov    %eax,%ecx
44f94e:	8b 43 14             	mov    0x14(%ebx),%eax
44f951:	51                   	push   %ecx
44f952:	6a 0a                	push   $0xa
44f954:	8b 74 b0 04          	mov    0x4(%eax,%esi,4),%esi
44f958:	e8 63 11 00 00       	call   0x450ac0
44f95d:	8b 56 0c             	mov    0xc(%esi),%edx
44f960:	50                   	push   %eax
44f961:	52                   	push   %edx
44f962:	e8 59 11 00 00       	call   0x450ac0
44f967:	83 c4 10             	add    $0x10,%esp
44f96a:	8b ce                	mov    %esi,%ecx
44f96c:	57                   	push   %edi
44f96d:	50                   	push   %eax
44f96e:	e8 cd 93 ff ff       	call   0x448d40
44f973:	8b 75 08             	mov    0x8(%ebp),%esi
44f976:	8b c8                	mov    %eax,%ecx
44f978:	46                   	inc    %esi
44f979:	89 75 08             	mov    %esi,0x8(%ebp)
44f97c:	3b 75 0c             	cmp    0xc(%ebp),%esi
44f97f:	72 bf                	jb     0x44f940
44f981:	f6 43 04 01          	testb  $0x1,0x4(%ebx)
44f985:	0f 84 15 02 00 00    	je     0x44fba0
44f98b:	8b 43 04             	mov    0x4(%ebx),%eax
44f98e:	83 e0 fc             	and    $0xfffffffc,%eax
44f991:	57                   	push   %edi
44f992:	83 c0 04             	add    $0x4,%eax
44f995:	51                   	push   %ecx
44f996:	50                   	push   %eax
44f997:	e8 a4 2b 02 00       	call   0x472540
44f99c:	83 c4 0c             	add    $0xc,%esp
44f99f:	8b c8                	mov    %eax,%ecx
44f9a1:	e9 fa 01 00 00       	jmp    0x44fba0
44f9a6:	8b 45 08             	mov    0x8(%ebp),%eax
44f9a9:	3b 07                	cmp    (%edi),%eax
44f9ab:	72 08                	jb     0x44f9b5
44f9ad:	50                   	push   %eax
44f9ae:	8b cf                	mov    %edi,%ecx
44f9b0:	e8 bb 9b 00 00       	call   0x459570
44f9b5:	8b 5e 08             	mov    0x8(%esi),%ebx
44f9b8:	50                   	push   %eax
44f9b9:	6a 12                	push   $0x12
44f9bb:	e8 00 11 00 00       	call   0x450ac0
44f9c0:	8b 4b 0c             	mov    0xc(%ebx),%ecx
44f9c3:	50                   	push   %eax
44f9c4:	51                   	push   %ecx
44f9c5:	e8 f6 10 00 00       	call   0x450ac0
44f9ca:	8b c8                	mov    %eax,%ecx
44f9cc:	83 c4 10             	add    $0x10,%esp
44f9cf:	8b 43 08             	mov    0x8(%ebx),%eax
44f9d2:	89 45 08             	mov    %eax,0x8(%ebp)
44f9d5:	a8 02                	test   $0x2,%al
44f9d7:	74 28                	je     0x44fa01
44f9d9:	3b 0f                	cmp    (%edi),%ecx
44f9db:	72 0a                	jb     0x44f9e7
44f9dd:	51                   	push   %ecx
44f9de:	8b cf                	mov    %edi,%ecx
44f9e0:	e8 8b 9b 00 00       	call   0x459570
44f9e5:	8b c8                	mov    %eax,%ecx
44f9e7:	8b 73 14             	mov    0x14(%ebx),%esi
44f9ea:	51                   	push   %ecx
44f9eb:	6a 08                	push   $0x8
44f9ed:	e8 ce 10 00 00       	call   0x450ac0
44f9f2:	50                   	push   %eax
44f9f3:	56                   	push   %esi
44f9f4:	e8 c7 10 00 00       	call   0x450ac0
44f9f9:	8b c8                	mov    %eax,%ecx
44f9fb:	83 c4 10             	add    $0x10,%esp
44f9fe:	8b 45 08             	mov    0x8(%ebp),%eax
44fa01:	a8 04                	test   $0x4,%al
44fa03:	74 2c                	je     0x44fa31