453747:	58                   	pop    %eax
453748:	3b d0                	cmp    %eax,%edx
45374a:	0f 85 a2 02 00 00    	jne    0x4539f2
453750:	85 ff                	test   %edi,%edi
453752:	0f 84 ee 0e 00 00    	je     0x454646
453758:	8b 55 28             	mov    0x28(%ebp),%edx
45375b:	03 7a 40             	add    0x40(%edx),%edi
45375e:	e9 92 02 00 00       	jmp    0x4539f5
453763:	8b 75 fc             	mov    -0x4(%ebp),%esi
453766:	6a 3c                	push   $0x3c
453768:	5f                   	pop    %edi
453769:	0f b7 46 02          	movzwl 0x2(%esi),%eax
45376d:	66 3b c7             	cmp    %di,%ax
453770:	74 1c                	je     0x45378e
453772:	66 3b 85 20 ff ff ff 	cmp    -0xe0(%ebp),%ax
453779:	74 13                	je     0x45378e
45377b:	66 3b 85 d8 fe ff ff 	cmp    -0x128(%ebp),%ax
453782:	74 0a                	je     0x45378e
453784:	6a 45                	push   $0x45
453786:	58                   	pop    %eax
453787:	89 02                	mov    %eax,(%edx)
453789:	e9 ec e6 ff ff       	jmp    0x451e7a
45378e:	83 c6 02             	add    $0x2,%esi
453791:	89 5d e8             	mov    %ebx,-0x18(%ebp)
453794:	89 75 fc             	mov    %esi,-0x4(%ebp)
453797:	0f b7 06             	movzwl (%esi),%eax
45379a:	66 3b c7             	cmp    %di,%ax
45379d:	75 07                	jne    0x4537a6
45379f:	6a 3e                	push   $0x3e
4537a1:	58                   	pop    %eax
4537a2:	8b d8                	mov    %eax,%ebx
4537a4:	eb 14                	jmp    0x4537ba
4537a6:	6a 27                	push   $0x27
4537a8:	33 db                	xor    %ebx,%ebx
4537aa:	59                   	pop    %ecx
4537ab:	66 3b c1             	cmp    %cx,%ax
4537ae:	6a 7d                	push   $0x7d
4537b0:	0f 95 c3             	setne  %bl
4537b3:	4b                   	dec    %ebx
4537b4:	83 e3 aa             	and    $0xffffffaa,%ebx
4537b7:	58                   	pop    %eax
4537b8:	03 d8                	add    %eax,%ebx
4537ba:	6a 30                	push   $0x30
4537bc:	59                   	pop    %ecx
4537bd:	6a 02                	push   $0x2
4537bf:	58                   	pop    %eax
4537c0:	03 f0                	add    %eax,%esi
4537c2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4537c5:	89 75 dc             	mov    %esi,-0x24(%ebp)
4537c8:	89 75 c8             	mov    %esi,-0x38(%ebp)
4537cb:	0f b7 06             	movzwl (%esi),%eax
4537ce:	66 3b c1             	cmp    %cx,%ax
4537d1:	72 13                	jb     0x4537e6
4537d3:	6a 39                	push   $0x39
4537d5:	59                   	pop    %ecx
4537d6:	66 3b c1             	cmp    %cx,%ax
4537d9:	77 0b                	ja     0x4537e6
4537db:	c7 02 54 00 00 00    	movl   $0x54,(%edx)
4537e1:	e9 cc 0e 00 00       	jmp    0x4546b2
4537e6:	bf ff 00 00 00       	mov    $0xff,%edi
4537eb:	66 3b c7             	cmp    %di,%ax
4537ee:	77 25                	ja     0x453815
4537f0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4537f3:	6a 02                	push   $0x2
4537f5:	5a                   	pop    %edx
4537f6:	8b 49 0c             	mov    0xc(%ecx),%ecx
4537f9:	0f b7 c0             	movzwl %ax,%eax
4537fc:	f6 04 08 10          	testb  $0x10,(%eax,%ecx,1)
453800:	74 0d                	je     0x45380f
453802:	03 f2                	add    %edx,%esi
453804:	89 75 fc             	mov    %esi,-0x4(%ebp)
453807:	0f b7 06             	movzwl (%esi),%eax
45380a:	66 3b c7             	cmp    %di,%ax
45380d:	76 ea                	jbe    0x4537f9
45380f:	8b 55 0c             	mov    0xc(%ebp),%edx
453812:	89 75 dc             	mov    %esi,-0x24(%ebp)
453815:	8b 45 c8             	mov    -0x38(%ebp),%eax
453818:	8b fe                	mov    %esi,%edi
45381a:	2b f8                	sub    %eax,%edi
45381c:	d1 ff                	sar    $1,%edi
45381e:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
453822:	74 77                	je     0x45389b
453824:	85 ff                	test   %edi,%edi
453826:	0f 84 2a 0e 00 00    	je     0x454656
45382c:	66 39 1e             	cmp    %bx,(%esi)
45382f:	0f 85 1d 0e 00 00    	jne    0x454652
453835:	6a 20                	push   $0x20
453837:	59                   	pop    %ecx
453838:	3b f9                	cmp    %ecx,%edi
45383a:	0f 8f 0e 0e 00 00    	jg     0x45464e
453840:	8b 55 28             	mov    0x28(%ebp),%edx
453843:	33 c9                	xor    %ecx,%ecx
453845:	89 4d ec             	mov    %ecx,-0x14(%ebp)
453848:	8b 5a 30             	mov    0x30(%edx),%ebx
45384b:	8b 72 28             	mov    0x28(%edx),%esi
45384e:	85 db                	test   %ebx,%ebx
453850:	7e 28                	jle    0x45387a
453852:	3b 7e 04             	cmp    0x4(%esi),%edi
453855:	75 15                	jne    0x45386c
453857:	8b 16                	mov    (%esi),%edx
453859:	8b c8                	mov    %eax,%ecx
45385b:	57                   	push   %edi
45385c:	e8 97 b1 03 00       	call   0x48e9f8
453861:	59                   	pop    %ecx
453862:	8b 4d ec             	mov    -0x14(%ebp),%ecx
453865:	85 c0                	test   %eax,%eax
453867:	74 0e                	je     0x453877
453869:	8b 45 c8             	mov    -0x38(%ebp),%eax
45386c:	41                   	inc    %ecx
45386d:	83 c6 0c             	add    $0xc,%esi
453870:	89 4d ec             	mov    %ecx,-0x14(%ebp)
453873:	3b cb                	cmp    %ebx,%ecx
453875:	7c db                	jl     0x453852
453877:	8b 55 28             	mov    0x28(%ebp),%edx
45387a:	3b cb                	cmp    %ebx,%ecx
45387c:	7d 05                	jge    0x453883
45387e:	8b 7e 08             	mov    0x8(%esi),%edi
453881:	eb 04                	jmp    0x453887
453883:	33 c0                	xor    %eax,%eax
453885:	8b f8                	mov    %eax,%edi
453887:	8b 45 e8             	mov    -0x18(%ebp),%eax
45388a:	89 7d c8             	mov    %edi,-0x38(%ebp)
45388d:	85 c0                	test   %eax,%eax
45388f:	75 03                	jne    0x453894
453891:	ff 42 54             	incl   0x54(%edx)
453894:	8b 55 2c             	mov    0x2c(%ebp),%edx
453897:	ff 02                	incl   (%edx)
453899:	eb 6c                	jmp    0x453907
45389b:	8b 55 28             	mov    0x28(%ebp),%edx
45389e:	8b 4a 2c             	mov    0x2c(%edx),%ecx
4538a1:	8b 5a 30             	mov    0x30(%edx),%ebx
4538a4:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4538a7:	33 c9                	xor    %ecx,%ecx
4538a9:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4538ac:	85 db                	test   %ebx,%ebx
4538ae:	7e 40                	jle    0x4538f0
4538b0:	8b f2                	mov    %edx,%esi
4538b2:	8b 55 b8             	mov    -0x48(%ebp),%edx
4538b5:	57                   	push   %edi
4538b6:	83 c2 02             	add    $0x2,%edx
4538b9:	8b c8                	mov    %eax,%ecx
4538bb:	e8 38 b1 03 00       	call   0x48e9f8
4538c0:	8b 55 b8             	mov    -0x48(%ebp),%edx
4538c3:	59                   	pop    %ecx
4538c4:	85 c0                	test   %eax,%eax
4538c6:	75 0c                	jne    0x4538d4
4538c8:	66 39 44 7a 02       	cmp    %ax,0x2(%edx,%edi,2)
4538cd:	75 05                	jne    0x4538d4
4538cf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4538d2:	eb 17                	jmp    0x4538eb
4538d4:	8b 46 34             	mov    0x34(%esi),%eax
4538d7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4538da:	41                   	inc    %ecx
4538db:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4538de:	8d 14 42             	lea    (%edx,%eax,2),%edx
4538e1:	8b 45 c8             	mov    -0x38(%ebp),%eax
4538e4:	89 55 b8             	mov    %edx,-0x48(%ebp)
4538e7:	3b cb                	cmp    %ebx,%ecx
4538e9:	7c ca                	jl     0x4538b5
4538eb:	8b 75 dc             	mov    -0x24(%ebp),%esi
4538ee:	eb 03                	jmp    0x4538f3
4538f0:	8b 55 b8             	mov    -0x48(%ebp),%edx
4538f3:	3b cb                	cmp    %ebx,%ecx
4538f5:	0f 8d d2 fc ff ff    	jge    0x4535cd
4538fb:	0f b7 3a             	movzwl (%edx),%edi
4538fe:	8b 45 e8             	mov    -0x18(%ebp),%eax
453901:	8b 55 2c             	mov    0x2c(%ebp),%edx
453904:	89 7d c8             	mov    %edi,-0x38(%ebp)
453907:	85 c0                	test   %eax,%eax
453909:	0f 85 e3 00 00 00    	jne    0x4539f2
45390f:	8b 75 28             	mov    0x28(%ebp),%esi
453912:	85 d2                	test   %edx,%edx
453914:	0f 85 04 02 00 00    	jne    0x453b1e
45391a:	39 46 78             	cmp    %eax,0x78(%esi)
45391d:	0f 84 fb 01 00 00    	je     0x453b1e
453923:	8b 5d 28             	mov    0x28(%ebp),%ebx
453926:	8b 55 b8             	mov    -0x48(%ebp),%edx
453929:	8b 75 f4             	mov    -0xc(%ebp),%esi
45392c:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
45392f:	41                   	inc    %ecx
453930:	8b 43 34             	mov    0x34(%ebx),%eax
453933:	89 4d ec             	mov    %ecx,-0x14(%ebp)
453936:	8d 14 42             	lea    (%edx,%eax,2),%edx
453939:	89 55 dc             	mov    %edx,-0x24(%ebp)
45393c:	3b 4b 30             	cmp    0x30(%ebx),%ecx
45393f:	0f 8d d7 01 00 00    	jge    0x453b1c
453945:	8b 5d b8             	mov    -0x48(%ebp),%ebx
453948:	8b f9                	mov    %ecx,%edi
45394a:	83 c2 02             	add    $0x2,%edx
45394d:	8d 4b 02             	lea    0x2(%ebx),%ecx
453950:	e8 73 b0 03 00       	call   0x48e9c8
453955:	8b 55 dc             	mov    -0x24(%ebp),%edx
453958:	85 c0                	test   %eax,%eax
45395a:	75 13                	jne    0x45396f
45395c:	8b 4d 28             	mov    0x28(%ebp),%ecx
45395f:	46                   	inc    %esi
453960:	47                   	inc    %edi
453961:	8b 41 34             	mov    0x34(%ecx),%eax
453964:	8d 14 42             	lea    (%edx,%eax,2),%edx
453967:	89 55 dc             	mov    %edx,-0x24(%ebp)
45396a:	3b 79 30             	cmp    0x30(%ecx),%edi
45396d:	7c db                	jl     0x45394a
45396f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
453972:	8b 7d c8             	mov    -0x38(%ebp),%edi
453975:	3b f1                	cmp    %ecx,%esi
453977:	0f 8e ef 01 00 00    	jle    0x453b6c
45397d:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
453981:	75 04                	jne    0x453987
453983:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
453987:	8b 45 f4             	mov    -0xc(%ebp),%eax
45398a:	84 45 cc             	test   %al,-0x34(%ebp)
45398d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
453990:	8b d9                	mov    %ecx,%ebx
453992:	6a 00                	push   $0x0
453994:	58                   	pop    %eax
453995:	0f 95 c0             	setne  %al
453998:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45399b:	6a 73                	push   $0x73
45399d:	5f                   	pop    %edi
45399e:	03 c7                	add    %edi,%eax
4539a0:	66 89 01             	mov    %ax,(%ecx)
4539a3:	6a 02                	push   $0x2
4539a5:	58                   	pop    %eax
4539a6:	03 c8                	add    %eax,%ecx
4539a8:	8b 45 8c             	mov    -0x74(%ebp),%eax
4539ab:	6a 02                	push   $0x2
4539ad:	66 89 01             	mov    %ax,(%ecx)
4539b0:	58                   	pop    %eax
4539b1:	03 c8                	add    %eax,%ecx
4539b3:	66 89 31             	mov    %si,(%ecx)
4539b6:	03 c8                	add    %eax,%ecx
4539b8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4539bb:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4539be:	3b ca                	cmp    %edx,%ecx
4539c0:	0f 83 ca 01 00 00    	jae    0x453b90
4539c6:	8b 75 dc             	mov    -0x24(%ebp),%esi
4539c9:	8b 7d 28             	mov    0x28(%ebp),%edi
4539cc:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4539cf:	0f b7 11             	movzwl (%ecx),%edx
4539d2:	6a 20                	push   $0x20
4539d4:	58                   	pop    %eax
4539d5:	3b d0                	cmp    %eax,%edx
4539d7:	8b c3                	mov    %ebx,%eax
4539d9:	7d 04                	jge    0x4539df
4539db:	8b ca                	mov    %edx,%ecx
4539dd:	d3 e0                	shl    %cl,%eax
4539df:	09 47 50             	or     %eax,0x50(%edi)
4539e2:	3b 57 4c             	cmp    0x4c(%edi),%edx
4539e5:	7e 03                	jle    0x4539ea
4539e7:	89 57 4c             	mov    %edx,0x4c(%edi)
4539ea:	8b 4f 24             	mov    0x24(%edi),%ecx
4539ed:	e9 07 01 00 00       	jmp    0x453af9
4539f2:	8b 55 28             	mov    0x28(%ebp),%edx
4539f5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4539f8:	33 c9                	xor    %ecx,%ecx
4539fa:	8b d8                	mov    %eax,%ebx
4539fc:	8b 72 14             	mov    0x14(%edx),%esi
4539ff:	89 5d f0             	mov    %ebx,-0x10(%ebp)
453a02:	39 4d 2c             	cmp    %ecx,0x2c(%ebp)
453a05:	0f 85 dc 00 00 00    	jne    0x453ae7
453a0b:	66 89 08             	mov    %cx,(%eax)
453a0e:	85 ff                	test   %edi,%edi
453a10:	74 17                	je     0x453a29
453a12:	8b 45 28             	mov    0x28(%ebp),%eax
453a15:	8b 55 c4             	mov    -0x3c(%ebp),%edx
453a18:	57                   	push   %edi
453a19:	8b 48 14             	mov    0x14(%eax),%ecx
453a1c:	e8 30 a1 03 00       	call   0x48db51
453a21:	8b 55 28             	mov    0x28(%ebp),%edx
453a24:	8b f0                	mov    %eax,%esi
453a26:	59                   	pop    %ecx
453a27:	8b c3                	mov    %ebx,%eax
453a29:	85 f6                	test   %esi,%esi
453a2b:	0f 85 86 00 00 00    	jne    0x453ab7
453a31:	3b 7a 44             	cmp    0x44(%edx),%edi
453a34:	0f 8f 23 0c 00 00    	jg     0x45465d
453a3a:	8b 42 14             	mov    0x14(%edx),%eax
453a3d:	8b 4a 3c             	mov    0x3c(%edx),%ecx
453a40:	8d 34 78             	lea    (%eax,%edi,2),%esi
453a43:	8b 42 10             	mov    0x10(%edx),%eax
453a46:	8d 04 48             	lea    (%eax,%ecx,2),%eax
453a49:	05 38 ff ff ff       	add    $0xffffff38,%eax
453a4e:	39 42 20             	cmp    %eax,0x20(%edx)
453a51:	72 14                	jb     0x453a67
453a53:	8b ca                	mov    %edx,%ecx
453a55:	e8 8d a6 03 00       	call   0x48e0e7
453a5a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
453a5d:	89 01                	mov    %eax,(%ecx)
453a5f:	85 c0                	test   %eax,%eax
453a61:	0f 85 96 48 fc ff    	jne    0x4182fd
453a67:	8b 45 28             	mov    0x28(%ebp),%eax
453a6a:	8b 55 f8             	mov    -0x8(%ebp),%edx
453a6d:	8b ca                	mov    %edx,%ecx
453a6f:	6a 02                	push   $0x2
453a71:	5f                   	pop    %edi
453a72:	2b 48 14             	sub    0x14(%eax),%ecx
453a75:	8b 40 20             	mov    0x20(%eax),%eax
453a78:	03 cf                	add    %edi,%ecx
453a7a:	d1 f9                	sar    $1,%ecx
453a7c:	66 89 08             	mov    %cx,(%eax)
453a7f:	8b 45 28             	mov    0x28(%ebp),%eax
453a82:	01 78 20             	add    %edi,0x20(%eax)
453a85:	33 c9                	xor    %ecx,%ecx
453a87:	6a 75                	push   $0x75
453a89:	5f                   	pop    %edi
453a8a:	66 89 3a             	mov    %di,(%edx)
453a8d:	2b 70 14             	sub    0x14(%eax),%esi
453a90:	d1 fe                	sar    $1,%esi
453a92:	6a 04                	push   $0x4
453a94:	58                   	pop    %eax
453a95:	66 89 72 02          	mov    %si,0x2(%edx)
453a99:	03 d0                	add    %eax,%edx
453a9b:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
453a9f:	89 55 f8             	mov    %edx,-0x8(%ebp)
453aa2:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
453aa8:	0f 85 4a 46 fc ff    	jne    0x4180f8
453aae:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
453ab2:	e9 41 46 fc ff       	jmp    0x4180f8
453ab7:	33 c9                	xor    %ecx,%ecx
453ab9:	66 39 4e 02          	cmp    %cx,0x2(%esi)
453abd:	75 28                	jne    0x453ae7
453abf:	39 4d 24             	cmp    %ecx,0x24(%ebp)
453ac2:	7f 23                	jg     0x453ae7
453ac4:	52                   	push   %edx
453ac5:	ff 75 c4             	push   -0x3c(%ebp)
453ac8:	8b d0                	mov    %eax,%edx
453aca:	8b ce                	mov    %esi,%ecx
453acc:	ff 75 20             	push   0x20(%ebp)
453acf:	e8 d5 a5 03 00       	call   0x48e0a9
453ad4:	83 c4 0c             	add    $0xc,%esp
453ad7:	85 c0                	test   %eax,%eax
453ad9:	0f 85 8b 0b 00 00    	jne    0x45466a
453adf:	8b 55 f8             	mov    -0x8(%ebp),%edx
453ae2:	8b 45 28             	mov    0x28(%ebp),%eax
453ae5:	eb 9e                	jmp    0x453a85
453ae7:	8b 55 f8             	mov    -0x8(%ebp),%edx
453aea:	8b 45 28             	mov    0x28(%ebp),%eax
453aed:	eb 98                	jmp    0x453a87
453aef:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
453af3:	3b c2                	cmp    %edx,%eax
453af5:	74 08                	je     0x453aff
453af7:	8b 09                	mov    (%ecx),%ecx
453af9:	85 c9                	test   %ecx,%ecx
453afb:	75 f2                	jne    0x453aef
453afd:	eb 04                	jmp    0x453b03
453aff:	66 89 59 06          	mov    %bx,0x6(%ecx)
453b03:	8b 4d b8             	mov    -0x48(%ebp),%ecx
453b06:	8b 47 34             	mov    0x34(%edi),%eax
453b09:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
453b0c:	89 4d b8             	mov    %ecx,-0x48(%ebp)