616d60:	55                   	push   %ebp
616d61:	8b ec                	mov    %esp,%ebp
616d63:	53                   	push   %ebx
616d64:	8b 5d 0c             	mov    0xc(%ebp),%ebx
616d67:	56                   	push   %esi
616d68:	8b f1                	mov    %ecx,%esi
616d6a:	33 c9                	xor    %ecx,%ecx
616d6c:	57                   	push   %edi
616d6d:	6a 01                	push   $0x1
616d6f:	5f                   	pop    %edi
616d70:	8b 46 14             	mov    0x14(%esi),%eax
616d73:	2b c1                	sub    %ecx,%eax
616d75:	74 11                	je     0x616d88
616d77:	2b c7                	sub    %edi,%eax
616d79:	74 15                	je     0x616d90
616d7b:	2b c7                	sub    %edi,%eax
616d7d:	74 79                	je     0x616df8
616d7f:	33 c0                	xor    %eax,%eax
616d81:	5f                   	pop    %edi
616d82:	5e                   	pop    %esi
616d83:	5b                   	pop    %ebx
616d84:	5d                   	pop    %ebp
616d85:	c2 10 00             	ret    $0x10
616d88:	89 4e 10             	mov    %ecx,0x10(%esi)
616d8b:	38 4e 28             	cmp    %cl,0x28(%esi)
616d8e:	74 24                	je     0x616db4
616d90:	8d 46 34             	lea    0x34(%esi),%eax
616d93:	50                   	push   %eax
616d94:	ff 75 14             	push   0x14(%ebp)
616d97:	51                   	push   %ecx
616d98:	53                   	push   %ebx
616d99:	ff 75 08             	push   0x8(%ebp)
616d9c:	8b ce                	mov    %esi,%ecx
616d9e:	57                   	push   %edi
616d9f:	e8 2e fe ff ff       	call   0x616bd2
616da4:	85 c0                	test   %eax,%eax
616da6:	74 0c                	je     0x616db4
616da8:	2b 5e 10             	sub    0x10(%esi),%ebx
616dab:	3b df                	cmp    %edi,%ebx
616dad:	0f 47 fb             	cmova  %ebx,%edi
616db0:	8b c7                	mov    %edi,%eax
616db2:	eb cd                	jmp    0x616d81
616db4:	8b 4e 24             	mov    0x24(%esi),%ecx
616db7:	53                   	push   %ebx
616db8:	ff 75 08             	push   0x8(%ebp)
616dbb:	8b 01                	mov    (%ecx),%eax
616dbd:	ff 50 0c             	call   *0xc(%eax)
616dc0:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
616dc4:	74 b9                	je     0x616d7f
616dc6:	8b 46 2c             	mov    0x2c(%esi),%eax
616dc9:	8d 4d 08             	lea    0x8(%ebp),%ecx
616dcc:	51                   	push   %ecx
616dcd:	50                   	push   %eax
616dce:	50                   	push   %eax
616dcf:	89 45 08             	mov    %eax,0x8(%ebp)
616dd2:	8b ce                	mov    %esi,%ecx
616dd4:	8d 46 4c             	lea    0x4c(%esi),%eax
616dd7:	50                   	push   %eax
616dd8:	8b 06                	mov    (%esi),%eax
616dda:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616de0:	50                   	push   %eax
616de1:	8d 4e 18             	lea    0x18(%esi),%ecx
616de4:	e8 05 fc ff ff       	call   0x6169ee
616de9:	8b 4e 24             	mov    0x24(%esi),%ecx
616dec:	ff 76 2c             	push   0x2c(%esi)
616def:	89 46 30             	mov    %eax,0x30(%esi)
616df2:	50                   	push   %eax
616df3:	8b 11                	mov    (%ecx),%edx
616df5:	ff 52 38             	call   *0x38(%edx)
616df8:	8d 46 4c             	lea    0x4c(%esi),%eax
616dfb:	8b ce                	mov    %esi,%ecx
616dfd:	50                   	push   %eax
616dfe:	ff 75 14             	push   0x14(%ebp)
616e01:	ff 75 10             	push   0x10(%ebp)
616e04:	ff 76 2c             	push   0x2c(%esi)
616e07:	ff 76 30             	push   0x30(%esi)
616e0a:	6a 02                	push   $0x2
616e0c:	e8 c1 fd ff ff       	call   0x616bd2
616e11:	85 c0                	test   %eax,%eax
616e13:	0f 84 66 ff ff ff    	je     0x616d7f
616e19:	8b 4e 2c             	mov    0x2c(%esi),%ecx
616e1c:	2b 4e 10             	sub    0x10(%esi),%ecx
616e1f:	3b cf                	cmp    %edi,%ecx
616e21:	0f 47 f9             	cmova  %ecx,%edi
616e24:	eb 8a                	jmp    0x616db0
616e26:	cc                   	int3
616e27:	cc                   	int3
616e28:	cc                   	int3
616e29:	cc                   	int3
616e2a:	cc                   	int3
616e2b:	cc                   	int3
616e2c:	cc                   	int3
616e2d:	cc                   	int3
616e2e:	cc                   	int3
616e2f:	cc                   	int3
616e30:	6a 5c                	push   $0x5c
616e32:	b8 90 22 66 00       	mov    $0x662290,%eax
616e37:	e8 b3 b1 fc ff       	call   0x5e1fef
616e3c:	8b f9                	mov    %ecx,%edi
616e3e:	8b 75 08             	mov    0x8(%ebp),%esi
616e41:	8d 4d 98             	lea    -0x68(%ebp),%ecx
616e44:	33 db                	xor    %ebx,%ebx
616e46:	53                   	push   %ebx
616e47:	53                   	push   %ebx
616e48:	e8 76 c9 ff ff       	call   0x6137c3
616e4d:	8b 06                	mov    (%esi),%eax
616e4f:	8d 4d 98             	lea    -0x68(%ebp),%ecx
616e52:	51                   	push   %ecx
616e53:	68 f4 bc 72 00       	push   $0x72bcf4
616e58:	68 ec bb 6d 00       	push   $0x6dbbec
616e5d:	8b ce                	mov    %esi,%ecx
616e5f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
616e62:	ff 50 04             	call   *0x4(%eax)
616e65:	84 c0                	test   %al,%al
616e67:	75 34                	jne    0x616e9d
616e69:	68 54 bc 6d 00       	push   $0x6dbc54
616e6e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
616e71:	e8 9a 18 e2 ff       	call   0x438710
616e76:	8d 45 d8             	lea    -0x28(%ebp),%eax
616e79:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
616e7d:	50                   	push   %eax
616e7e:	6a 01                	push   $0x1
616e80:	8d 4d b0             	lea    -0x50(%ebp),%ecx
616e83:	e8 c0 c9 ff ff       	call   0x613848
616e88:	68 6c 27 70 00       	push   $0x70276c
616e8d:	8d 45 b0             	lea    -0x50(%ebp),%eax
616e90:	c7 45 b0 38 37 69 00 	movl   $0x693738,-0x50(%ebp)
616e97:	50                   	push   %eax
616e98:	e8 95 bb fc ff       	call   0x5e2a32
616e9d:	8b 4d 98             	mov    -0x68(%ebp),%ecx
616ea0:	84 c9                	test   %cl,%cl
616ea2:	8b 45 9c             	mov    -0x64(%ebp),%eax
616ea5:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
616ea8:	0f 45 45 ac          	cmovne -0x54(%ebp),%eax
616eac:	89 47 14             	mov    %eax,0x14(%edi)
616eaf:	8b 45 a0             	mov    -0x60(%ebp),%eax
616eb2:	0f 45 45 a8          	cmovne -0x58(%ebp),%eax
616eb6:	89 47 18             	mov    %eax,0x18(%edi)
616eb9:	89 5f 1c             	mov    %ebx,0x1c(%edi)
616ebc:	e8 1f 4c e7 ff       	call   0x48bae0
616ec1:	e8 e4 b0 fc ff       	call   0x5e1faa
616ec6:	c2 04 00             	ret    $0x4
616ec9:	cc                   	int3
616eca:	cc                   	int3
616ecb:	cc                   	int3
616ecc:	cc                   	int3
616ecd:	cc                   	int3
616ece:	cc                   	int3
616ecf:	cc                   	int3
616ed0:	55                   	push   %ebp
616ed1:	8b ec                	mov    %esp,%ebp
616ed3:	8b 01                	mov    (%ecx),%eax
616ed5:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
616edb:	8b 10                	mov    (%eax),%edx
616edd:	8b c8                	mov    %eax,%ecx
616edf:	5d                   	pop    %ebp
616ee0:	ff 62 7c             	jmp    *0x7c(%edx)
616ee3:	cc                   	int3
616ee4:	cc                   	int3
616ee5:	cc                   	int3
616ee6:	cc                   	int3
616ee7:	cc                   	int3
616ee8:	cc                   	int3
616ee9:	cc                   	int3
616eea:	cc                   	int3
616eeb:	cc                   	int3
616eec:	cc                   	int3
616eed:	cc                   	int3
616eee:	cc                   	int3
616eef:	cc                   	int3
616ef0:	55                   	push   %ebp
616ef1:	8b ec                	mov    %esp,%ebp
616ef3:	51                   	push   %ecx
616ef4:	51                   	push   %ecx
616ef5:	56                   	push   %esi
616ef6:	8b 75 0c             	mov    0xc(%ebp),%esi
616ef9:	0f 57 c0             	xorps  %xmm0,%xmm0
616efc:	57                   	push   %edi
616efd:	ff 75 14             	push   0x14(%ebp)
616f00:	8b f9                	mov    %ecx,%edi
616f02:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
616f07:	ff 75 10             	push   0x10(%ebp)
616f0a:	8d 4d f8             	lea    -0x8(%ebp),%ecx
616f0d:	ff 76 04             	push   0x4(%esi)
616f10:	8b 07                	mov    (%edi),%eax
616f12:	ff 36                	push   (%esi)
616f14:	51                   	push   %ecx
616f15:	ff 75 08             	push   0x8(%ebp)
616f18:	8b cf                	mov    %edi,%ecx
616f1a:	ff 90 80 00 00 00    	call   *0x80(%eax)
616f20:	8b 4d f8             	mov    -0x8(%ebp),%ecx
616f23:	01 4f 1c             	add    %ecx,0x1c(%edi)
616f26:	89 0e                	mov    %ecx,(%esi)
616f28:	8b 4d fc             	mov    -0x4(%ebp),%ecx
616f2b:	5f                   	pop    %edi
616f2c:	89 4e 04             	mov    %ecx,0x4(%esi)
616f2f:	5e                   	pop    %esi
616f30:	8b e5                	mov    %ebp,%esp
616f32:	5d                   	pop    %ebp
616f33:	c2 10 00             	ret    $0x10
616f36:	55                   	push   %ebp
616f37:	8b ec                	mov    %esp,%ebp
616f39:	51                   	push   %ecx
616f3a:	51                   	push   %ecx
616f3b:	53                   	push   %ebx
616f3c:	56                   	push   %esi
616f3d:	57                   	push   %edi
616f3e:	6a 14                	push   $0x14
616f40:	8b f1                	mov    %ecx,%esi
616f42:	e8 fb a0 fc ff       	call   0x5e1042
616f47:	8a 5d 10             	mov    0x10(%ebp),%bl
616f4a:	8b f8                	mov    %eax,%edi
616f4c:	89 7d f8             	mov    %edi,-0x8(%ebp)
616f4f:	59                   	pop    %ecx
616f50:	85 ff                	test   %edi,%edi
616f52:	74 21                	je     0x616f75
616f54:	8b 45 0c             	mov    0xc(%ebp),%eax
616f57:	8b 4d 08             	mov    0x8(%ebp),%ecx
616f5a:	89 4f 04             	mov    %ecx,0x4(%edi)
616f5d:	88 5f 08             	mov    %bl,0x8(%edi)
616f60:	c6 47 09 00          	movb   $0x0,0x9(%edi)
616f64:	83 67 0c 00          	andl   $0x0,0xc(%edi)
616f68:	c7 07 98 bc 6d 00    	movl   $0x6dbc98,(%edi)
616f6e:	8a 00                	mov    (%eax),%al
616f70:	88 47 10             	mov    %al,0x10(%edi)
616f73:	eb 02                	jmp    0x616f77
616f75:	33 ff                	xor    %edi,%edi
616f77:	8b 46 04             	mov    0x4(%esi),%eax
616f7a:	8d 4f 0c             	lea    0xc(%edi),%ecx
616f7d:	83 66 04 00          	andl   $0x0,0x4(%esi)
616f81:	50                   	push   %eax
616f82:	e8 cc e6 ff ff       	call   0x615653
616f87:	83 65 10 00          	andl   $0x0,0x10(%ebp)
616f8b:	8d 4e 04             	lea    0x4(%esi),%ecx
616f8e:	57                   	push   %edi
616f8f:	e8 bf e6 ff ff       	call   0x615653
616f94:	8d 4d 10             	lea    0x10(%ebp),%ecx
616f97:	88 5e 08             	mov    %bl,0x8(%esi)
616f9a:	e8 f1 05 e7 ff       	call   0x487590
616f9f:	5f                   	pop    %edi
616fa0:	8b c6                	mov    %esi,%eax
616fa2:	5e                   	pop    %esi
616fa3:	5b                   	pop    %ebx
616fa4:	8b e5                	mov    %ebp,%esp
616fa6:	5d                   	pop    %ebp
616fa7:	c2 0c 00             	ret    $0xc
616faa:	6a 48                	push   $0x48
616fac:	b8 c8 22 66 00       	mov    $0x6622c8,%eax
616fb1:	e8 39 b0 fc ff       	call   0x5e1fef
616fb6:	8b 45 08             	mov    0x8(%ebp),%eax
616fb9:	8b 55 0c             	mov    0xc(%ebp),%edx
616fbc:	8b 08                	mov    (%eax),%ecx
616fbe:	8b 02                	mov    (%edx),%eax
616fc0:	48                   	dec    %eax
616fc1:	03 c1                	add    %ecx,%eax
616fc3:	3b c1                	cmp    %ecx,%eax
616fc5:	73 34                	jae    0x616ffb
616fc7:	68 ec c5 6d 00       	push   $0x6dc5ec
616fcc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
616fcf:	e8 3c 17 e2 ff       	call   0x438710
616fd4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
616fd8:	8d 45 d8             	lea    -0x28(%ebp),%eax
616fdb:	50                   	push   %eax
616fdc:	6a 01                	push   $0x1
616fde:	8d 4d b0             	lea    -0x50(%ebp),%ecx
616fe1:	e8 62 c8 ff ff       	call   0x613848
616fe6:	68 6c 27 70 00       	push   $0x70276c
616feb:	8d 45 b0             	lea    -0x50(%ebp),%eax
616fee:	c7 45 b0 38 37 69 00 	movl   $0x693738,-0x50(%ebp)
616ff5:	50                   	push   %eax
616ff6:	e8 37 ba fc ff       	call   0x5e2a32
616ffb:	89 45 ac             	mov    %eax,-0x54(%ebp)
616ffe:	8d 45 ac             	lea    -0x54(%ebp),%eax
617001:	52                   	push   %edx
617002:	50                   	push   %eax
617003:	e8 d7 f5 ff ff       	call   0x6165df
617008:	59                   	pop    %ecx
617009:	59                   	pop    %ecx
61700a:	e8 9b af fc ff       	call   0x5e1faa
61700f:	c3                   	ret
617010:	55                   	push   %ebp
617011:	8b ec                	mov    %esp,%ebp
617013:	8b 45 08             	mov    0x8(%ebp),%eax
617016:	0f b7 08             	movzwl (%eax),%ecx
617019:	8b 45 0c             	mov    0xc(%ebp),%eax
61701c:	3b 08                	cmp    (%eax),%ecx
61701e:	76 04                	jbe    0x617024
617020:	2b 08                	sub    (%eax),%ecx
617022:	eb 02                	jmp    0x617026
617024:	33 c9                	xor    %ecx,%ecx
617026:	66 8b c1             	mov    %cx,%ax
617029:	5d                   	pop    %ebp
61702a:	c3                   	ret
61702b:	55                   	push   %ebp
61702c:	8b ec                	mov    %esp,%ebp
61702e:	53                   	push   %ebx
61702f:	8b 5d 14             	mov    0x14(%ebp),%ebx
617032:	39 5d 10             	cmp    %ebx,0x10(%ebp)
617035:	75 05                	jne    0x61703c
617037:	8b 45 0c             	mov    0xc(%ebp),%eax
61703a:	eb 68                	jmp    0x6170a4
61703c:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
617040:	57                   	push   %edi
617041:	74 41                	je     0x617084
617043:	8b 4d 08             	mov    0x8(%ebp),%ecx
617046:	56                   	push   %esi
617047:	6a 00                	push   $0x0
617049:	53                   	push   %ebx
61704a:	e8 eb 2a 00 00       	call   0x619b3a
61704f:	8b 4d 10             	mov    0x10(%ebp),%ecx
617052:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
617055:	3b d9                	cmp    %ecx,%ebx
617057:	8b f0                	mov    %eax,%esi
617059:	0f 42 cb             	cmovb  %ebx,%ecx
61705c:	03 c9                	add    %ecx,%ecx
61705e:	51                   	push   %ecx
61705f:	ff 75 0c             	push   0xc(%ebp)
617062:	52                   	push   %edx
617063:	56                   	push   %esi
617064:	e8 2e e6 ff ff       	call   0x615697
617069:	8b 7d 0c             	mov    0xc(%ebp),%edi
61706c:	33 c0                	xor    %eax,%eax
61706e:	8b 4d 10             	mov    0x10(%ebp),%ecx
617071:	ff 75 0c             	push   0xc(%ebp)
617074:	66 f3 ab             	rep stos %ax,%es:(%edi)
617077:	e8 54 94 ed ff       	call   0x4f04d0
61707c:	83 c4 14             	add    $0x14,%esp
61707f:	8b c6                	mov    %esi,%eax
617081:	5e                   	pop    %esi
617082:	eb 1f                	jmp    0x6170a3
617084:	8b 7d 0c             	mov    0xc(%ebp),%edi
617087:	33 c0                	xor    %eax,%eax
617089:	8b 4d 10             	mov    0x10(%ebp),%ecx
61708c:	ff 75 0c             	push   0xc(%ebp)
61708f:	66 f3 ab             	rep stos %ax,%es:(%edi)
617092:	e8 39 94 ed ff       	call   0x4f04d0
617097:	59                   	pop    %ecx
617098:	8b 4d 08             	mov    0x8(%ebp),%ecx
61709b:	6a 00                	push   $0x0
61709d:	53                   	push   %ebx
61709e:	e8 97 2a 00 00       	call   0x619b3a
6170a3:	5f                   	pop    %edi
6170a4:	5b                   	pop    %ebx
6170a5:	5d                   	pop    %ebp
6170a6:	c3                   	ret
6170a7:	55                   	push   %ebp
6170a8:	8b ec                	mov    %esp,%ebp
6170aa:	53                   	push   %ebx
6170ab:	8b 5d 14             	mov    0x14(%ebp),%ebx
6170ae:	57                   	push   %edi