618995:	8b 8f c4 01 00 00    	mov    0x1c4(%edi),%ecx
61899b:	0f 42 5d 0c          	cmovb  0xc(%ebp),%ebx
61899f:	03 ca                	add    %edx,%ecx
6189a1:	53                   	push   %ebx
6189a2:	ff 75 08             	push   0x8(%ebp)
6189a5:	03 ce                	add    %esi,%ecx
6189a7:	51                   	push   %ecx
6189a8:	e8 53 a5 fc ff       	call   0x5e2f00
6189ad:	83 c4 0c             	add    $0xc,%esp
6189b0:	8b c3                	mov    %ebx,%eax
6189b2:	01 9f 7c 01 00 00    	add    %ebx,0x17c(%edi)
6189b8:	5f                   	pop    %edi
6189b9:	5e                   	pop    %esi
6189ba:	5b                   	pop    %ebx
6189bb:	8b e5                	mov    %ebp,%esp
6189bd:	5d                   	pop    %ebp
6189be:	c2 08 00             	ret    $0x8
6189c1:	8b 41 1c             	mov    0x1c(%ecx),%eax
6189c4:	c6 41 18 00          	movb   $0x0,0x18(%ecx)
6189c8:	c3                   	ret
6189c9:	55                   	push   %ebp
6189ca:	8b ec                	mov    %esp,%ebp
6189cc:	51                   	push   %ecx
6189cd:	57                   	push   %edi
6189ce:	8b f9                	mov    %ecx,%edi
6189d0:	80 7f 18 00          	cmpb   $0x0,0x18(%edi)
6189d4:	74 0f                	je     0x6189e5
6189d6:	33 c0                	xor    %eax,%eax
6189d8:	3b 47 24             	cmp    0x24(%edi),%eax
6189db:	1b c0                	sbb    %eax,%eax
6189dd:	83 e0 08             	and    $0x8,%eax
6189e0:	01 47 1c             	add    %eax,0x1c(%edi)
6189e3:	eb 58                	jmp    0x618a3d
6189e5:	53                   	push   %ebx
6189e6:	8b 5f 28             	mov    0x28(%edi),%ebx
6189e9:	56                   	push   %esi
6189ea:	33 f6                	xor    %esi,%esi
6189ec:	85 db                	test   %ebx,%ebx
6189ee:	74 20                	je     0x618a10
6189f0:	8b 07                	mov    (%edi),%eax
6189f2:	8b b7 3c 01 00 00    	mov    0x13c(%edi),%esi
6189f8:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
6189fe:	6a 01                	push   $0x1
618a00:	6a 00                	push   $0x0
618a02:	53                   	push   %ebx
618a03:	8b 10                	mov    (%eax),%edx
618a05:	8b c8                	mov    %eax,%ecx
618a07:	56                   	push   %esi
618a08:	ff 52 18             	call   *0x18(%edx)
618a0b:	33 f6                	xor    %esi,%esi
618a0d:	89 77 28             	mov    %esi,0x28(%edi)
618a10:	39 77 24             	cmp    %esi,0x24(%edi)
618a13:	76 26                	jbe    0x618a3b
618a15:	8a 47 20             	mov    0x20(%edi),%al
618a18:	8b cf                	mov    %edi,%ecx
618a1a:	88 45 fc             	mov    %al,-0x4(%ebp)
618a1d:	8b 07                	mov    (%edi),%eax
618a1f:	ff 90 a4 00 00 00    	call   *0xa4(%eax)
618a25:	6a 01                	push   $0x1
618a27:	56                   	push   %esi
618a28:	6a 01                	push   $0x1
618a2a:	8b 10                	mov    (%eax),%edx
618a2c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
618a2f:	51                   	push   %ecx
618a30:	8b c8                	mov    %eax,%ecx
618a32:	ff 52 14             	call   *0x14(%edx)
618a35:	89 77 20             	mov    %esi,0x20(%edi)
618a38:	89 77 24             	mov    %esi,0x24(%edi)
618a3b:	5e                   	pop    %esi
618a3c:	5b                   	pop    %ebx
618a3d:	5f                   	pop    %edi
618a3e:	8b e5                	mov    %ebp,%esp
618a40:	5d                   	pop    %ebp
618a41:	c3                   	ret
618a42:	53                   	push   %ebx
618a43:	8b dc                	mov    %esp,%ebx
618a45:	51                   	push   %ecx
618a46:	51                   	push   %ecx
618a47:	83 e4 f8             	and    $0xfffffff8,%esp
618a4a:	83 c4 04             	add    $0x4,%esp
618a4d:	55                   	push   %ebp
618a4e:	8b 6b 04             	mov    0x4(%ebx),%ebp
618a51:	89 6c 24 04          	mov    %ebp,0x4(%esp)
618a55:	8b ec                	mov    %esp,%ebp
618a57:	6a ff                	push   $0xffffffff
618a59:	68 97 24 66 00       	push   $0x662497
618a5e:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
618a64:	50                   	push   %eax
618a65:	53                   	push   %ebx
618a66:	b8 78 12 00 00       	mov    $0x1278,%eax
618a6b:	e8 80 8a fc ff       	call   0x5e14f0
618a70:	a1 d4 89 72 00       	mov    0x7289d4,%eax
618a75:	33 c5                	xor    %ebp,%eax
618a77:	89 45 ec             	mov    %eax,-0x14(%ebp)
618a7a:	56                   	push   %esi
618a7b:	57                   	push   %edi
618a7c:	50                   	push   %eax
618a7d:	8d 45 f4             	lea    -0xc(%ebp),%eax
618a80:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
618a86:	8b 73 14             	mov    0x14(%ebx),%esi
618a89:	8d 8d a8 ed ff ff    	lea    -0x1258(%ebp),%ecx
618a8f:	8b 43 08             	mov    0x8(%ebx),%eax
618a92:	8b 7b 0c             	mov    0xc(%ebx),%edi
618a95:	56                   	push   %esi
618a96:	89 85 7c ed ff ff    	mov    %eax,-0x1284(%ebp)
618a9c:	89 bd 90 ed ff ff    	mov    %edi,-0x1270(%ebp)
618aa2:	89 bd 88 ed ff ff    	mov    %edi,-0x1278(%ebp)
618aa8:	89 b5 80 ed ff ff    	mov    %esi,-0x1280(%ebp)
618aae:	e8 56 ef ff ff       	call   0x617a09
618ab3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
618ab7:	33 d2                	xor    %edx,%edx
618ab9:	85 f6                	test   %esi,%esi
618abb:	74 18                	je     0x618ad5
618abd:	8b 7b 10             	mov    0x10(%ebx),%edi
618ac0:	8b 45 94             	mov    -0x6c(%ebp),%eax
618ac3:	89 14 d0             	mov    %edx,(%eax,%edx,8)
618ac6:	8b 45 94             	mov    -0x6c(%ebp),%eax
618ac9:	8b 0c 97             	mov    (%edi,%edx,4),%ecx
618acc:	89 4c d0 04          	mov    %ecx,0x4(%eax,%edx,8)
618ad0:	42                   	inc    %edx
618ad1:	3b d6                	cmp    %esi,%edx
618ad3:	72 eb                	jb     0x618ac0
618ad5:	8a 85 a4 ed ff ff    	mov    -0x125c(%ebp),%al
618adb:	8d 95 a4 ed ff ff    	lea    -0x125c(%ebp),%edx
618ae1:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
618ae4:	88 85 a4 ed ff ff    	mov    %al,-0x125c(%ebp)
618aea:	8b 45 90             	mov    -0x70(%ebp),%eax
618aed:	52                   	push   %edx
618aee:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
618af1:	50                   	push   %eax
618af2:	51                   	push   %ecx
618af3:	e8 3f ed ff ff       	call   0x617837
618af8:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
618afb:	8d 95 a4 ed ff ff    	lea    -0x125c(%ebp),%edx
618b01:	8b 45 90             	mov    -0x70(%ebp),%eax
618b04:	83 a5 98 ed ff ff 00 	andl   $0x0,-0x1268(%ebp)
618b0b:	52                   	push   %edx
618b0c:	8d 95 98 ed ff ff    	lea    -0x1268(%ebp),%edx
618b12:	52                   	push   %edx
618b13:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
618b16:	50                   	push   %eax
618b17:	51                   	push   %ecx
618b18:	e8 3a ed ff ff       	call   0x617857
618b1d:	8b c8                	mov    %eax,%ecx
618b1f:	83 c4 1c             	add    $0x1c,%esp
618b22:	2b 4d 94             	sub    -0x6c(%ebp),%ecx
618b25:	c1 f9 03             	sar    $0x3,%ecx
618b28:	89 8d 84 ed ff ff    	mov    %ecx,-0x127c(%ebp)
618b2e:	3b ce                	cmp    %esi,%ecx
618b30:	75 33                	jne    0x618b65
618b32:	8b 8d 7c ed ff ff    	mov    -0x1284(%ebp),%ecx
618b38:	8d 85 90 ed ff ff    	lea    -0x1270(%ebp),%eax
618b3e:	83 a5 90 ed ff ff 00 	andl   $0x0,-0x1270(%ebp)
618b45:	c6 85 98 ed ff ff 00 	movb   $0x0,-0x1268(%ebp)
618b4c:	ff b5 98 ed ff ff    	push   -0x1268(%ebp)
618b52:	50                   	push   %eax
618b53:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
618b56:	50                   	push   %eax
618b57:	51                   	push   %ecx
618b58:	e8 95 e6 ff ff       	call   0x6171f2
618b5d:	83 c4 10             	add    $0x10,%esp
618b60:	e9 a5 02 00 00       	jmp    0x618e0a
618b65:	8d 04 36             	lea    (%esi,%esi,1),%eax
618b68:	2b c1                	sub    %ecx,%eax
618b6a:	8d 8d a8 ed ff ff    	lea    -0x1258(%ebp),%ecx
618b70:	48                   	dec    %eax
618b71:	50                   	push   %eax
618b72:	e8 d6 11 00 00       	call   0x619d4d
618b77:	8b 7d 90             	mov    -0x70(%ebp),%edi
618b7a:	8b ce                	mov    %esi,%ecx
618b7c:	8b 95 84 ed ff ff    	mov    -0x127c(%ebp),%edx
618b82:	3b f7                	cmp    %edi,%esi
618b84:	89 bd 98 ed ff ff    	mov    %edi,-0x1268(%ebp)
618b8a:	8b c6                	mov    %esi,%eax
618b8c:	8b bd 90 ed ff ff    	mov    -0x1270(%ebp),%edi
618b92:	89 b5 8c ed ff ff    	mov    %esi,-0x1274(%ebp)
618b98:	0f 83 dc 00 00 00    	jae    0x618c7a
618b9e:	8b 7d 94             	mov    -0x6c(%ebp),%edi
618ba1:	89 bd 98 ed ff ff    	mov    %edi,-0x1268(%ebp)
618ba7:	3b d6                	cmp    %esi,%edx
618ba9:	74 19                	je     0x618bc4
618bab:	3b c8                	cmp    %eax,%ecx
618bad:	73 0a                	jae    0x618bb9
618baf:	8b 44 cf 04          	mov    0x4(%edi,%ecx,8),%eax
618bb3:	3b 44 d7 04          	cmp    0x4(%edi,%edx,8),%eax
618bb7:	72 0b                	jb     0x618bc4
618bb9:	8b c2                	mov    %edx,%eax
618bbb:	42                   	inc    %edx
618bbc:	89 85 94 ed ff ff    	mov    %eax,-0x126c(%ebp)
618bc2:	eb 09                	jmp    0x618bcd
618bc4:	8b c1                	mov    %ecx,%eax
618bc6:	89 8d 94 ed ff ff    	mov    %ecx,-0x126c(%ebp)
618bcc:	41                   	inc    %ecx
618bcd:	8b 44 c7 04          	mov    0x4(%edi,%eax,8),%eax
618bd1:	8b bd 8c ed ff ff    	mov    -0x1274(%ebp),%edi
618bd7:	8b b5 98 ed ff ff    	mov    -0x1268(%ebp),%esi
618bdd:	89 44 fe 04          	mov    %eax,0x4(%esi,%edi,8)
618be1:	8b 45 94             	mov    -0x6c(%ebp),%eax
618be4:	8b b5 94 ed ff ff    	mov    -0x126c(%ebp),%esi
618bea:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
618bee:	8b 45 94             	mov    -0x6c(%ebp),%eax
618bf1:	89 85 94 ed ff ff    	mov    %eax,-0x126c(%ebp)
618bf7:	3b 95 80 ed ff ff    	cmp    -0x1280(%ebp),%edx
618bfd:	74 2d                	je     0x618c2c
618bff:	3b cf                	cmp    %edi,%ecx
618c01:	73 12                	jae    0x618c15
618c03:	8b bd 94 ed ff ff    	mov    -0x126c(%ebp),%edi
618c09:	8b 44 c8 04          	mov    0x4(%eax,%ecx,8),%eax
618c0d:	3b 44 d7 04          	cmp    0x4(%edi,%edx,8),%eax
618c11:	8b c7                	mov    %edi,%eax
618c13:	72 11                	jb     0x618c26
618c15:	8b bd 8c ed ff ff    	mov    -0x1274(%ebp),%edi
618c1b:	8b f2                	mov    %edx,%esi
618c1d:	89 b5 98 ed ff ff    	mov    %esi,-0x1268(%ebp)
618c23:	42                   	inc    %edx
618c24:	eb 0f                	jmp    0x618c35
618c26:	8b bd 8c ed ff ff    	mov    -0x1274(%ebp),%edi
618c2c:	8b f1                	mov    %ecx,%esi
618c2e:	89 8d 98 ed ff ff    	mov    %ecx,-0x1268(%ebp)
618c34:	41                   	inc    %ecx
618c35:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
618c39:	8b b5 94 ed ff ff    	mov    -0x126c(%ebp),%esi
618c3f:	01 44 fe 04          	add    %eax,0x4(%esi,%edi,8)
618c43:	8b b5 98 ed ff ff    	mov    -0x1268(%ebp),%esi
618c49:	8b 45 94             	mov    -0x6c(%ebp),%eax
618c4c:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
618c50:	8b 85 8c ed ff ff    	mov    -0x1274(%ebp),%eax
618c56:	8b 75 90             	mov    -0x70(%ebp),%esi
618c59:	40                   	inc    %eax
618c5a:	89 b5 98 ed ff ff    	mov    %esi,-0x1268(%ebp)
618c60:	3b c6                	cmp    %esi,%eax
618c62:	8b b5 80 ed ff ff    	mov    -0x1280(%ebp),%esi
618c68:	89 85 8c ed ff ff    	mov    %eax,-0x1274(%ebp)
618c6e:	0f 82 2a ff ff ff    	jb     0x618b9e
618c74:	8b bd 90 ed ff ff    	mov    -0x1270(%ebp),%edi
618c7a:	8b 45 94             	mov    -0x6c(%ebp),%eax
618c7d:	8b 8d 98 ed ff ff    	mov    -0x1268(%ebp),%ecx
618c83:	83 64 c8 fc 00       	andl   $0x0,-0x4(%eax,%ecx,8)
618c88:	8b 55 90             	mov    -0x70(%ebp),%edx
618c8b:	83 fa 02             	cmp    $0x2,%edx
618c8e:	72 1a                	jb     0x618caa
618c90:	83 c2 fe             	add    $0xfffffffe,%edx
618c93:	eb 11                	jmp    0x618ca6
618c95:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
618c98:	8b 44 d1 04          	mov    0x4(%ecx,%edx,8),%eax
618c9c:	8b 44 c1 04          	mov    0x4(%ecx,%eax,8),%eax
618ca0:	40                   	inc    %eax
618ca1:	89 44 d1 04          	mov    %eax,0x4(%ecx,%edx,8)
618ca5:	4a                   	dec    %edx
618ca6:	3b d6                	cmp    %esi,%edx
618ca8:	73 eb                	jae    0x618c95
618caa:	83 a5 94 ed ff ff 00 	andl   $0x0,-0x126c(%ebp)
618cb1:	8d 47 01             	lea    0x1(%edi),%eax
618cb4:	50                   	push   %eax
618cb5:	8d 4d 98             	lea    -0x68(%ebp),%ecx
618cb8:	e8 6c ec ff ff       	call   0x617929
618cbd:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
618cc0:	8d 95 90 ed ff ff    	lea    -0x1270(%ebp),%edx
618cc6:	8b 45 e0             	mov    -0x20(%ebp),%eax
618cc9:	83 a5 90 ed ff ff 00 	andl   $0x0,-0x1270(%ebp)
618cd0:	c6 85 98 ed ff ff 00 	movb   $0x0,-0x1268(%ebp)
618cd7:	ff b5 98 ed ff ff    	push   -0x1268(%ebp)
618cdd:	8d 04 81             	lea    (%ecx,%eax,4),%eax
618ce0:	52                   	push   %edx
618ce1:	50                   	push   %eax
618ce2:	51                   	push   %ecx
618ce3:	e8 0a e5 ff ff       	call   0x6171f2
618ce8:	8b 95 84 ed ff ff    	mov    -0x127c(%ebp),%edx
618cee:	33 c0                	xor    %eax,%eax
618cf0:	83 c4 10             	add    $0x10,%esp
618cf3:	89 95 90 ed ff ff    	mov    %edx,-0x1270(%ebp)
618cf9:	40                   	inc    %eax
618cfa:	3b d6                	cmp    %esi,%edx
618cfc:	73 56                	jae    0x618d54
618cfe:	8b c2                	mov    %edx,%eax
618d00:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
618d03:	8d 95 88 ed ff ff    	lea    -0x1278(%ebp),%edx
618d09:	8b 44 c1 04          	mov    0x4(%ecx,%eax,8),%eax
618d0d:	8b 4c c1 04          	mov    0x4(%ecx,%eax,8),%ecx
618d11:	8d 85 98 ed ff ff    	lea    -0x1268(%ebp),%eax
618d17:	41                   	inc    %ecx
618d18:	3b cf                	cmp    %edi,%ecx
618d1a:	89 8d 98 ed ff ff    	mov    %ecx,-0x1268(%ebp)
618d20:	8b cf                	mov    %edi,%ecx
618d22:	0f 43 c2             	cmovae %edx,%eax
618d25:	8b 10                	mov    (%eax),%edx
618d27:	2b ca                	sub    %edx,%ecx
618d29:	8b 45 e4             	mov    -0x1c(%ebp),%eax
618d2c:	ff 04 90             	incl   (%eax,%edx,4)
618d2f:	33 c0                	xor    %eax,%eax
618d31:	40                   	inc    %eax
618d32:	d3 e0                	shl    %cl,%eax
618d34:	01 85 94 ed ff ff    	add    %eax,-0x126c(%ebp)
618d3a:	8b 85 90 ed ff ff    	mov    -0x1270(%ebp),%eax
618d40:	40                   	inc    %eax
618d41:	89 85 90 ed ff ff    	mov    %eax,-0x1270(%ebp)
618d47:	3b c6                	cmp    %esi,%eax
618d49:	72 b5                	jb     0x618d00
618d4b:	8b 95 84 ed ff ff    	mov    -0x127c(%ebp),%edx
618d51:	33 c0                	xor    %eax,%eax
618d53:	40                   	inc    %eax
618d54:	8b cf                	mov    %edi,%ecx
618d56:	d3 e0                	shl    %cl,%eax
618d58:	89 85 88 ed ff ff    	mov    %eax,-0x1278(%ebp)
618d5e:	8b c8                	mov    %eax,%ecx
618d60:	8b 85 94 ed ff ff    	mov    -0x126c(%ebp),%eax
618d66:	2b c1                	sub    %ecx,%eax
618d68:	3b 8d 94 ed ff ff    	cmp    -0x126c(%ebp),%ecx
618d6e:	1b c9                	sbb    %ecx,%ecx
618d70:	23 c8                	and    %eax,%ecx
618d72:	89 8d 88 ed ff ff    	mov    %ecx,-0x1278(%ebp)
618d78:	74 33                	je     0x618dad
618d7a:	8b d1                	mov    %ecx,%edx
618d7c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
618d7f:	8d 4f ff             	lea    -0x1(%edi),%ecx
618d82:	4a                   	dec    %edx
618d83:	eb 01                	jmp    0x618d86
618d85:	49                   	dec    %ecx
618d86:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
618d8a:	74 f9                	je     0x618d85
618d8c:	ff 0c 88             	decl   (%eax,%ecx,4)
618d8f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
618d92:	83 44 88 04 02       	addl   $0x2,0x4(%eax,%ecx,4)
618d97:	8b 45 e4             	mov    -0x1c(%ebp),%eax
618d9a:	ff 0c b8             	decl   (%eax,%edi,4)
618d9d:	85 d2                	test   %edx,%edx
618d9f:	75 db                	jne    0x618d7c
618da1:	8b b5 80 ed ff ff    	mov    -0x1280(%ebp),%esi
618da7:	8b 95 84 ed ff ff    	mov    -0x127c(%ebp),%edx
618dad:	33 c9                	xor    %ecx,%ecx
618daf:	85 d2                	test   %edx,%edx
618db1:	74 1b                	je     0x618dce
618db3:	8b b5 7c ed ff ff    	mov    -0x1284(%ebp),%esi
618db9:	8b 45 94             	mov    -0x6c(%ebp),%eax
618dbc:	8b 04 c8             	mov    (%eax,%ecx,8),%eax
618dbf:	83 24 86 00          	andl   $0x0,(%esi,%eax,4)
618dc3:	41                   	inc    %ecx
618dc4:	3b ca                	cmp    %edx,%ecx
618dc6:	72 f1                	jb     0x618db9
618dc8:	8b b5 80 ed ff ff    	mov    -0x1280(%ebp),%esi
618dce:	3b d6                	cmp    %esi,%edx
618dd0:	73 26                	jae    0x618df8
618dd2:	8b 8d 7c ed ff ff    	mov    -0x1284(%ebp),%ecx
618dd8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
618ddb:	eb 01                	jmp    0x618dde
618ddd:	4f                   	dec    %edi
618dde:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
618de2:	74 f9                	je     0x618ddd
618de4:	8b 45 94             	mov    -0x6c(%ebp),%eax
618de7:	8b 04 d0             	mov    (%eax,%edx,8),%eax