539cde:	0f 85 88 00 00 00    	jne    0x539d6c
539ce4:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
539ce8:	74 1e                	je     0x539d08
539cea:	85 d2                	test   %edx,%edx
539cec:	75 1a                	jne    0x539d08
539cee:	f7 46 04 00 00 04 00 	testl  $0x40000,0x4(%esi)
539cf5:	74 11                	je     0x539d08
539cf7:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
539cfd:	83 39 01             	cmpl   $0x1,(%ecx)
539d00:	74 70                	je     0x539d72
539d02:	f6 41 74 0a          	testb  $0xa,0x74(%ecx)
539d06:	75 6a                	jne    0x539d72
539d08:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
539d0e:	52                   	push   %edx
539d0f:	56                   	push   %esi
539d10:	57                   	push   %edi
539d11:	e8 6a 9a fc ff       	call   0x503780
539d16:	83 c4 10             	add    $0x10,%esp
539d19:	85 c0                	test   %eax,%eax
539d1b:	74 14                	je     0x539d31
539d1d:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
539d21:	0f 85 ba 00 00 00    	jne    0x539de1
539d27:	c7 85 20 ff ff ff ff 	movl   $0xffffffff,-0xe0(%ebp)
539d2e:	ff ff ff
539d31:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
539d37:	8b 4e 20             	mov    0x20(%esi),%ecx
539d3a:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
539d40:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
539d44:	0f 85 cd 20 00 00    	jne    0x53be17
539d4a:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
539d50:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
539d56:	80 38 08             	cmpb   $0x8,(%eax)
539d59:	76 17                	jbe    0x539d72
539d5b:	8b 46 30             	mov    0x30(%esi),%eax
539d5e:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
539d64:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
539d6a:	eb 06                	jmp    0x539d72
539d6c:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
539d72:	42                   	inc    %edx
539d73:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
539d77:	89 95 20 ff ff ff    	mov    %edx,-0xe0(%ebp)
539d7d:	0f 84 ad fe ff ff    	je     0x539c30
539d83:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
539d87:	0f 84 81 00 00 00    	je     0x539e0e
539d8d:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
539d93:	56                   	push   %esi
539d94:	57                   	push   %edi
539d95:	e8 56 00 fd ff       	call   0x509df0
539d9a:	83 c4 0c             	add    $0xc,%esp
539d9d:	8b d8                	mov    %eax,%ebx
539d9f:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
539da3:	75 09                	jne    0x539dae
539da5:	57                   	push   %edi
539da6:	e8 85 fe 00 00       	call   0x549c30
539dab:	83 c4 04             	add    $0x4,%esp
539dae:	5f                   	pop    %edi
539daf:	5e                   	pop    %esi
539db0:	8b c3                	mov    %ebx,%eax
539db2:	5b                   	pop    %ebx
539db3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
539db6:	33 cd                	xor    %ebp,%ecx
539db8:	e8 1d 77 0a 00       	call   0x5e14da
539dbd:	8b e5                	mov    %ebp,%esp
539dbf:	5d                   	pop    %ebp
539dc0:	c3                   	ret
539dc1:	8b 40 1c             	mov    0x1c(%eax),%eax
539dc4:	ff 30                	push   (%eax)
539dc6:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
539dcc:	ff 30                	push   (%eax)
539dce:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
539dd2:	50                   	push   %eax
539dd3:	68 00 b3 6b 00       	push   $0x6bb300
539dd8:	57                   	push   %edi
539dd9:	e8 82 94 fe ff       	call   0x523260
539dde:	83 c4 14             	add    $0x14,%esp
539de1:	8b 9d 3c ff ff ff    	mov    -0xc4(%ebp),%ebx
539de7:	8b 75 d0             	mov    -0x30(%ebp),%esi
539dea:	85 f6                	test   %esi,%esi
539dec:	0f 84 b9 20 00 00    	je     0x53beab
539df2:	83 bb f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ebx)
539df9:	0f 84 1f 20 00 00    	je     0x53be1e
539dff:	56                   	push   %esi
539e00:	53                   	push   %ebx
539e01:	e8 6a f6 fc ff       	call   0x509470
539e06:	83 c4 08             	add    $0x8,%esp
539e09:	e9 9d 20 00 00       	jmp    0x53beab
539e0e:	83 39 01             	cmpl   $0x1,(%ecx)
539e11:	7e 1d                	jle    0x539e30
539e13:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
539e19:	66 83 78 4c 00       	cmpw   $0x0,0x4c(%eax)
539e1e:	7c 10                	jl     0x539e30
539e20:	56                   	push   %esi
539e21:	57                   	push   %edi
539e22:	e8 39 69 fd ff       	call   0x510760
539e27:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
539e2d:	83 c4 08             	add    $0x8,%esp
539e30:	33 c0                	xor    %eax,%eax
539e32:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
539e38:	39 01                	cmp    %eax,(%ecx)
539e3a:	0f 8e fa 02 00 00    	jle    0x53a13a
539e40:	8d 04 c0             	lea    (%eax,%eax,8),%eax
539e43:	8d 40 01             	lea    0x1(%eax),%eax
539e46:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
539e49:	8b 46 38             	mov    0x38(%esi),%eax
539e4c:	0b 46 3c             	or     0x3c(%esi),%eax
539e4f:	89 b5 18 ff ff ff    	mov    %esi,-0xe8(%ebp)
539e55:	75 21                	jne    0x539e78
539e57:	8b 46 08             	mov    0x8(%esi),%eax
539e5a:	85 c0                	test   %eax,%eax
539e5c:	74 1a                	je     0x539e78
539e5e:	ff 76 04             	push   0x4(%esi)
539e61:	68 ad 57 6e 00       	push   $0x6e57ad
539e66:	50                   	push   %eax
539e67:	6a 14                	push   $0x14
539e69:	57                   	push   %edi
539e6a:	e8 31 f9 fd ff       	call   0x5197a0
539e6f:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
539e75:	83 c4 14             	add    $0x14,%esp
539e78:	8b 46 14             	mov    0x14(%esi),%eax
539e7b:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
539e81:	85 c0                	test   %eax,%eax
539e83:	0f 84 96 02 00 00    	je     0x53a11f
539e89:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
539e8f:	c7 85 40 ff ff ff 00 	movl   $0x0,-0xc0(%ebp)
539e96:	00 00 00
539e99:	50                   	push   %eax
539e9a:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
539ea0:	e8 bb cb fc ff       	call   0x506a60
539ea5:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
539eab:	b9 00 10 00 00       	mov    $0x1000,%ecx
539eb0:	01 87 d0 00 00 00    	add    %eax,0xd0(%edi)
539eb6:	83 c4 08             	add    $0x8,%esp
539eb9:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
539ebf:	66 85 48 4c          	test   %cx,0x4c(%eax)
539ec3:	75 26                	jne    0x539eeb
539ec5:	0f b6 46 24          	movzbl 0x24(%esi),%eax
539ec9:	c1 e8 05             	shr    $0x5,%eax
539ecc:	83 e0 01             	and    $0x1,%eax
539ecf:	50                   	push   %eax
539ed0:	ff 76 2c             	push   0x2c(%esi)
539ed3:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
539ed9:	ff 70 24             	push   0x24(%eax)
539edc:	ff b5 2c ff ff ff    	push   -0xd4(%ebp)
539ee2:	57                   	push   %edi
539ee3:	e8 68 6d fd ff       	call   0x510c50
539ee8:	83 c4 14             	add    $0x14,%esp
539eeb:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
539ef2:	8b 87 f0 00 00 00    	mov    0xf0(%edi),%eax
539ef8:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
539efe:	8b 46 08             	mov    0x8(%esi),%eax
539f01:	89 87 f0 00 00 00    	mov    %eax,0xf0(%edi)
539f07:	0f 85 bf 00 00 00    	jne    0x539fcc
539f0d:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
539f13:	83 38 01             	cmpl   $0x1,(%eax)
539f16:	74 0a                	je     0x539f22
539f18:	f6 40 74 0a          	testb  $0xa,0x74(%eax)
539f1c:	0f 84 aa 00 00 00    	je     0x539fcc
539f22:	8b 73 6c             	mov    0x6c(%ebx),%esi
539f25:	8b 47 2c             	mov    0x2c(%edi),%eax
539f28:	46                   	inc    %esi
539f29:	8b 8d 18 ff ff ff    	mov    -0xe8(%ebp),%ecx
539f2f:	40                   	inc    %eax
539f30:	56                   	push   %esi
539f31:	6a 00                	push   $0x0
539f33:	50                   	push   %eax
539f34:	6a 0d                	push   $0xd
539f36:	89 47 2c             	mov    %eax,0x2c(%edi)
539f39:	53                   	push   %ebx
539f3a:	89 41 1c             	mov    %eax,0x1c(%ecx)
539f3d:	e8 fe 7b 00 00       	call   0x541b40
539f42:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
539f48:	c6 45 e4 0d          	movb   $0xd,-0x1c(%ebp)
539f4c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
539f53:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
539f5a:	89 70 18             	mov    %esi,0x18(%eax)
539f5d:	8b 40 1c             	mov    0x1c(%eax),%eax
539f60:	89 45 e8             	mov    %eax,-0x18(%ebp)
539f63:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
539f69:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
539f70:	ff 70 10             	push   0x10(%eax)
539f73:	68 28 b3 6b 00       	push   $0x6bb328
539f78:	6a 01                	push   $0x1
539f7a:	57                   	push   %edi
539f7b:	e8 60 fc 00 00       	call   0x549be0
539f80:	8d 45 e4             	lea    -0x1c(%ebp),%eax
539f83:	50                   	push   %eax
539f84:	ff b5 2c ff ff ff    	push   -0xd4(%ebp)
539f8a:	57                   	push   %edi
539f8b:	e8 10 fb ff ff       	call   0x539aa0
539f90:	8b 95 18 ff ff ff    	mov    -0xe8(%ebp),%edx
539f96:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
539f9c:	8b 4a 10             	mov    0x10(%edx),%ecx
539f9f:	66 8b 40 02          	mov    0x2(%eax),%ax
539fa3:	66 89 41 2e          	mov    %ax,0x2e(%ecx)
539fa7:	ff 72 1c             	push   0x1c(%edx)
539faa:	8b 45 ec             	mov    -0x14(%ebp),%eax
539fad:	83 4a 28 10          	orl    $0x10,0x28(%edx)
539fb1:	53                   	push   %ebx
539fb2:	89 42 20             	mov    %eax,0x20(%edx)
539fb5:	e8 f6 86 00 00       	call   0x5426b0
539fba:	8d 46 ff             	lea    -0x1(%esi),%eax
539fbd:	50                   	push   %eax
539fbe:	53                   	push   %ebx
539fbf:	e8 9c 07 01 00       	call   0x54a760
539fc4:	83 c4 40             	add    $0x40,%esp
539fc7:	e9 0f 01 00 00       	jmp    0x53a0db
539fcc:	33 c0                	xor    %eax,%eax
539fce:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
539fd4:	8b 47 2c             	mov    0x2c(%edi),%eax
539fd7:	40                   	inc    %eax
539fd8:	50                   	push   %eax
539fd9:	6a 00                	push   $0x0
539fdb:	6a 45                	push   $0x45
539fdd:	89 47 2c             	mov    %eax,0x2c(%edi)
539fe0:	53                   	push   %ebx
539fe1:	89 46 1c             	mov    %eax,0x1c(%esi)
539fe4:	e8 f7 7a 00 00       	call   0x541ae0
539fe9:	83 c4 10             	add    $0x10,%esp
539fec:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
539ff2:	f6 46 28 08          	testb  $0x8,0x28(%esi)
539ff6:	8d 48 01             	lea    0x1(%eax),%ecx
539ff9:	89 4e 18             	mov    %ecx,0x18(%esi)
539ffc:	75 11                	jne    0x53a00f
539ffe:	6a 11                	push   $0x11
53a000:	53                   	push   %ebx
53a001:	e8 1a 7a 00 00       	call   0x541a20
53a006:	83 c4 08             	add    $0x8,%esp
53a009:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
53a00f:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
53a015:	56                   	push   %esi
53a016:	51                   	push   %ecx
53a017:	e8 44 e0 fc ff       	call   0x508060
53a01c:	83 c4 08             	add    $0x8,%esp
53a01f:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
53a025:	85 c0                	test   %eax,%eax
53a027:	74 2a                	je     0x53a053
53a029:	ff 70 2c             	push   0x2c(%eax)
53a02c:	ff 76 2c             	push   0x2c(%esi)
53a02f:	6a 62                	push   $0x62
53a031:	53                   	push   %ebx
53a032:	e8 a9 7a 00 00       	call   0x541ae0
53a037:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
53a03d:	83 c4 10             	add    $0x10,%esp
53a040:	8b 8d 2c ff ff ff    	mov    -0xd4(%ebp),%ecx
53a046:	8b 40 14             	mov    0x14(%eax),%eax
53a049:	66 8b 40 02          	mov    0x2(%eax),%ax
53a04d:	66 89 41 02          	mov    %ax,0x2(%ecx)
53a051:	eb 48                	jmp    0x53a09b
53a053:	8b 46 2c             	mov    0x2c(%esi),%eax
53a056:	89 45 e8             	mov    %eax,-0x18(%ebp)
53a059:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
53a05f:	c6 45 e4 0c          	movb   $0xc,-0x1c(%ebp)
53a063:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
53a06a:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
53a071:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
53a078:	ff 70 10             	push   0x10(%eax)
53a07b:	68 38 b3 6b 00       	push   $0x6bb338
53a080:	6a 01                	push   $0x1
53a082:	57                   	push   %edi
53a083:	e8 58 fb 00 00       	call   0x549be0
53a088:	8d 45 e4             	lea    -0x1c(%ebp),%eax
53a08b:	50                   	push   %eax
53a08c:	ff b5 2c ff ff ff    	push   -0xd4(%ebp)
53a092:	57                   	push   %edi
53a093:	e8 08 fa ff ff       	call   0x539aa0
53a098:	83 c4 1c             	add    $0x1c,%esp
53a09b:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
53a0a1:	8b 4e 10             	mov    0x10(%esi),%ecx
53a0a4:	66 8b 40 02          	mov    0x2(%eax),%ax
53a0a8:	66 89 41 2e          	mov    %ax,0x2e(%ecx)
53a0ac:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
53a0b2:	85 c0                	test   %eax,%eax
53a0b4:	74 0a                	je     0x53a0c0
53a0b6:	50                   	push   %eax
53a0b7:	53                   	push   %ebx
53a0b8:	e8 a3 06 01 00       	call   0x54a760
53a0bd:	83 c4 08             	add    $0x8,%esp
53a0c0:	ff 76 1c             	push   0x1c(%esi)
53a0c3:	6a 41                	push   $0x41
53a0c5:	53                   	push   %ebx
53a0c6:	e8 b5 79 00 00       	call   0x541a80
53a0cb:	50                   	push   %eax
53a0cc:	ff b5 18 ff ff ff    	push   -0xe8(%ebp)
53a0d2:	53                   	push   %ebx
53a0d3:	e8 58 7e 00 00       	call   0x541f30
53a0d8:	83 c4 18             	add    $0x18,%esp
53a0db:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
53a0e1:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
53a0e8:	c6 47 13 00          	movb   $0x0,0x13(%edi)
53a0ec:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
53a0f0:	0f 85 21 1d 00 00    	jne    0x53be17
53a0f6:	8b b5 38 ff ff ff    	mov    -0xc8(%ebp),%esi
53a0fc:	56                   	push   %esi
53a0fd:	e8 2e 23 00 00       	call   0x53c430
53a102:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
53a108:	83 c4 04             	add    $0x4,%esp
53a10b:	29 87 d0 00 00 00    	sub    %eax,0xd0(%edi)
53a111:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
53a117:	89 87 f0 00 00 00    	mov    %eax,0xf0(%edi)
53a11d:	eb 06                	jmp    0x53a125
53a11f:	8b b5 38 ff ff ff    	mov    -0xc8(%ebp),%esi
53a125:	8b 85 28 ff ff ff    	mov    -0xd8(%ebp),%eax
53a12b:	40                   	inc    %eax
53a12c:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
53a132:	3b 01                	cmp    (%ecx),%eax
53a134:	0f 8c 06 fd ff ff    	jl     0x539e40
53a13a:	8b 46 24             	mov    0x24(%esi),%eax
53a13d:	8b 4e 1c             	mov    0x1c(%esi),%ecx
53a140:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
53a146:	8b 46 28             	mov    0x28(%esi),%eax
53a149:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
53a14f:	8b 46 2c             	mov    0x2c(%esi),%eax
53a152:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
53a158:	8a 46 04             	mov    0x4(%esi),%al
53a15b:	24 01                	and    $0x1,%al
53a15d:	89 8d 20 ff ff ff    	mov    %ecx,-0xe0(%ebp)
53a163:	88 85 1f ff ff ff    	mov    %al,-0xe1(%ebp)
53a169:	88 45 f0             	mov    %al,-0x10(%ebp)
53a16c:	8b 46 04             	mov    0x4(%esi),%eax
53a16f:	24 09                	and    $0x9,%al
53a171:	3c 01                	cmp    $0x1,%al
53a173:	75 48                	jne    0x53a1bd
53a175:	6a ff                	push   $0xffffffff
53a177:	51                   	push   %ecx
53a178:	8b 8d 4c ff ff ff    	mov    -0xb4(%ebp),%ecx
53a17e:	51                   	push   %ecx
53a17f:	e8 ac d6 fe ff       	call   0x527830
53a184:	83 c4 0c             	add    $0xc,%esp
53a187:	85 c0                	test   %eax,%eax
53a189:	75 2c                	jne    0x53a1b7
53a18b:	39 46 44             	cmp    %eax,0x44(%esi)
53a18e:	75 27                	jne    0x53a1b7
53a190:	83 66 04 fe          	andl   $0xfffffffe,0x4(%esi)
53a194:	50                   	push   %eax
53a195:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
53a19b:	50                   	push   %eax
53a19c:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
53a1a2:	e8 19 d7 fe ff       	call   0x5278c0
53a1a7:	83 c4 0c             	add    $0xc,%esp
53a1aa:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
53a1b0:	83 4e 04 08          	orl    $0x8,0x4(%esi)
53a1b4:	89 46 28             	mov    %eax,0x28(%esi)
53a1b7:	8b 8d 20 ff ff ff    	mov    -0xe0(%ebp),%ecx
53a1bd:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53a1c3:	85 c0                	test   %eax,%eax
53a1c5:	74 44                	je     0x53a20b
53a1c7:	ff 31                	push   (%ecx)
53a1c9:	6a 00                	push   $0x0
53a1cb:	50                   	push   %eax
53a1cc:	57                   	push   %edi