48a97c:	56                   	push   %esi
48a97d:	50                   	push   %eax
48a97e:	e8 af ae ff ff       	call   0x485832
48a983:	8b f0                	mov    %eax,%esi
48a985:	59                   	pop    %ecx
48a986:	85 f6                	test   %esi,%esi
48a988:	75 0a                	jne    0x48a994
48a98a:	50                   	push   %eax
48a98b:	e8 68 ae ff ff       	call   0x4857f8
48a990:	33 c0                	xor    %eax,%eax
48a992:	eb 21                	jmp    0x48a9b5
48a994:	57                   	push   %edi
48a995:	ff 75 fc             	push   -0x4(%ebp)
48a998:	8d 45 f8             	lea    -0x8(%ebp),%eax
48a99b:	56                   	push   %esi
48a99c:	50                   	push   %eax
48a99d:	e8 6c 8d 00 00       	call   0x49370e
48a9a2:	83 c4 10             	add    $0x10,%esp
48a9a5:	85 c0                	test   %eax,%eax
48a9a7:	74 03                	je     0x48a9ac
48a9a9:	56                   	push   %esi
48a9aa:	eb df                	jmp    0x48a98b
48a9ac:	6a 00                	push   $0x0
48a9ae:	e8 45 ae ff ff       	call   0x4857f8
48a9b3:	8b c6                	mov    %esi,%eax
48a9b5:	59                   	pop    %ecx
48a9b6:	5e                   	pop    %esi
48a9b7:	5f                   	pop    %edi
48a9b8:	c9                   	leave
48a9b9:	c3                   	ret
48a9ba:	8b ff                	mov    %edi,%edi
48a9bc:	55                   	push   %ebp
48a9bd:	8b ec                	mov    %esp,%ebp
48a9bf:	ff 75 14             	push   0x14(%ebp)
48a9c2:	ff 75 08             	push   0x8(%ebp)
48a9c5:	6a 40                	push   $0x40
48a9c7:	ff 75 0c             	push   0xc(%ebp)
48a9ca:	e8 3f 55 ff ff       	call   0x47ff0e
48a9cf:	83 c4 10             	add    $0x10,%esp
48a9d2:	85 c0                	test   %eax,%eax
48a9d4:	75 1e                	jne    0x48a9f4
48a9d6:	50                   	push   %eax
48a9d7:	50                   	push   %eax
48a9d8:	6a 3f                	push   $0x3f
48a9da:	ff 75 10             	push   0x10(%ebp)
48a9dd:	ff 75 14             	push   0x14(%ebp)
48a9e0:	ff 75 0c             	push   0xc(%ebp)
48a9e3:	50                   	push   %eax
48a9e4:	e8 be fb ff ff       	call   0x48a5a7
48a9e9:	50                   	push   %eax
48a9ea:	e8 1b 43 00 00       	call   0x48ed0a
48a9ef:	83 c4 20             	add    $0x20,%esp
48a9f2:	5d                   	pop    %ebp
48a9f3:	c3                   	ret
48a9f4:	33 c0                	xor    %eax,%eax
48a9f6:	50                   	push   %eax
48a9f7:	50                   	push   %eax
48a9f8:	50                   	push   %eax
48a9f9:	50                   	push   %eax
48a9fa:	50                   	push   %eax
48a9fb:	e8 4e ec fe ff       	call   0x47964e
48aa00:	cc                   	int3
48aa01:	8b ff                	mov    %edi,%edi
48aa03:	55                   	push   %ebp
48aa04:	8b ec                	mov    %esp,%ebp
48aa06:	83 ec 1c             	sub    $0x1c,%esp
48aa09:	53                   	push   %ebx
48aa0a:	56                   	push   %esi
48aa0b:	57                   	push   %edi
48aa0c:	e8 06 fb ff ff       	call   0x48a517
48aa11:	8b d8                	mov    %eax,%ebx
48aa13:	89 5d f0             	mov    %ebx,-0x10(%ebp)
48aa16:	e8 02 fb ff ff       	call   0x48a51d
48aa1b:	89 45 ec             	mov    %eax,-0x14(%ebp)
48aa1e:	33 f6                	xor    %esi,%esi
48aa20:	8d 45 fc             	lea    -0x4(%ebp),%eax
48aa23:	89 75 e8             	mov    %esi,-0x18(%ebp)
48aa26:	50                   	push   %eax
48aa27:	89 75 fc             	mov    %esi,-0x4(%ebp)
48aa2a:	89 75 f8             	mov    %esi,-0x8(%ebp)
48aa2d:	e8 49 fb ff ff       	call   0x48a57b
48aa32:	59                   	pop    %ecx
48aa33:	85 c0                	test   %eax,%eax
48aa35:	0f 85 4d 02 00 00    	jne    0x48ac88
48aa3b:	8d 45 f8             	lea    -0x8(%ebp),%eax
48aa3e:	50                   	push   %eax
48aa3f:	e8 df fa ff ff       	call   0x48a523
48aa44:	59                   	pop    %ecx
48aa45:	85 c0                	test   %eax,%eax
48aa47:	0f 85 3b 02 00 00    	jne    0x48ac88
48aa4d:	a1 04 8b 4c 00       	mov    0x4c8b04,%eax
48aa52:	8b 7d 08             	mov    0x8(%ebp),%edi
48aa55:	85 c0                	test   %eax,%eax
48aa57:	74 31                	je     0x48aa8a
48aa59:	8b cf                	mov    %edi,%ecx
48aa5b:	66 8b 11             	mov    (%ecx),%dx
48aa5e:	66 3b 10             	cmp    (%eax),%dx
48aa61:	75 1e                	jne    0x48aa81
48aa63:	66 85 d2             	test   %dx,%dx
48aa66:	74 15                	je     0x48aa7d
48aa68:	66 8b 51 02          	mov    0x2(%ecx),%dx
48aa6c:	66 3b 50 02          	cmp    0x2(%eax),%dx
48aa70:	75 0f                	jne    0x48aa81
48aa72:	83 c1 04             	add    $0x4,%ecx
48aa75:	83 c0 04             	add    $0x4,%eax
48aa78:	66 85 d2             	test   %dx,%dx
48aa7b:	75 de                	jne    0x48aa5b
48aa7d:	8b c6                	mov    %esi,%eax
48aa7f:	eb 05                	jmp    0x48aa86
48aa81:	1b c0                	sbb    %eax,%eax
48aa83:	83 c8 01             	or     $0x1,%eax
48aa86:	85 c0                	test   %eax,%eax
48aa88:	74 31                	je     0x48aabb
48aa8a:	8b cf                	mov    %edi,%ecx
48aa8c:	8d 51 02             	lea    0x2(%ecx),%edx
48aa8f:	66 8b 01             	mov    (%ecx),%ax
48aa92:	83 c1 02             	add    $0x2,%ecx
48aa95:	66 3b c6             	cmp    %si,%ax
48aa98:	75 f5                	jne    0x48aa8f
48aa9a:	2b ca                	sub    %edx,%ecx
48aa9c:	d1 f9                	sar    $1,%ecx
48aa9e:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
48aaa5:	50                   	push   %eax
48aaa6:	e8 87 ad ff ff       	call   0x485832
48aaab:	8b f0                	mov    %eax,%esi
48aaad:	59                   	pop    %ecx
48aaae:	85 f6                	test   %esi,%esi
48aab0:	75 0e                	jne    0x48aac0
48aab2:	33 c0                	xor    %eax,%eax
48aab4:	50                   	push   %eax
48aab5:	e8 3e ad ff ff       	call   0x4857f8
48aaba:	59                   	pop    %ecx
48aabb:	5f                   	pop    %edi
48aabc:	5e                   	pop    %esi
48aabd:	5b                   	pop    %ebx
48aabe:	c9                   	leave
48aabf:	c3                   	ret
48aac0:	ff 35 04 8b 4c 00    	push   0x4c8b04
48aac6:	e8 2d ad ff ff       	call   0x4857f8
48aacb:	59                   	pop    %ecx
48aacc:	8b cf                	mov    %edi,%ecx
48aace:	89 35 04 8b 4c 00    	mov    %esi,0x4c8b04
48aad4:	8d 51 02             	lea    0x2(%ecx),%edx
48aad7:	66 8b 01             	mov    (%ecx),%ax
48aada:	83 c1 02             	add    $0x2,%ecx
48aadd:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
48aae1:	75 f4                	jne    0x48aad7
48aae3:	2b ca                	sub    %edx,%ecx
48aae5:	d1 f9                	sar    $1,%ecx
48aae7:	57                   	push   %edi
48aae8:	8d 41 01             	lea    0x1(%ecx),%eax
48aaeb:	50                   	push   %eax
48aaec:	56                   	push   %esi
48aaed:	e8 ab eb fe ff       	call   0x47969d
48aaf2:	83 c4 0c             	add    $0xc,%esp
48aaf5:	85 c0                	test   %eax,%eax
48aaf7:	0f 85 89 01 00 00    	jne    0x48ac86
48aafd:	8b 75 ec             	mov    -0x14(%ebp),%esi
48ab00:	68 80 00 00 00       	push   $0x80
48ab05:	50                   	push   %eax
48ab06:	ff 36                	push   (%esi)
48ab08:	e8 a3 10 fe ff       	call   0x46bbb0
48ab0d:	68 80 00 00 00       	push   $0x80
48ab12:	33 c0                	xor    %eax,%eax
48ab14:	50                   	push   %eax
48ab15:	ff 76 04             	push   0x4(%esi)
48ab18:	e8 93 10 fe ff       	call   0x46bbb0
48ab1d:	6a 40                	push   $0x40
48ab1f:	33 c0                	xor    %eax,%eax
48ab21:	50                   	push   %eax
48ab22:	ff 33                	push   (%ebx)
48ab24:	e8 87 10 fe ff       	call   0x46bbb0
48ab29:	6a 40                	push   $0x40
48ab2b:	33 c0                	xor    %eax,%eax
48ab2d:	50                   	push   %eax
48ab2e:	ff 73 04             	push   0x4(%ebx)
48ab31:	e8 7a 10 fe ff       	call   0x46bbb0
48ab36:	6a 03                	push   $0x3
48ab38:	ff 33                	push   (%ebx)
48ab3a:	ff 36                	push   (%esi)
48ab3c:	57                   	push   %edi
48ab3d:	e8 78 fe ff ff       	call   0x48a9ba
48ab42:	83 c4 40             	add    $0x40,%esp
48ab45:	33 c9                	xor    %ecx,%ecx
48ab47:	6a 03                	push   $0x3
48ab49:	58                   	pop    %eax
48ab4a:	66 39 0f             	cmp    %cx,(%edi)
48ab4d:	74 03                	je     0x48ab52
48ab4f:	83 c7 02             	add    $0x2,%edi
48ab52:	83 e8 01             	sub    $0x1,%eax
48ab55:	75 f3                	jne    0x48ab4a
48ab57:	0f b7 07             	movzwl (%edi),%eax
48ab5a:	8b c8                	mov    %eax,%ecx
48ab5c:	6a 2d                	push   $0x2d
48ab5e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
48ab61:	59                   	pop    %ecx
48ab62:	66 3b c1             	cmp    %cx,%ax
48ab65:	75 03                	jne    0x48ab6a
48ab67:	83 c7 02             	add    $0x2,%edi
48ab6a:	6a 0a                	push   $0xa
48ab6c:	8d 45 f4             	lea    -0xc(%ebp),%eax
48ab6f:	50                   	push   %eax
48ab70:	57                   	push   %edi
48ab71:	e8 97 4f ff ff       	call   0x47fb0d
48ab76:	83 c4 0c             	add    $0xc,%esp
48ab79:	69 f0 10 0e 00 00    	imul   $0xe10,%eax,%esi
48ab7f:	89 75 fc             	mov    %esi,-0x4(%ebp)
48ab82:	0f b7 0f             	movzwl (%edi),%ecx
48ab85:	83 f9 2b             	cmp    $0x2b,%ecx
48ab88:	74 09                	je     0x48ab93
48ab8a:	8d 41 d0             	lea    -0x30(%ecx),%eax
48ab8d:	66 83 f8 09          	cmp    $0x9,%ax
48ab91:	77 05                	ja     0x48ab98
48ab93:	83 c7 02             	add    $0x2,%edi
48ab96:	eb ea                	jmp    0x48ab82
48ab98:	6a 3a                	push   $0x3a
48ab9a:	58                   	pop    %eax
48ab9b:	66 3b c8             	cmp    %ax,%cx
48ab9e:	0f 85 94 00 00 00    	jne    0x48ac38
48aba4:	6a 0a                	push   $0xa
48aba6:	8d 45 f4             	lea    -0xc(%ebp),%eax
48aba9:	83 c7 02             	add    $0x2,%edi
48abac:	50                   	push   %eax
48abad:	57                   	push   %edi
48abae:	e8 5a 4f ff ff       	call   0x47fb0d
48abb3:	8b 75 fc             	mov    -0x4(%ebp),%esi
48abb6:	83 c4 0c             	add    $0xc,%esp
48abb9:	6b c0 3c             	imul   $0x3c,%eax,%eax
48abbc:	6a 30                	push   $0x30
48abbe:	59                   	pop    %ecx
48abbf:	03 f0                	add    %eax,%esi
48abc1:	89 4d e8             	mov    %ecx,-0x18(%ebp)
48abc4:	0f b7 07             	movzwl (%edi),%eax
48abc7:	89 75 fc             	mov    %esi,-0x4(%ebp)
48abca:	8b d0                	mov    %eax,%edx
48abcc:	66 3b c1             	cmp    %cx,%ax
48abcf:	72 20                	jb     0x48abf1
48abd1:	6a 39                	push   $0x39
48abd3:	8b c8                	mov    %eax,%ecx
48abd5:	5b                   	pop    %ebx
48abd6:	0f b7 d1             	movzwl %cx,%edx
48abd9:	66 3b cb             	cmp    %bx,%cx
48abdc:	77 10                	ja     0x48abee
48abde:	83 c7 02             	add    $0x2,%edi
48abe1:	0f b7 07             	movzwl (%edi),%eax
48abe4:	8b c8                	mov    %eax,%ecx
48abe6:	8b d0                	mov    %eax,%edx
48abe8:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
48abec:	73 e8                	jae    0x48abd6
48abee:	8b 5d f0             	mov    -0x10(%ebp),%ebx
48abf1:	6a 3a                	push   $0x3a
48abf3:	58                   	pop    %eax
48abf4:	66 3b d0             	cmp    %ax,%dx
48abf7:	75 3f                	jne    0x48ac38
48abf9:	6a 0a                	push   $0xa
48abfb:	8d 45 f4             	lea    -0xc(%ebp),%eax
48abfe:	83 c7 02             	add    $0x2,%edi
48ac01:	50                   	push   %eax
48ac02:	57                   	push   %edi
48ac03:	e8 05 4f ff ff       	call   0x47fb0d
48ac08:	8b 75 fc             	mov    -0x4(%ebp),%esi
48ac0b:	83 c4 0c             	add    $0xc,%esp
48ac0e:	03 f0                	add    %eax,%esi
48ac10:	0f b7 07             	movzwl (%edi),%eax
48ac13:	89 75 fc             	mov    %esi,-0x4(%ebp)
48ac16:	6a 30                	push   $0x30
48ac18:	5a                   	pop    %edx
48ac19:	66 3b c2             	cmp    %dx,%ax
48ac1c:	72 1a                	jb     0x48ac38
48ac1e:	6a 39                	push   $0x39
48ac20:	8b c8                	mov    %eax,%ecx
48ac22:	5b                   	pop    %ebx
48ac23:	66 3b cb             	cmp    %bx,%cx
48ac26:	77 0d                	ja     0x48ac35
48ac28:	83 c7 02             	add    $0x2,%edi
48ac2b:	0f b7 07             	movzwl (%edi),%eax
48ac2e:	8b c8                	mov    %eax,%ecx
48ac30:	66 3b c2             	cmp    %dx,%ax
48ac33:	73 ee                	jae    0x48ac23
48ac35:	8b 5d f0             	mov    -0x10(%ebp),%ebx
48ac38:	6a 2d                	push   $0x2d
48ac3a:	58                   	pop    %eax
48ac3b:	66 39 45 e4          	cmp    %ax,-0x1c(%ebp)
48ac3f:	75 05                	jne    0x48ac46
48ac41:	f7 de                	neg    %esi
48ac43:	89 75 fc             	mov    %esi,-0x4(%ebp)
48ac46:	0f b7 0f             	movzwl (%edi),%ecx
48ac49:	33 c0                	xor    %eax,%eax
48ac4b:	66 85 c9             	test   %cx,%cx
48ac4e:	0f 95 c0             	setne  %al
48ac51:	89 45 f8             	mov    %eax,-0x8(%ebp)
48ac54:	66 85 c9             	test   %cx,%cx
48ac57:	74 17                	je     0x48ac70
48ac59:	8b 45 ec             	mov    -0x14(%ebp),%eax
48ac5c:	6a 03                	push   $0x3
48ac5e:	ff 73 04             	push   0x4(%ebx)
48ac61:	ff 70 04             	push   0x4(%eax)
48ac64:	57                   	push   %edi
48ac65:	e8 50 fd ff ff       	call   0x48a9ba
48ac6a:	8b 75 fc             	mov    -0x4(%ebp),%esi
48ac6d:	83 c4 10             	add    $0x10,%esp
48ac70:	e8 9c f8 ff ff       	call   0x48a511
48ac75:	89 30                	mov    %esi,(%eax)
48ac77:	8b 75 f8             	mov    -0x8(%ebp),%esi
48ac7a:	e8 86 f8 ff ff       	call   0x48a505
48ac7f:	89 30                	mov    %esi,(%eax)
48ac81:	e9 2c fe ff ff       	jmp    0x48aab2
48ac86:	33 f6                	xor    %esi,%esi
48ac88:	56                   	push   %esi
48ac89:	56                   	push   %esi
48ac8a:	56                   	push   %esi
48ac8b:	56                   	push   %esi
48ac8c:	56                   	push   %esi
48ac8d:	e8 bc e9 fe ff       	call   0x47964e
48ac92:	cc                   	int3
48ac93:	8b ff                	mov    %edi,%edi
48ac95:	55                   	push   %ebp
48ac96:	8b ec                	mov    %esp,%ebp
48ac98:	83 ec 0c             	sub    $0xc,%esp
48ac9b:	53                   	push   %ebx
48ac9c:	56                   	push   %esi
48ac9d:	57                   	push   %edi
48ac9e:	e8 74 f8 ff ff       	call   0x48a517
48aca3:	8b f8                	mov    %eax,%edi
48aca5:	e8 73 f8 ff ff       	call   0x48a51d
48acaa:	8b d8                	mov    %eax,%ebx
48acac:	33 f6                	xor    %esi,%esi
48acae:	8d 45 fc             	lea    -0x4(%ebp),%eax
48acb1:	89 75 fc             	mov    %esi,-0x4(%ebp)
48acb4:	50                   	push   %eax
48acb5:	89 75 f8             	mov    %esi,-0x8(%ebp)
48acb8:	89 75 f4             	mov    %esi,-0xc(%ebp)
48acbb:	e8 bb f8 ff ff       	call   0x48a57b
48acc0:	59                   	pop    %ecx
48acc1:	85 c0                	test   %eax,%eax
48acc3:	0f 85 19 01 00 00    	jne    0x48ade2
48acc9:	8d 45 f8             	lea    -0x8(%ebp),%eax
48accc:	50                   	push   %eax
48accd:	e8 51 f8 ff ff       	call   0x48a523
48acd2:	59                   	pop    %ecx
48acd3:	85 c0                	test   %eax,%eax
48acd5:	0f 85 07 01 00 00    	jne    0x48ade2
48acdb:	8d 45 f4             	lea    -0xc(%ebp),%eax
48acde:	50                   	push   %eax
48acdf:	e8 6b f8 ff ff       	call   0x48a54f
48ace4:	59                   	pop    %ecx
48ace5:	85 c0                	test   %eax,%eax
48ace7:	0f 85 f5 00 00 00    	jne    0x48ade2
48aced:	ff 35 04 8b 4c 00    	push   0x4c8b04
48acf3:	e8 00 ab ff ff       	call   0x4857f8