525df7:	ff 75 10             	push   0x10(%ebp)
525dfa:	8b f0                	mov    %eax,%esi
525dfc:	8b 45 80             	mov    -0x80(%ebp),%eax
525dff:	c6 40 17 00          	movb   $0x0,0x17(%eax)
525e03:	ff 77 0c             	push   0xc(%edi)
525e06:	50                   	push   %eax
525e07:	e8 44 f4 ff ff       	call   0x525250
525e0c:	8b 4d 80             	mov    -0x80(%ebp),%ecx
525e0f:	56                   	push   %esi
525e10:	89 45 10             	mov    %eax,0x10(%ebp)
525e13:	88 59 17             	mov    %bl,0x17(%ecx)
525e16:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
525e19:	53                   	push   %ebx
525e1a:	e8 41 49 02 00       	call   0x54a760
525e1f:	ff 75 10             	push   0x10(%ebp)
525e22:	56                   	push   %esi
525e23:	53                   	push   %ebx
525e24:	e8 47 c1 01 00       	call   0x541f70
525e29:	8b 45 10             	mov    0x10(%ebp),%eax
525e2c:	83 c4 2c             	add    $0x2c,%esp
525e2f:	5f                   	pop    %edi
525e30:	5e                   	pop    %esi
525e31:	5b                   	pop    %ebx
525e32:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525e35:	33 cd                	xor    %ebp,%ecx
525e37:	e8 9e b6 0b 00       	call   0x5e14da
525e3c:	8b e5                	mov    %ebp,%esp
525e3e:	5d                   	pop    %ebp
525e3f:	c3                   	ret
525e40:	8b 4f 14             	mov    0x14(%edi),%ecx
525e43:	33 d2                	xor    %edx,%edx
525e45:	8b 03                	mov    (%ebx),%eax
525e47:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
525e4d:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
525e53:	8d 41 04             	lea    0x4(%ecx),%eax
525e56:	89 55 90             	mov    %edx,-0x70(%ebp)
525e59:	8b 09                	mov    (%ecx),%ecx
525e5b:	ff 4b 38             	decl   0x38(%ebx)
525e5e:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
525e64:	8b 4b 38             	mov    0x38(%ebx),%ecx
525e67:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
525e6d:	8b 4f 0c             	mov    0xc(%edi),%ecx
525e70:	89 55 88             	mov    %edx,-0x78(%ebp)
525e73:	89 45 80             	mov    %eax,-0x80(%ebp)
525e76:	89 8d 6c ff ff ff    	mov    %ecx,-0x94(%ebp)
525e7c:	85 c9                	test   %ecx,%ecx
525e7e:	0f 84 8c 00 00 00    	je     0x525f10
525e84:	52                   	push   %edx
525e85:	51                   	push   %ecx
525e86:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
525e8c:	e8 cf 09 00 00       	call   0x526860
525e91:	8b f8                	mov    %eax,%edi
525e93:	83 c4 0c             	add    $0xc,%esp
525e96:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
525e9c:	89 7d 88             	mov    %edi,-0x78(%ebp)
525e9f:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
525ea3:	74 26                	je     0x525ecb
525ea5:	85 ff                	test   %edi,%edi
525ea7:	0f 84 d1 01 00 00    	je     0x52607e
525ead:	57                   	push   %edi
525eae:	50                   	push   %eax
525eaf:	e8 fc 08 00 00       	call   0x5267b0
525eb4:	8b 45 10             	mov    0x10(%ebp),%eax
525eb7:	83 c4 08             	add    $0x8,%esp
525eba:	5f                   	pop    %edi
525ebb:	5e                   	pop    %esi
525ebc:	5b                   	pop    %ebx
525ebd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525ec0:	33 cd                	xor    %ebp,%ecx
525ec2:	e8 13 b6 0b 00       	call   0x5e14da
525ec7:	8b e5                	mov    %ebp,%esp
525ec9:	5d                   	pop    %ebp
525eca:	c3                   	ret
525ecb:	8d 45 8c             	lea    -0x74(%ebp),%eax
525ece:	50                   	push   %eax
525ecf:	57                   	push   %edi
525ed0:	53                   	push   %ebx
525ed1:	e8 ea a6 fd ff       	call   0x5005c0
525ed6:	57                   	push   %edi
525ed7:	8b d0                	mov    %eax,%edx
525ed9:	e8 72 1e 00 00       	call   0x527d50
525ede:	6a 34                	push   $0x34
525ee0:	6a 00                	push   $0x0
525ee2:	8a 08                	mov    (%eax),%cl
525ee4:	81 60 04 ff ef ff ff 	andl   $0xffffefff,0x4(%eax)
525eeb:	88 48 02             	mov    %cl,0x2(%eax)
525eee:	c6 00 ad             	movb   $0xad,(%eax)
525ef1:	89 50 1c             	mov    %edx,0x1c(%eax)
525ef4:	8d 45 94             	lea    -0x6c(%ebp),%eax
525ef7:	50                   	push   %eax
525ef8:	e8 03 db 0b 00       	call   0x5e3a00
525efd:	8b 45 80             	mov    -0x80(%ebp),%eax
525f00:	8d 55 94             	lea    -0x6c(%ebp),%edx
525f03:	83 c4 1c             	add    $0x1c,%esp
525f06:	c6 45 94 35          	movb   $0x35,-0x6c(%ebp)
525f0a:	89 7d a0             	mov    %edi,-0x60(%ebp)
525f0d:	89 55 90             	mov    %edx,-0x70(%ebp)
525f10:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
525f16:	8b 7d 10             	mov    0x10(%ebp),%edi
525f19:	49                   	dec    %ecx
525f1a:	85 c9                	test   %ecx,%ecx
525f1c:	7e 74                	jle    0x525f92
525f1e:	49                   	dec    %ecx
525f1f:	d1 e9                	shr    $1,%ecx
525f21:	41                   	inc    %ecx
525f22:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
525f28:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
525f2f:	00
525f30:	83 bd 6c ff ff ff 00 	cmpl   $0x0,-0x94(%ebp)
525f37:	74 07                	je     0x525f40
525f39:	8b 00                	mov    (%eax),%eax
525f3b:	89 45 a4             	mov    %eax,-0x5c(%ebp)
525f3e:	eb 05                	jmp    0x525f45
525f40:	8b 10                	mov    (%eax),%edx
525f42:	89 55 90             	mov    %edx,-0x70(%ebp)
525f45:	ff 4b 38             	decl   0x38(%ebx)
525f48:	8b 73 38             	mov    0x38(%ebx),%esi
525f4b:	6a 10                	push   $0x10
525f4d:	56                   	push   %esi
525f4e:	52                   	push   %edx
525f4f:	53                   	push   %ebx
525f50:	e8 5b 0b 00 00       	call   0x526ab0
525f55:	8b 45 80             	mov    -0x80(%ebp),%eax
525f58:	57                   	push   %edi
525f59:	ff 70 14             	push   0x14(%eax)
525f5c:	53                   	push   %ebx
525f5d:	e8 6e dc ff ff       	call   0x523bd0
525f62:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
525f68:	ff 75 84             	push   -0x7c(%ebp)
525f6b:	e8 30 41 02 00       	call   0x54a0a0
525f70:	56                   	push   %esi
525f71:	8b 75 84             	mov    -0x7c(%ebp),%esi
525f74:	56                   	push   %esi
525f75:	e8 56 6d 02 00       	call   0x54ccd0
525f7a:	8b 45 80             	mov    -0x80(%ebp),%eax
525f7d:	83 c4 2c             	add    $0x2c,%esp
525f80:	8b 55 90             	mov    -0x70(%ebp),%edx
525f83:	83 c0 28             	add    $0x28,%eax
525f86:	83 ad 7c ff ff ff 01 	subl   $0x1,-0x84(%ebp)
525f8d:	89 45 80             	mov    %eax,-0x80(%ebp)
525f90:	75 9e                	jne    0x525f30
525f92:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
525f98:	57                   	push   %edi
525f99:	a8 01                	test   $0x1,%al
525f9b:	74 18                	je     0x525fb5
525f9d:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
525fa3:	8d 04 80             	lea    (%eax,%eax,4),%eax
525fa6:	ff 74 81 f0          	push   -0x10(%ecx,%eax,4)
525faa:	53                   	push   %ebx
525fab:	e8 20 dc ff ff       	call   0x523bd0
525fb0:	83 c4 0c             	add    $0xc,%esp
525fb3:	eb 0d                	jmp    0x525fc2
525fb5:	6a 00                	push   $0x0
525fb7:	6a 48                	push   $0x48
525fb9:	56                   	push   %esi
525fba:	e8 21 bb 01 00       	call   0x541ae0
525fbf:	83 c4 10             	add    $0x10,%esp
525fc2:	8b 45 88             	mov    -0x78(%ebp),%eax
525fc5:	85 c0                	test   %eax,%eax
525fc7:	74 0f                	je     0x525fd8
525fc9:	50                   	push   %eax
525fca:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
525fd0:	e8 db 07 00 00       	call   0x5267b0
525fd5:	83 c4 08             	add    $0x8,%esp
525fd8:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
525fde:	56                   	push   %esi
525fdf:	e8 ec 6c 02 00       	call   0x54ccd0
525fe4:	8b 45 10             	mov    0x10(%ebp),%eax
525fe7:	83 c4 08             	add    $0x8,%esp
525fea:	5f                   	pop    %edi
525feb:	5e                   	pop    %esi
525fec:	5b                   	pop    %ebx
525fed:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525ff0:	33 cd                	xor    %ebp,%ecx
525ff2:	e8 e3 b4 0b 00       	call   0x5e14da
525ff7:	8b e5                	mov    %ebp,%esp
525ff9:	5d                   	pop    %ebp
525ffa:	c3                   	ret
525ffb:	83 7b 78 00          	cmpl   $0x0,0x78(%ebx)
525fff:	75 21                	jne    0x526022
526001:	68 7c 92 6b 00       	push   $0x6b927c
526006:	53                   	push   %ebx
526007:	e8 54 d2 ff ff       	call   0x523260
52600c:	83 c4 08             	add    $0x8,%esp
52600f:	33 c0                	xor    %eax,%eax
526011:	5f                   	pop    %edi
526012:	5e                   	pop    %esi
526013:	5b                   	pop    %ebx
526014:	8b 4d fc             	mov    -0x4(%ebp),%ecx
526017:	33 cd                	xor    %ebp,%ecx
526019:	e8 bc b4 0b 00       	call   0x5e14da
52601e:	8b e5                	mov    %ebp,%esp
526020:	5d                   	pop    %ebp
526021:	c3                   	ret
526022:	80 7f 01 02          	cmpb   $0x2,0x1(%edi)
526026:	75 0e                	jne    0x526036
526028:	8b 43 74             	mov    0x74(%ebx),%eax
52602b:	8b cb                	mov    %ebx,%ecx
52602d:	85 c0                	test   %eax,%eax
52602f:	0f 45 c8             	cmovne %eax,%ecx
526032:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
526036:	8a 47 01             	mov    0x1(%edi),%al
526039:	6a 00                	push   $0x0
52603b:	3c 04                	cmp    $0x4,%al
52603d:	75 28                	jne    0x526067
52603f:	ff 77 08             	push   0x8(%edi)
526042:	6a 00                	push   $0x0
526044:	6a 04                	push   $0x4
526046:	6a 00                	push   $0x0
526048:	6a 44                	push   $0x44
52604a:	56                   	push   %esi
52604b:	e8 40 bb 01 00       	call   0x541b90
526050:	8b 45 10             	mov    0x10(%ebp),%eax
526053:	83 c4 1c             	add    $0x1c,%esp
526056:	5f                   	pop    %edi
526057:	5e                   	pop    %esi
526058:	5b                   	pop    %ebx
526059:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52605c:	33 cd                	xor    %ebp,%ecx
52605e:	e8 77 b4 0b 00       	call   0x5e14da
526063:	8b e5                	mov    %ebp,%esp
526065:	5d                   	pop    %ebp
526066:	c3                   	ret
526067:	6a 00                	push   $0x0
526069:	ff 77 08             	push   0x8(%edi)
52606c:	0f be c0             	movsbl %al,%eax
52606f:	50                   	push   %eax
526070:	68 13 07 00 00       	push   $0x713
526075:	53                   	push   %ebx
526076:	e8 85 78 00 00       	call   0x52d900
52607b:	83 c4 18             	add    $0x18,%esp
52607e:	8b 45 10             	mov    0x10(%ebp),%eax
526081:	5f                   	pop    %edi
526082:	5e                   	pop    %esi
526083:	5b                   	pop    %ebx
526084:	8b 4d fc             	mov    -0x4(%ebp),%ecx
526087:	33 cd                	xor    %ebp,%ecx
526089:	e8 4c b4 0b 00       	call   0x5e14da
52608e:	8b e5                	mov    %ebp,%esp
526090:	5d                   	pop    %ebp
526091:	c3                   	ret
526092:	8b 5d 10             	mov    0x10(%ebp),%ebx
526095:	53                   	push   %ebx
526096:	6a 00                	push   $0x0
526098:	6a 48                	push   $0x48
52609a:	56                   	push   %esi
52609b:	e8 40 ba 01 00       	call   0x541ae0
5260a0:	83 c4 10             	add    $0x10,%esp
5260a3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5260a6:	8b c3                	mov    %ebx,%eax
5260a8:	5f                   	pop    %edi
5260a9:	5e                   	pop    %esi
5260aa:	33 cd                	xor    %ebp,%ecx
5260ac:	5b                   	pop    %ebx
5260ad:	e8 28 b4 0b 00       	call   0x5e14da
5260b2:	8b e5                	mov    %ebp,%esp
5260b4:	5d                   	pop    %ebp
5260b5:	c3                   	ret
5260b6:	66 90                	xchg   %ax,%ax
5260b8:	dd 57 52             	fstl   0x52(%edi)
5260bb:	00 0f                	add    %cl,(%edi)
5260bd:	5c                   	pop    %esp
5260be:	52                   	push   %edx
5260bf:	00 1d 56 52 00 17    	add    %bl,0x17005256
5260c5:	57                   	push   %edi
5260c6:	52                   	push   %edx
5260c7:	00 75 56             	add    %dh,0x56(%ebp)
5260ca:	52                   	push   %edx
5260cb:	00 22                	add    %ah,(%edx)
5260cd:	5d                   	pop    %ebp
5260ce:	52                   	push   %edx
5260cf:	00 b9 5c 52 00 38    	add    %bh,0x3800525c(%ecx)
5260d5:	58                   	pop    %eax
5260d6:	52                   	push   %edx
5260d7:	00 90 56 52 00 fb    	add    %dl,-0x4ffadaa(%eax)
5260dd:	5f                   	pop    %edi
5260de:	52                   	push   %edx
5260df:	00 47 5d             	add    %al,0x5d(%edi)
5260e2:	52                   	push   %edx
5260e3:	00 cb                	add    %cl,%bl
5260e5:	52                   	push   %edx
5260e6:	52                   	push   %edx
5260e7:	00 46 55             	add    %al,0x55(%esi)
5260ea:	52                   	push   %edx
5260eb:	00 32                	add    %dh,(%edx)
5260ed:	55                   	push   %ebp
5260ee:	52                   	push   %edx
5260ef:	00 69 55             	add    %ch,0x55(%ecx)
5260f2:	52                   	push   %edx
5260f3:	00 fa                	add    %bh,%dl
5260f5:	54                   	push   %esp
5260f6:	52                   	push   %edx
5260f7:	00 b3 55 52 00 40    	add    %dh,0x40005255(%ebx)
5260fd:	5e                   	pop    %esi
5260fe:	52                   	push   %edx
5260ff:	00 2a                	add    %ch,(%edx)
526101:	53                   	push   %ebx
526102:	52                   	push   %edx
526103:	00 cd                	add    %cl,%ch
526105:	58                   	pop    %eax
526106:	52                   	push   %edx
526107:	00 d3                	add    %dl,%bl
526109:	52                   	push   %edx
52610a:	52                   	push   %edx
52610b:	00 1d 55 52 00 17    	add    %bl,0x17005255
526111:	59                   	pop    %ecx
526112:	52                   	push   %edx
526113:	00 4e 57             	add    %cl,0x57(%esi)
526116:	52                   	push   %edx
526117:	00 fc                	add    %bh,%ah
526119:	57                   	push   %edi
52611a:	52                   	push   %edx
52611b:	00 09                	add    %cl,(%ecx)
52611d:	56                   	push   %esi
52611e:	52                   	push   %edx
52611f:	00 c7                	add    %al,%bh
526121:	5d                   	pop    %ebp
526122:	52                   	push   %edx
526123:	00 5f 5c             	add    %bl,0x5c(%edi)
526126:	52                   	push   %edx
526127:	00 e9                	add    %ch,%cl
526129:	5d                   	pop    %ebp
52612a:	52                   	push   %edx
52612b:	00 92 60 52 00 00    	add    %dl,0x5260(%edx)
526131:	01 1d 1d 1d 1d 1d    	add    %ebx,0x1d1d1d1d
526137:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
52613c:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
526141:	02 1d 1d 1d 1d 1d    	add    0x1d1d1d1d,%bl
526147:	1d 03 03 04 1d       	sbb    $0x1d040303,%eax
52614c:	1d 05 06 07 07       	sbb    $0x7070605,%eax
526151:	08 08                	or     %cl,(%eax)
526153:	08 08                	or     %cl,(%eax)
526155:	08 08                	or     %cl,(%eax)
526157:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
52615c:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
526161:	1d 1d 1d 09 1d       	sbb    $0x1d091d1d,%eax
526166:	1d 1d 1d 1d 0a       	sbb    $0xa1d1d1d,%eax
52616b:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
526170:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
526175:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
52617a:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
52617f:	1d 1d 1d 03 03       	sbb    $0x3031d1d,%eax
526184:	03 03                	add    (%ebx),%eax
526186:	03 03                	add    (%ebx),%eax
526188:	03 03                	add    (%ebx),%eax
52618a:	03 03                	add    (%ebx),%eax
52618c:	0b 00                	or     (%eax),%eax
52618e:	1d 1d 0c 1d 1d       	sbb    $0x1d1d0c1d,%eax
526193:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax
526198:	1d 1d 1d 1d 1d       	sbb    $0x1d1d1d1d,%eax