523de9:	66 83 7d f4 00       	cmpw   $0x0,-0xc(%ebp)
523dee:	74 12                	je     0x523e02
523df0:	56                   	push   %esi
523df1:	53                   	push   %ebx
523df2:	ff 75 c8             	push   -0x38(%ebp)
523df5:	e8 26 fe ff ff       	call   0x523c20
523dfa:	83 c4 0c             	add    $0xc,%esp
523dfd:	e9 9b 00 00 00       	jmp    0x523e9d
523e02:	56                   	push   %esi
523e03:	53                   	push   %ebx
523e04:	ff 75 c8             	push   -0x38(%ebp)
523e07:	e8 44 14 00 00       	call   0x525250
523e0c:	8b d8                	mov    %eax,%ebx
523e0e:	83 c4 0c             	add    $0xc,%esp
523e11:	3b de                	cmp    %esi,%ebx
523e13:	0f 84 84 00 00 00    	je     0x523e9d
523e19:	80 7d ce 00          	cmpb   $0x0,-0x32(%ebp)
523e1d:	74 38                	je     0x523e57
523e1f:	6a ff                	push   $0xffffffff
523e21:	57                   	push   %edi
523e22:	e8 49 62 02 00       	call   0x54a070
523e27:	8b c8                	mov    %eax,%ecx
523e29:	83 c4 08             	add    $0x8,%esp
523e2c:	80 39 4d             	cmpb   $0x4d,(%ecx)
523e2f:	75 26                	jne    0x523e57
523e31:	8b 41 04             	mov    0x4(%ecx),%eax
523e34:	8b 51 0c             	mov    0xc(%ecx),%edx
523e37:	40                   	inc    %eax
523e38:	03 c2                	add    %edx,%eax
523e3a:	3b c3                	cmp    %ebx,%eax
523e3c:	75 19                	jne    0x523e57
523e3e:	8b 41 08             	mov    0x8(%ecx),%eax
523e41:	40                   	inc    %eax
523e42:	03 c2                	add    %edx,%eax
523e44:	3b c6                	cmp    %esi,%eax
523e46:	75 0f                	jne    0x523e57
523e48:	66 83 79 02 00       	cmpw   $0x0,0x2(%ecx)
523e4d:	75 08                	jne    0x523e57
523e4f:	8d 42 01             	lea    0x1(%edx),%eax
523e52:	89 41 0c             	mov    %eax,0xc(%ecx)
523e55:	eb 46                	jmp    0x523e9d
523e57:	8b 4f 6c             	mov    0x6c(%edi),%ecx
523e5a:	0f b6 55 df          	movzbl -0x21(%ebp),%edx
523e5e:	39 4f 70             	cmp    %ecx,0x70(%edi)
523e61:	7f 10                	jg     0x523e73
523e63:	6a 00                	push   $0x0
523e65:	56                   	push   %esi
523e66:	53                   	push   %ebx
523e67:	52                   	push   %edx
523e68:	57                   	push   %edi
523e69:	e8 92 26 fe ff       	call   0x506500
523e6e:	83 c4 14             	add    $0x14,%esp
523e71:	eb 2a                	jmp    0x523e9d
523e73:	8d 41 01             	lea    0x1(%ecx),%eax
523e76:	89 47 6c             	mov    %eax,0x6c(%edi)
523e79:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
523e7c:	8b 47 68             	mov    0x68(%edi),%eax
523e7f:	88 14 88             	mov    %dl,(%eax,%ecx,4)
523e82:	33 d2                	xor    %edx,%edx
523e84:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
523e89:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
523e8d:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
523e91:	89 54 88 10          	mov    %edx,0x10(%eax,%ecx,4)
523e95:	88 54 88 01          	mov    %dl,0x1(%eax,%ecx,4)
523e99:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
523e9d:	8b 45 d0             	mov    -0x30(%ebp),%eax
523ea0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
523ea3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
523ea6:	83 45 c4 14          	addl   $0x14,-0x3c(%ebp)
523eaa:	40                   	inc    %eax
523eab:	46                   	inc    %esi
523eac:	89 45 d0             	mov    %eax,-0x30(%ebp)
523eaf:	3b c1                	cmp    %ecx,%eax
523eb1:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
523eb4:	0f 8c 88 fe ff ff    	jl     0x523d42
523eba:	8b 45 d8             	mov    -0x28(%ebp),%eax
523ebd:	5f                   	pop    %edi
523ebe:	5e                   	pop    %esi
523ebf:	5b                   	pop    %ebx
523ec0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523ec3:	33 cd                	xor    %ebp,%ecx
523ec5:	e8 10 d6 0b 00       	call   0x5e14da
523eca:	8b e5                	mov    %ebp,%esp
523ecc:	5d                   	pop    %ebp
523ecd:	c3                   	ret
523ece:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523ed1:	8b c3                	mov    %ebx,%eax
523ed3:	5f                   	pop    %edi
523ed4:	5e                   	pop    %esi
523ed5:	33 cd                	xor    %ebp,%ecx
523ed7:	5b                   	pop    %ebx
523ed8:	e8 fd d5 0b 00       	call   0x5e14da
523edd:	8b e5                	mov    %ebp,%esp
523edf:	5d                   	pop    %ebp
523ee0:	c3                   	ret
523ee1:	cc                   	int3
523ee2:	cc                   	int3
523ee3:	cc                   	int3
523ee4:	cc                   	int3
523ee5:	cc                   	int3
523ee6:	cc                   	int3
523ee7:	cc                   	int3
523ee8:	cc                   	int3
523ee9:	cc                   	int3
523eea:	cc                   	int3
523eeb:	cc                   	int3
523eec:	cc                   	int3
523eed:	cc                   	int3
523eee:	cc                   	int3
523eef:	cc                   	int3
523ef0:	55                   	push   %ebp
523ef1:	8b ec                	mov    %esp,%ebp
523ef3:	83 ec 20             	sub    $0x20,%esp
523ef6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
523efb:	33 c5                	xor    %ebp,%eax
523efd:	89 45 fc             	mov    %eax,-0x4(%ebp)
523f00:	56                   	push   %esi
523f01:	8b 75 0c             	mov    0xc(%ebp),%esi
523f04:	57                   	push   %edi
523f05:	8b 7d 08             	mov    0x8(%ebp),%edi
523f08:	80 7f 17 00          	cmpb   $0x0,0x17(%edi)
523f0c:	74 53                	je     0x523f61
523f0e:	c7 45 e4 c0 12 50 00 	movl   $0x5012c0,-0x1c(%ebp)
523f15:	b8 02 00 00 00       	mov    $0x2,%eax
523f1a:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
523f1e:	c7 45 e8 f0 c7 53 00 	movl   $0x53c7f0,-0x18(%ebp)
523f25:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
523f2c:	85 f6                	test   %esi,%esi
523f2e:	74 14                	je     0x523f44
523f30:	8d 45 e0             	lea    -0x20(%ebp),%eax
523f33:	56                   	push   %esi
523f34:	50                   	push   %eax
523f35:	e8 76 c0 03 00       	call   0x55ffb0
523f3a:	83 c4 08             	add    $0x8,%esp
523f3d:	66 83 7d f4 00       	cmpw   $0x0,-0xc(%ebp)
523f42:	74 1d                	je     0x523f61
523f44:	ff 75 10             	push   0x10(%ebp)
523f47:	56                   	push   %esi
523f48:	57                   	push   %edi
523f49:	e8 d2 fc ff ff       	call   0x523c20
523f4e:	83 c4 0c             	add    $0xc,%esp
523f51:	5f                   	pop    %edi
523f52:	5e                   	pop    %esi
523f53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523f56:	33 cd                	xor    %ebp,%ecx
523f58:	e8 7d d5 0b 00       	call   0x5e14da
523f5d:	8b e5                	mov    %ebp,%esp
523f5f:	5d                   	pop    %ebp
523f60:	c3                   	ret
523f61:	ff 75 10             	push   0x10(%ebp)
523f64:	56                   	push   %esi
523f65:	57                   	push   %edi
523f66:	e8 65 fc ff ff       	call   0x523bd0
523f6b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523f6e:	83 c4 0c             	add    $0xc,%esp
523f71:	33 cd                	xor    %ebp,%ecx
523f73:	5f                   	pop    %edi
523f74:	5e                   	pop    %esi
523f75:	e8 60 d5 0b 00       	call   0x5e14da
523f7a:	8b e5                	mov    %ebp,%esp
523f7c:	5d                   	pop    %ebp
523f7d:	c3                   	ret
523f7e:	cc                   	int3
523f7f:	cc                   	int3
523f80:	55                   	push   %ebp
523f81:	8b ec                	mov    %esp,%ebp
523f83:	51                   	push   %ecx
523f84:	8b 55 08             	mov    0x8(%ebp),%edx
523f87:	53                   	push   %ebx
523f88:	56                   	push   %esi
523f89:	57                   	push   %edi
523f8a:	8b 42 34             	mov    0x34(%edx),%eax
523f8d:	8b 5a 08             	mov    0x8(%edx),%ebx
523f90:	85 c0                	test   %eax,%eax
523f92:	7e 58                	jle    0x523fec
523f94:	8b 7b 6c             	mov    0x6c(%ebx),%edi
523f97:	48                   	dec    %eax
523f98:	89 45 fc             	mov    %eax,-0x4(%ebp)
523f9b:	39 7b 70             	cmp    %edi,0x70(%ebx)
523f9e:	7f 19                	jg     0x523fb9
523fa0:	8b 75 10             	mov    0x10(%ebp),%esi
523fa3:	56                   	push   %esi
523fa4:	6a 00                	push   $0x0
523fa6:	50                   	push   %eax
523fa7:	6a 15                	push   $0x15
523fa9:	53                   	push   %ebx
523faa:	e8 51 25 fe ff       	call   0x506500
523faf:	8b 55 08             	mov    0x8(%ebp),%edx
523fb2:	83 c4 14             	add    $0x14,%esp
523fb5:	8b f8                	mov    %eax,%edi
523fb7:	eb 38                	jmp    0x523ff1
523fb9:	8b 75 fc             	mov    -0x4(%ebp),%esi
523fbc:	8d 47 01             	lea    0x1(%edi),%eax
523fbf:	89 43 6c             	mov    %eax,0x6c(%ebx)
523fc2:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
523fc5:	8b 43 68             	mov    0x68(%ebx),%eax
523fc8:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
523fcc:	8b 75 10             	mov    0x10(%ebp),%esi
523fcf:	c7 04 88 15 00 00 00 	movl   $0x15,(%eax,%ecx,4)
523fd6:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
523fdd:	00
523fde:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
523fe2:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
523fe9:	00
523fea:	eb 05                	jmp    0x523ff1
523fec:	8b 75 10             	mov    0x10(%ebp),%esi
523fef:	33 ff                	xor    %edi,%edi
523ff1:	56                   	push   %esi
523ff2:	8b 75 0c             	mov    0xc(%ebp),%esi
523ff5:	ff 76 04             	push   0x4(%esi)
523ff8:	52                   	push   %edx
523ff9:	e8 d2 fb ff ff       	call   0x523bd0
523ffe:	83 c6 0d             	add    $0xd,%esi
524001:	83 c4 0c             	add    $0xc,%esp
524004:	80 3e 42             	cmpb   $0x42,(%esi)
524007:	7c 15                	jl     0x52401e
524009:	6a 01                	push   $0x1
52400b:	56                   	push   %esi
52400c:	6a 00                	push   $0x0
52400e:	6a 01                	push   $0x1
524010:	ff 75 10             	push   0x10(%ebp)
524013:	6a 5a                	push   $0x5a
524015:	53                   	push   %ebx
524016:	e8 75 db 01 00       	call   0x541b90
52401b:	83 c4 1c             	add    $0x1c,%esp
52401e:	85 ff                	test   %edi,%edi
524020:	74 2c                	je     0x52404e
524022:	8b 53 6c             	mov    0x6c(%ebx),%edx
524025:	79 03                	jns    0x52402a
524027:	8d 7a ff             	lea    -0x1(%edx),%edi
52402a:	8b 03                	mov    (%ebx),%eax
52402c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524030:	74 0f                	je     0x524041
524032:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
524037:	5f                   	pop    %edi
524038:	5e                   	pop    %esi
524039:	5b                   	pop    %ebx
52403a:	89 50 08             	mov    %edx,0x8(%eax)
52403d:	8b e5                	mov    %ebp,%esp
52403f:	5d                   	pop    %ebp
524040:	c3                   	ret
524041:	8b 43 68             	mov    0x68(%ebx),%eax
524044:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
524047:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52404b:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52404e:	5f                   	pop    %edi
52404f:	5e                   	pop    %esi
524050:	5b                   	pop    %ebx
524051:	8b e5                	mov    %ebp,%esp
524053:	5d                   	pop    %ebp
524054:	c3                   	ret
524055:	cc                   	int3
524056:	cc                   	int3
524057:	cc                   	int3
524058:	cc                   	int3
524059:	cc                   	int3
52405a:	cc                   	int3
52405b:	cc                   	int3
52405c:	cc                   	int3
52405d:	cc                   	int3
52405e:	cc                   	int3
52405f:	cc                   	int3
524060:	55                   	push   %ebp
524061:	8b ec                	mov    %esp,%ebp
524063:	53                   	push   %ebx
524064:	56                   	push   %esi
524065:	8b 75 18             	mov    0x18(%ebp),%esi
524068:	57                   	push   %edi
524069:	8b 7d 08             	mov    0x8(%ebp),%edi
52406c:	56                   	push   %esi
52406d:	ff 75 10             	push   0x10(%ebp)
524070:	ff 75 14             	push   0x14(%ebp)
524073:	ff 75 0c             	push   0xc(%ebp)
524076:	ff 77 08             	push   0x8(%edi)
524079:	e8 42 00 00 00       	call   0x5240c0
52407e:	8a 5d 1c             	mov    0x1c(%ebp),%bl
524081:	83 c4 14             	add    $0x14,%esp
524084:	84 db                	test   %bl,%bl
524086:	74 2b                	je     0x5240b3
524088:	8b 7f 08             	mov    0x8(%edi),%edi
52408b:	8b 07                	mov    (%edi),%eax
52408d:	8b 4f 6c             	mov    0x6c(%edi),%ecx
524090:	49                   	dec    %ecx
524091:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524095:	74 07                	je     0x52409e
524097:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52409c:	eb 09                	jmp    0x5240a7
52409e:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5240a1:	8b 4f 68             	mov    0x68(%edi),%ecx
5240a4:	8d 04 91             	lea    (%ecx,%edx,4),%eax
5240a7:	80 38 59             	cmpb   $0x59,(%eax)
5240aa:	75 07                	jne    0x5240b3
5240ac:	0f b6 cb             	movzbl %bl,%ecx
5240af:	66 89 48 02          	mov    %cx,0x2(%eax)
5240b3:	5f                   	pop    %edi
5240b4:	8b c6                	mov    %esi,%eax
5240b6:	5e                   	pop    %esi
5240b7:	5b                   	pop    %ebx
5240b8:	5d                   	pop    %ebp
5240b9:	c3                   	ret
5240ba:	cc                   	int3
5240bb:	cc                   	int3
5240bc:	cc                   	int3
5240bd:	cc                   	int3
5240be:	cc                   	int3
5240bf:	cc                   	int3
5240c0:	55                   	push   %ebp
5240c1:	8b ec                	mov    %esp,%ebp
5240c3:	53                   	push   %ebx
5240c4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5240c7:	85 db                	test   %ebx,%ebx
5240c9:	75 4f                	jne    0x52411a
5240cb:	8b 55 08             	mov    0x8(%ebp),%edx
5240ce:	8b 4a 6c             	mov    0x6c(%edx),%ecx
5240d1:	39 4a 70             	cmp    %ecx,0x70(%edx)
5240d4:	7f 11                	jg     0x5240e7
5240d6:	5b                   	pop    %ebx
5240d7:	c7 45 0c 59 00 00 00 	movl   $0x59,0xc(%ebp)
5240de:	89 55 08             	mov    %edx,0x8(%ebp)
5240e1:	5d                   	pop    %ebp
5240e2:	e9 19 24 fe ff       	jmp    0x506500
5240e7:	8d 41 01             	lea    0x1(%ecx),%eax
5240ea:	89 42 6c             	mov    %eax,0x6c(%edx)
5240ed:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5240f0:	8b 42 68             	mov    0x68(%edx),%eax
5240f3:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
5240fa:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524101:	00
524102:	5b                   	pop    %ebx
524103:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
524106:	8b 45 10             	mov    0x10(%ebp),%eax
524109:	89 41 04             	mov    %eax,0x4(%ecx)
52410c:	8b 45 14             	mov    0x14(%ebp),%eax
52410f:	89 41 08             	mov    %eax,0x8(%ecx)
524112:	8b 45 18             	mov    0x18(%ebp),%eax
524115:	89 41 0c             	mov    %eax,0xc(%ecx)
524118:	5d                   	pop    %ebp
524119:	c3                   	ret
52411a:	8b 55 14             	mov    0x14(%ebp),%edx
52411d:	85 d2                	test   %edx,%edx
52411f:	0f 88 d2 00 00 00    	js     0x5241f7
524125:	0f bf 43 28          	movswl 0x28(%ebx),%eax
524129:	3b d0                	cmp    %eax,%edx
52412b:	0f 84 c6 00 00 00    	je     0x5241f7
524131:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
524135:	56                   	push   %esi
524136:	57                   	push   %edi
524137:	74 0a                	je     0x524143
524139:	b8 a6 00 00 00       	mov    $0xa6,%eax
52413e:	e9 8f 00 00 00       	jmp    0x5241d2