46cc73:	03 f8                	add    %eax,%edi
46cc75:	2b fb                	sub    %ebx,%edi
46cc77:	83 ff 0c             	cmp    $0xc,%edi
46cc7a:	7e 03                	jle    0x46cc7f
46cc7c:	6a 0c                	push   $0xc
46cc7e:	5f                   	pop    %edi
46cc7f:	6a 20                	push   $0x20
46cc81:	58                   	pop    %eax
46cc82:	3b c8                	cmp    %eax,%ecx
46cc84:	7e 03                	jle    0x46cc89
46cc86:	89 45 e8             	mov    %eax,-0x18(%ebp)
46cc89:	68 80 00 00 00       	push   $0x80
46cc8e:	8d 45 f4             	lea    -0xc(%ebp),%eax
46cc91:	68 ff 00 00 00       	push   $0xff
46cc96:	50                   	push   %eax
46cc97:	e8 a4 b5 fa ff       	call   0x418240
46cc9c:	8b 45 e8             	mov    -0x18(%ebp),%eax
46cc9f:	8d 50 fa             	lea    -0x6(%eax),%edx
46cca2:	d1 fa                	sar    $1,%edx
46cca4:	0f af d6             	imul   %esi,%edx
46cca7:	83 c4 0c             	add    $0xc,%esp
46ccaa:	8d 54 55 f4          	lea    -0xc(%ebp,%edx,2),%edx
46ccae:	c7 45 f0 d0 a8 48 00 	movl   $0x48a8d0,-0x10(%ebp)
46ccb5:	03 f6                	add    %esi,%esi
46ccb7:	c7 45 ec 05 00 00 00 	movl   $0x5,-0x14(%ebp)
46ccbe:	8b 45 f0             	mov    -0x10(%ebp),%eax
46ccc1:	66 0f b6 00          	movzbw (%eax),%ax
46ccc5:	8b cf                	mov    %edi,%ecx
46ccc7:	d3 e0                	shl    %cl,%eax
46ccc9:	ff 45 f0             	incl   -0x10(%ebp)
46cccc:	f7 d0                	not    %eax
46ccce:	88 22                	mov    %ah,(%edx)
46ccd0:	88 42 01             	mov    %al,0x1(%edx)
46ccd3:	03 d6                	add    %esi,%edx
46ccd5:	ff 4d ec             	decl   -0x14(%ebp)
46ccd8:	75 e4                	jne    0x46ccbe
46ccda:	8d 45 f4             	lea    -0xc(%ebp),%eax
46ccdd:	50                   	push   %eax
46ccde:	6a 01                	push   $0x1
46cce0:	6a 01                	push   $0x1
46cce2:	ff 75 e8             	push   -0x18(%ebp)
46cce5:	53                   	push   %ebx
46cce6:	ff 15 a8 00 4b 00    	call   *0x4b00a8
46ccec:	85 c0                	test   %eax,%eax
46ccee:	5f                   	pop    %edi
46ccef:	5e                   	pop    %esi
46ccf0:	a3 28 c4 4a 00       	mov    %eax,0x4ac428
46ccf5:	5b                   	pop    %ebx
46ccf6:	75 11                	jne    0x46cd09
46ccf8:	68 e3 7f 00 00       	push   $0x7fe3
46ccfd:	50                   	push   %eax
46ccfe:	ff 15 84 07 4b 00    	call   *0x4b0784
46cd04:	a3 28 c4 4a 00       	mov    %eax,0x4ac428
46cd09:	8b 4d 74             	mov    0x74(%ebp),%ecx
46cd0c:	e8 cd ae fa ff       	call   0x417bde
46cd11:	83 c5 78             	add    $0x78,%ebp
46cd14:	c9                   	leave
46cd15:	c3                   	ret
46cd16:	b8 a8 a8 48 00       	mov    $0x48a8a8,%eax
46cd1b:	c3                   	ret
46cd1c:	b8 ac a9 48 00       	mov    $0x48a9ac,%eax
46cd21:	c3                   	ret
46cd22:	e9 31 bd fa ff       	jmp    0x418a58
46cd27:	8b 09                	mov    (%ecx),%ecx
46cd29:	ff 74 24 04          	push   0x4(%esp)
46cd2d:	51                   	push   %ecx
46cd2e:	e8 25 bd fa ff       	call   0x418a58
46cd33:	59                   	pop    %ecx
46cd34:	59                   	pop    %ecx
46cd35:	c2 04 00             	ret    $0x4
46cd38:	8b 44 24 04          	mov    0x4(%esp),%eax
46cd3c:	8b 00                	mov    (%eax),%eax
46cd3e:	ff 74 24 08          	push   0x8(%esp)
46cd42:	50                   	push   %eax
46cd43:	e8 10 bd fa ff       	call   0x418a58
46cd48:	f7 d8                	neg    %eax
46cd4a:	59                   	pop    %ecx
46cd4b:	1b c0                	sbb    %eax,%eax
46cd4d:	59                   	pop    %ecx
46cd4e:	40                   	inc    %eax
46cd4f:	c3                   	ret
46cd50:	b8 38 ac 48 00       	mov    $0x48ac38,%eax
46cd55:	c3                   	ret
46cd56:	8b 4c 24 04          	mov    0x4(%esp),%ecx
46cd5a:	8b 01                	mov    (%ecx),%eax
46cd5c:	6a 00                	push   $0x0
46cd5e:	ff 50 04             	call   *0x4(%eax)
46cd61:	c2 04 00             	ret    $0x4
46cd64:	8b 01                	mov    (%ecx),%eax
46cd66:	85 c0                	test   %eax,%eax
46cd68:	74 06                	je     0x46cd70
46cd6a:	8b 08                	mov    (%eax),%ecx
46cd6c:	50                   	push   %eax
46cd6d:	ff 51 08             	call   *0x8(%ecx)
46cd70:	c3                   	ret
46cd71:	8b 01                	mov    (%ecx),%eax
46cd73:	c3                   	ret
46cd74:	8b c1                	mov    %ecx,%eax
46cd76:	c3                   	ret
46cd77:	8b 01                	mov    (%ecx),%eax
46cd79:	c3                   	ret
46cd7a:	8b c1                	mov    %ecx,%eax
46cd7c:	c3                   	ret
46cd7d:	8b c1                	mov    %ecx,%eax
46cd7f:	c3                   	ret
46cd80:	53                   	push   %ebx
46cd81:	55                   	push   %ebp
46cd82:	56                   	push   %esi
46cd83:	57                   	push   %edi
46cd84:	33 ed                	xor    %ebp,%ebp
46cd86:	55                   	push   %ebp
46cd87:	55                   	push   %ebp
46cd88:	ff 74 24 20          	push   0x20(%esp)
46cd8c:	ff 74 24 20          	push   0x20(%esp)
46cd90:	55                   	push   %ebp
46cd91:	ff 15 fc 70 4a 00    	call   *0x4a70fc
46cd97:	8b 35 a4 03 4b 00    	mov    0x4b03a4,%esi
46cd9d:	50                   	push   %eax
46cd9e:	ff d6                	call   *%esi
46cda0:	8b d8                	mov    %eax,%ebx
46cda2:	53                   	push   %ebx
46cda3:	55                   	push   %ebp
46cda4:	ff 15 f8 04 4b 00    	call   *0x4b04f8
46cdaa:	8b f8                	mov    %eax,%edi
46cdac:	3b fd                	cmp    %ebp,%edi
46cdae:	74 14                	je     0x46cdc4
46cdb0:	53                   	push   %ebx
46cdb1:	57                   	push   %edi
46cdb2:	ff 74 24 20          	push   0x20(%esp)
46cdb6:	ff 74 24 20          	push   0x20(%esp)
46cdba:	55                   	push   %ebp
46cdbb:	ff 15 fc 70 4a 00    	call   *0x4a70fc
46cdc1:	50                   	push   %eax
46cdc2:	ff d6                	call   *%esi
46cdc4:	8b c7                	mov    %edi,%eax
46cdc6:	5f                   	pop    %edi
46cdc7:	5e                   	pop    %esi
46cdc8:	5d                   	pop    %ebp
46cdc9:	5b                   	pop    %ebx
46cdca:	c3                   	ret
46cdcb:	8b c1                	mov    %ecx,%eax
46cdcd:	83 20 00             	andl   $0x0,(%eax)
46cdd0:	c3                   	ret
46cdd1:	ff 74 24 08          	push   0x8(%esp)
46cdd5:	8b 44 24 08          	mov    0x8(%esp),%eax
46cdd9:	8b 08                	mov    (%eax),%ecx
46cddb:	68 30 b4 48 00       	push   $0x48b430
46cde0:	50                   	push   %eax
46cde1:	ff 11                	call   *(%ecx)
46cde3:	c2 08 00             	ret    $0x8
46cde6:	b8 93 2b 48 00       	mov    $0x482b93,%eax
46cdeb:	e8 8c ae fa ff       	call   0x417c7c
46cdf0:	51                   	push   %ecx
46cdf1:	6a 50                	push   $0x50
46cdf3:	e8 5d 32 fd ff       	call   0x440055
46cdf8:	59                   	pop    %ecx
46cdf9:	8b c8                	mov    %eax,%ecx
46cdfb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46cdfe:	33 c0                	xor    %eax,%eax
46ce00:	3b c8                	cmp    %eax,%ecx
46ce02:	89 45 fc             	mov    %eax,-0x4(%ebp)
46ce05:	74 05                	je     0x46ce0c
46ce07:	e8 2d 70 fd ff       	call   0x443e39
46ce0c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46ce0f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46ce16:	c9                   	leave
46ce17:	c3                   	ret
46ce18:	b8 a9 2b 48 00       	mov    $0x482ba9,%eax
46ce1d:	e8 5a ae fa ff       	call   0x417c7c
46ce22:	51                   	push   %ecx
46ce23:	8b 4d 08             	mov    0x8(%ebp),%ecx
46ce26:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46ce29:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46ce2d:	85 c9                	test   %ecx,%ecx
46ce2f:	74 05                	je     0x46ce36
46ce31:	e8 03 70 fd ff       	call   0x443e39
46ce36:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46ce39:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46ce40:	c9                   	leave
46ce41:	c2 04 00             	ret    $0x4
46ce44:	8b c1                	mov    %ecx,%eax
46ce46:	83 20 00             	andl   $0x0,(%eax)
46ce49:	c3                   	ret
46ce4a:	8b c1                	mov    %ecx,%eax
46ce4c:	c3                   	ret
46ce4d:	8b c1                	mov    %ecx,%eax
46ce4f:	c7 00 e0 b3 48 00    	movl   $0x48b3e0,(%eax)
46ce55:	c3                   	ret
46ce56:	8b 01                	mov    (%ecx),%eax
46ce58:	ff 70 f4             	push   -0xc(%eax)
46ce5b:	50                   	push   %eax
46ce5c:	e8 1f ff ff ff       	call   0x46cd80
46ce61:	85 c0                	test   %eax,%eax
46ce63:	59                   	pop    %ecx
46ce64:	59                   	pop    %ecx
46ce65:	75 05                	jne    0x46ce6c
46ce67:	e9 dd 43 f9 ff       	jmp    0x401249
46ce6c:	c3                   	ret
46ce6d:	8b c1                	mov    %ecx,%eax
46ce6f:	83 60 08 00          	andl   $0x0,0x8(%eax)
46ce73:	83 60 0c 00          	andl   $0x0,0xc(%eax)
46ce77:	c7 00 7c b4 48 00    	movl   $0x48b47c,(%eax)
46ce7d:	c7 40 04 64 b4 48 00 	movl   $0x48b464,0x4(%eax)
46ce84:	c3                   	ret
46ce85:	8b 44 24 04          	mov    0x4(%esp),%eax
46ce89:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46ce8d:	75 07                	jne    0x46ce96
46ce8f:	b8 08 01 01 80       	mov    $0x80010108,%eax
46ce94:	eb 1b                	jmp    0x46ceb1
46ce96:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
46ce9b:	75 07                	jne    0x46cea4
46ce9d:	b8 03 40 00 80       	mov    $0x80004003,%eax
46cea2:	eb 0d                	jmp    0x46ceb1
46cea4:	8b 40 08             	mov    0x8(%eax),%eax
46cea7:	ff 74 24 08          	push   0x8(%esp)
46ceab:	8b 08                	mov    (%eax),%ecx
46cead:	50                   	push   %eax
46ceae:	ff 51 1c             	call   *0x1c(%ecx)
46ceb1:	c2 08 00             	ret    $0x8
46ceb4:	8b 44 24 04          	mov    0x4(%esp),%eax
46ceb8:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46cebc:	75 07                	jne    0x46cec5
46cebe:	b8 08 01 01 80       	mov    $0x80010108,%eax
46cec3:	eb 1b                	jmp    0x46cee0
46cec5:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
46ceca:	75 07                	jne    0x46ced3
46cecc:	b8 03 40 00 80       	mov    $0x80004003,%eax
46ced1:	eb 0d                	jmp    0x46cee0
46ced3:	8b 40 08             	mov    0x8(%eax),%eax
46ced6:	ff 74 24 08          	push   0x8(%esp)
46ceda:	8b 08                	mov    (%eax),%ecx
46cedc:	50                   	push   %eax
46cedd:	ff 51 20             	call   *0x20(%ecx)
46cee0:	c2 08 00             	ret    $0x8
46cee3:	8b 44 24 04          	mov    0x4(%esp),%eax
46cee7:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46ceeb:	56                   	push   %esi
46ceec:	57                   	push   %edi
46ceed:	75 07                	jne    0x46cef6
46ceef:	b8 08 01 01 80       	mov    $0x80010108,%eax
46cef4:	eb 28                	jmp    0x46cf1e
46cef6:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
46cefb:	75 07                	jne    0x46cf04
46cefd:	b8 03 40 00 80       	mov    $0x80004003,%eax
46cf02:	eb 1a                	jmp    0x46cf1e
46cf04:	ff 74 24 20          	push   0x20(%esp)
46cf08:	8b 40 08             	mov    0x8(%eax),%eax
46cf0b:	8b 08                	mov    (%eax),%ecx
46cf0d:	83 ec 10             	sub    $0x10,%esp
46cf10:	8b fc                	mov    %esp,%edi
46cf12:	8d 74 24 24          	lea    0x24(%esp),%esi
46cf16:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf17:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf18:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf19:	50                   	push   %eax
46cf1a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf1b:	ff 51 24             	call   *0x24(%ecx)
46cf1e:	5f                   	pop    %edi
46cf1f:	5e                   	pop    %esi
46cf20:	c2 18 00             	ret    $0x18
46cf23:	8b 44 24 04          	mov    0x4(%esp),%eax
46cf27:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46cf2b:	56                   	push   %esi
46cf2c:	57                   	push   %edi
46cf2d:	75 07                	jne    0x46cf36
46cf2f:	b8 08 01 01 80       	mov    $0x80010108,%eax
46cf34:	eb 28                	jmp    0x46cf5e
46cf36:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
46cf3b:	75 07                	jne    0x46cf44
46cf3d:	b8 03 40 00 80       	mov    $0x80004003,%eax
46cf42:	eb 1a                	jmp    0x46cf5e
46cf44:	ff 74 24 20          	push   0x20(%esp)
46cf48:	8b 40 08             	mov    0x8(%eax),%eax
46cf4b:	8b 08                	mov    (%eax),%ecx
46cf4d:	83 ec 10             	sub    $0x10,%esp
46cf50:	8b fc                	mov    %esp,%edi
46cf52:	8d 74 24 24          	lea    0x24(%esp),%esi
46cf56:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf57:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf58:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf59:	50                   	push   %eax
46cf5a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf5b:	ff 51 28             	call   *0x28(%ecx)
46cf5e:	5f                   	pop    %edi
46cf5f:	5e                   	pop    %esi
46cf60:	c2 18 00             	ret    $0x18
46cf63:	8b 44 24 04          	mov    0x4(%esp),%eax
46cf67:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46cf6b:	56                   	push   %esi
46cf6c:	57                   	push   %edi
46cf6d:	75 07                	jne    0x46cf76
46cf6f:	b8 08 01 01 80       	mov    $0x80010108,%eax
46cf74:	eb 28                	jmp    0x46cf9e
46cf76:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
46cf7b:	75 07                	jne    0x46cf84
46cf7d:	b8 03 40 00 80       	mov    $0x80004003,%eax
46cf82:	eb 1a                	jmp    0x46cf9e
46cf84:	ff 74 24 20          	push   0x20(%esp)
46cf88:	8b 40 08             	mov    0x8(%eax),%eax
46cf8b:	8b 08                	mov    (%eax),%ecx
46cf8d:	83 ec 10             	sub    $0x10,%esp
46cf90:	8b fc                	mov    %esp,%edi
46cf92:	8d 74 24 24          	lea    0x24(%esp),%esi
46cf96:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf97:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf98:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf99:	50                   	push   %eax
46cf9a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cf9b:	ff 51 2c             	call   *0x2c(%ecx)
46cf9e:	5f                   	pop    %edi
46cf9f:	5e                   	pop    %esi
46cfa0:	c2 18 00             	ret    $0x18
46cfa3:	8b 44 24 04          	mov    0x4(%esp),%eax
46cfa7:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46cfab:	56                   	push   %esi
46cfac:	57                   	push   %edi
46cfad:	75 07                	jne    0x46cfb6
46cfaf:	b8 08 01 01 80       	mov    $0x80010108,%eax
46cfb4:	eb 28                	jmp    0x46cfde
46cfb6:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
46cfbb:	75 07                	jne    0x46cfc4
46cfbd:	b8 03 40 00 80       	mov    $0x80004003,%eax
46cfc2:	eb 1a                	jmp    0x46cfde
46cfc4:	ff 74 24 20          	push   0x20(%esp)
46cfc8:	8b 40 08             	mov    0x8(%eax),%eax
46cfcb:	8b 08                	mov    (%eax),%ecx
46cfcd:	83 ec 10             	sub    $0x10,%esp
46cfd0:	8b fc                	mov    %esp,%edi
46cfd2:	8d 74 24 24          	lea    0x24(%esp),%esi
46cfd6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cfd7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cfd8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cfd9:	50                   	push   %eax
46cfda:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46cfdb:	ff 51 30             	call   *0x30(%ecx)
46cfde:	5f                   	pop    %edi
46cfdf:	5e                   	pop    %esi
46cfe0:	c2 18 00             	ret    $0x18
46cfe3:	8b 44 24 04          	mov    0x4(%esp),%eax
46cfe7:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
46cfeb:	56                   	push   %esi
46cfec:	57                   	push   %edi
46cfed:	75 07                	jne    0x46cff6
46cfef:	b8 08 01 01 80       	mov    $0x80010108,%eax
46cff4:	eb 28                	jmp    0x46d01e
46cff6:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
46cffb:	75 07                	jne    0x46d004
46cffd:	b8 03 40 00 80       	mov    $0x80004003,%eax
46d002:	eb 1a                	jmp    0x46d01e
46d004:	ff 74 24 20          	push   0x20(%esp)