51eefd:	ff 75 14             	push   0x14(%ebp)
51ef00:	6a 2e                	push   $0x2e
51ef02:	53                   	push   %ebx
51ef03:	e8 88 2c 02 00       	call   0x541b90
51ef08:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
51ef0b:	83 c4 1c             	add    $0x1c,%esp
51ef0e:	85 c9                	test   %ecx,%ecx
51ef10:	7e 11                	jle    0x51ef23
51ef12:	8b 45 08             	mov    0x8(%ebp),%eax
51ef15:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51ef18:	0f b6 d0             	movzbl %al,%edx
51ef1b:	8b 43 68             	mov    0x68(%ebx),%eax
51ef1e:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
51ef23:	5f                   	pop    %edi
51ef24:	5e                   	pop    %esi
51ef25:	5b                   	pop    %ebx
51ef26:	8b e5                	mov    %ebp,%esp
51ef28:	5d                   	pop    %ebp
51ef29:	c3                   	ret
51ef2a:	cc                   	int3
51ef2b:	cc                   	int3
51ef2c:	cc                   	int3
51ef2d:	cc                   	int3
51ef2e:	cc                   	int3
51ef2f:	cc                   	int3
51ef30:	55                   	push   %ebp
51ef31:	8b ec                	mov    %esp,%ebp
51ef33:	83 ec 28             	sub    $0x28,%esp
51ef36:	53                   	push   %ebx
51ef37:	8b 5d 0c             	mov    0xc(%ebp),%ebx
51ef3a:	33 d2                	xor    %edx,%edx
51ef3c:	56                   	push   %esi
51ef3d:	57                   	push   %edi
51ef3e:	8b 7d 08             	mov    0x8(%ebp),%edi
51ef41:	8b 4b 04             	mov    0x4(%ebx),%ecx
51ef44:	8b 43 14             	mov    0x14(%ebx),%eax
51ef47:	89 55 f8             	mov    %edx,-0x8(%ebp)
51ef4a:	8b 77 08             	mov    0x8(%edi),%esi
51ef4d:	89 45 08             	mov    %eax,0x8(%ebp)
51ef50:	f6 c1 20             	test   $0x20,%cl
51ef53:	75 67                	jne    0x51efbc
51ef55:	f7 c1 00 00 00 02    	test   $0x2000000,%ecx
51ef5b:	74 2a                	je     0x51ef87
51ef5d:	ff 70 10             	push   0x10(%eax)
51ef60:	68 dc 91 6b 00       	push   $0x6b91dc
51ef65:	52                   	push   %edx
51ef66:	57                   	push   %edi
51ef67:	e8 74 ac 02 00       	call   0x549be0
51ef6c:	ff 73 2c             	push   0x2c(%ebx)
51ef6f:	ff 73 30             	push   0x30(%ebx)
51ef72:	6a 0c                	push   $0xc
51ef74:	56                   	push   %esi
51ef75:	e8 66 2b 02 00       	call   0x541ae0
51ef7a:	8b 43 1c             	mov    0x1c(%ebx),%eax
51ef7d:	83 c4 20             	add    $0x20,%esp
51ef80:	5f                   	pop    %edi
51ef81:	5e                   	pop    %esi
51ef82:	5b                   	pop    %ebx
51ef83:	8b e5                	mov    %ebp,%esp
51ef85:	5d                   	pop    %ebp
51ef86:	c3                   	ret
51ef87:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
51ef8d:	89 4b 04             	mov    %ecx,0x4(%ebx)
51ef90:	8b 47 2c             	mov    0x2c(%edi),%eax
51ef93:	40                   	inc    %eax
51ef94:	50                   	push   %eax
51ef95:	6a 00                	push   $0x0
51ef97:	6a 45                	push   $0x45
51ef99:	89 47 2c             	mov    %eax,0x2c(%edi)
51ef9c:	56                   	push   %esi
51ef9d:	89 43 30             	mov    %eax,0x30(%ebx)
51efa0:	e8 3b 2b 02 00       	call   0x541ae0
51efa5:	40                   	inc    %eax
51efa6:	6a 11                	push   $0x11
51efa8:	56                   	push   %esi
51efa9:	89 43 2c             	mov    %eax,0x2c(%ebx)
51efac:	e8 6f 2a 02 00       	call   0x541a20
51efb1:	8b d0                	mov    %eax,%edx
51efb3:	89 45 f8             	mov    %eax,-0x8(%ebp)
51efb6:	8b 45 08             	mov    0x8(%ebp),%eax
51efb9:	83 c4 18             	add    $0x18,%esp
51efbc:	ff 70 10             	push   0x10(%eax)
51efbf:	85 d2                	test   %edx,%edx
51efc1:	b8 bc 91 6b 00       	mov    $0x6b91bc,%eax
51efc6:	b9 ad 57 6e 00       	mov    $0x6e57ad,%ecx
51efcb:	0f 44 c8             	cmove  %eax,%ecx
51efce:	51                   	push   %ecx
51efcf:	68 f0 91 6b 00       	push   $0x6b91f0
51efd4:	6a 01                	push   $0x1
51efd6:	57                   	push   %edi
51efd7:	e8 04 ac 02 00       	call   0x549be0
51efdc:	83 c4 14             	add    $0x14,%esp
51efdf:	80 3b 88             	cmpb   $0x88,(%ebx)
51efe2:	75 0a                	jne    0x51efee
51efe4:	8b 4d 08             	mov    0x8(%ebp),%ecx
51efe7:	8b 41 1c             	mov    0x1c(%ecx),%eax
51efea:	8b 08                	mov    (%eax),%ecx
51efec:	eb 05                	jmp    0x51eff3
51efee:	b9 01 00 00 00       	mov    $0x1,%ecx
51eff3:	8b 47 2c             	mov    0x2c(%edi),%eax
51eff6:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
51effd:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
51f004:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
51f00b:	8d 50 01             	lea    0x1(%eax),%edx
51f00e:	03 c1                	add    %ecx,%eax
51f010:	89 47 2c             	mov    %eax,0x2c(%edi)
51f013:	80 3b 88             	cmpb   $0x88,(%ebx)
51f016:	89 55 dc             	mov    %edx,-0x24(%ebp)
51f019:	75 4b                	jne    0x51f066
51f01b:	8d 42 ff             	lea    -0x1(%edx),%eax
51f01e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
51f021:	03 c1                	add    %ecx,%eax
51f023:	c6 45 d8 0a          	movb   $0xa,-0x28(%ebp)
51f027:	8b 4e 6c             	mov    0x6c(%esi),%ecx
51f02a:	89 55 e0             	mov    %edx,-0x20(%ebp)
51f02d:	89 45 fc             	mov    %eax,-0x4(%ebp)
51f030:	39 4e 70             	cmp    %ecx,0x70(%esi)
51f033:	7f 11                	jg     0x51f046
51f035:	50                   	push   %eax
51f036:	52                   	push   %edx
51f037:	6a 00                	push   $0x0
51f039:	6a 48                	push   $0x48
51f03b:	56                   	push   %esi
51f03c:	e8 bf 74 fe ff       	call   0x506500
51f041:	83 c4 14             	add    $0x14,%esp
51f044:	eb 6d                	jmp    0x51f0b3
51f046:	8d 41 01             	lea    0x1(%ecx),%eax
51f049:	89 46 6c             	mov    %eax,0x6c(%esi)
51f04c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51f04f:	8b 46 68             	mov    0x68(%esi),%eax
51f052:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
51f056:	8b 55 fc             	mov    -0x4(%ebp),%edx
51f059:	c7 04 88 48 00 00 00 	movl   $0x48,(%eax,%ecx,4)
51f060:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
51f064:	eb 3d                	jmp    0x51f0a3
51f066:	8b 4e 6c             	mov    0x6c(%esi),%ecx
51f069:	c6 45 d8 03          	movb   $0x3,-0x28(%ebp)
51f06d:	39 4e 70             	cmp    %ecx,0x70(%esi)
51f070:	7f 12                	jg     0x51f084
51f072:	6a 00                	push   $0x0
51f074:	52                   	push   %edx
51f075:	6a 00                	push   $0x0
51f077:	6a 45                	push   $0x45
51f079:	56                   	push   %esi
51f07a:	e8 81 74 fe ff       	call   0x506500
51f07f:	83 c4 14             	add    $0x14,%esp
51f082:	eb 2f                	jmp    0x51f0b3
51f084:	8d 41 01             	lea    0x1(%ecx),%eax
51f087:	89 46 6c             	mov    %eax,0x6c(%esi)
51f08a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51f08d:	8b 46 68             	mov    0x68(%esi),%eax
51f090:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
51f097:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
51f09b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
51f0a2:	00
51f0a3:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
51f0aa:	00
51f0ab:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
51f0b2:	00
51f0b3:	8b 45 08             	mov    0x8(%ebp),%eax
51f0b6:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
51f0bd:	6a 00                	push   $0x0
51f0bf:	83 78 3c 00          	cmpl   $0x0,0x3c(%eax)
51f0c3:	0f 84 86 00 00 00    	je     0x51f14f
51f0c9:	8b 07                	mov    (%edi),%eax
51f0cb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
51f0ce:	51                   	push   %ecx
51f0cf:	68 98 00 00 00       	push   $0x98
51f0d4:	50                   	push   %eax
51f0d5:	89 45 fc             	mov    %eax,-0x4(%ebp)
51f0d8:	c7 45 f0 9c 9b 6a 00 	movl   $0x6a9b9c,-0x10(%ebp)
51f0df:	e8 8c 45 00 00       	call   0x523670
51f0e4:	8b c8                	mov    %eax,%ecx
51f0e6:	83 c4 10             	add    $0x10,%esp
51f0e9:	89 4d 0c             	mov    %ecx,0xc(%ebp)
51f0ec:	85 c9                	test   %ecx,%ecx
51f0ee:	74 38                	je     0x51f128
51f0f0:	8b 45 08             	mov    0x8(%ebp),%eax
51f0f3:	c6 41 01 43          	movb   $0x43,0x1(%ecx)
51f0f7:	8b 48 3c             	mov    0x3c(%eax),%ecx
51f0fa:	8b 41 0c             	mov    0xc(%ecx),%eax
51f0fd:	85 c0                	test   %eax,%eax
51f0ff:	74 12                	je     0x51f113
51f101:	6a 00                	push   $0x0
51f103:	6a 00                	push   $0x0
51f105:	50                   	push   %eax
51f106:	ff 75 fc             	push   -0x4(%ebp)
51f109:	e8 52 17 fe ff       	call   0x500860
51f10e:	83 c4 10             	add    $0x10,%esp
51f111:	eb 02                	jmp    0x51f115
51f113:	33 c0                	xor    %eax,%eax
51f115:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51f118:	51                   	push   %ecx
51f119:	50                   	push   %eax
51f11a:	6a 34                	push   $0x34
51f11c:	57                   	push   %edi
51f11d:	e8 ee 2e 01 00       	call   0x532010
51f122:	83 c4 10             	add    $0x10,%esp
51f125:	89 45 0c             	mov    %eax,0xc(%ebp)
51f128:	8b 45 08             	mov    0x8(%ebp),%eax
51f12b:	8b 40 3c             	mov    0x3c(%eax),%eax
51f12e:	8b 40 0c             	mov    0xc(%eax),%eax
51f131:	85 c0                	test   %eax,%eax
51f133:	74 0c                	je     0x51f141
51f135:	50                   	push   %eax
51f136:	ff 75 fc             	push   -0x4(%ebp)
51f139:	e8 72 76 00 00       	call   0x5267b0
51f13e:	83 c4 08             	add    $0x8,%esp
51f141:	8b 45 08             	mov    0x8(%ebp),%eax
51f144:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51f147:	8b 40 3c             	mov    0x3c(%eax),%eax
51f14a:	89 48 0c             	mov    %ecx,0xc(%eax)
51f14d:	eb 2e                	jmp    0x51f17d
51f14f:	8d 45 f0             	lea    -0x10(%ebp),%eax
51f152:	c7 45 f0 64 9c 6a 00 	movl   $0x6a9c64,-0x10(%ebp)
51f159:	50                   	push   %eax
51f15a:	68 98 00 00 00       	push   $0x98
51f15f:	ff 37                	push   (%edi)
51f161:	e8 0a 45 00 00       	call   0x523670
51f166:	6a 00                	push   $0x0
51f168:	50                   	push   %eax
51f169:	68 92 00 00 00       	push   $0x92
51f16e:	57                   	push   %edi
51f16f:	e8 9c 2e 01 00       	call   0x532010
51f174:	8b 4d 08             	mov    0x8(%ebp),%ecx
51f177:	83 c4 20             	add    $0x20,%esp
51f17a:	89 41 3c             	mov    %eax,0x3c(%ecx)
51f17d:	8b 45 08             	mov    0x8(%ebp),%eax
51f180:	8d 4d d8             	lea    -0x28(%ebp),%ecx
51f183:	51                   	push   %ecx
51f184:	50                   	push   %eax
51f185:	57                   	push   %edi
51f186:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
51f18d:	e8 0e a9 01 00       	call   0x539aa0
51f192:	83 c4 0c             	add    $0xc,%esp
51f195:	85 c0                	test   %eax,%eax
51f197:	74 09                	je     0x51f1a2
51f199:	5f                   	pop    %edi
51f19a:	5e                   	pop    %esi
51f19b:	33 c0                	xor    %eax,%eax
51f19d:	5b                   	pop    %ebx
51f19e:	8b e5                	mov    %ebp,%esp
51f1a0:	5d                   	pop    %ebp
51f1a1:	c3                   	ret
51f1a2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
51f1a5:	8b 45 dc             	mov    -0x24(%ebp),%eax
51f1a8:	89 43 1c             	mov    %eax,0x1c(%ebx)
51f1ab:	85 c9                	test   %ecx,%ecx
51f1ad:	74 6b                	je     0x51f21a
51f1af:	8b 56 6c             	mov    0x6c(%esi),%edx
51f1b2:	79 03                	jns    0x51f1b7
51f1b4:	8d 4a ff             	lea    -0x1(%edx),%ecx
51f1b7:	8b 06                	mov    (%esi),%eax
51f1b9:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51f1bd:	74 07                	je     0x51f1c6
51f1bf:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
51f1c4:	eb 09                	jmp    0x51f1cf
51f1c6:	8b 46 68             	mov    0x68(%esi),%eax
51f1c9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51f1cc:	8d 04 88             	lea    (%eax,%ecx,4),%eax
51f1cf:	89 50 08             	mov    %edx,0x8(%eax)
51f1d2:	ff 73 30             	push   0x30(%ebx)
51f1d5:	6a 41                	push   $0x41
51f1d7:	56                   	push   %esi
51f1d8:	e8 a3 28 02 00       	call   0x541a80
51f1dd:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
51f1e0:	83 c4 0c             	add    $0xc,%esp
51f1e3:	83 e9 01             	sub    $0x1,%ecx
51f1e6:	8b 56 6c             	mov    0x6c(%esi),%edx
51f1e9:	79 03                	jns    0x51f1ee
51f1eb:	8d 4a ff             	lea    -0x1(%edx),%ecx
51f1ee:	8b 06                	mov    (%esi),%eax
51f1f0:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51f1f4:	74 07                	je     0x51f1fd
51f1f6:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
51f1fb:	eb 09                	jmp    0x51f206
51f1fd:	8b 46 68             	mov    0x68(%esi),%eax
51f200:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51f203:	8d 04 88             	lea    (%eax,%ecx,4),%eax
51f206:	8d 4a ff             	lea    -0x1(%edx),%ecx
51f209:	89 48 04             	mov    %ecx,0x4(%eax)
51f20c:	8b 45 dc             	mov    -0x24(%ebp),%eax
51f20f:	c6 47 13 00          	movb   $0x0,0x13(%edi)
51f213:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
51f21a:	5f                   	pop    %edi
51f21b:	5e                   	pop    %esi
51f21c:	5b                   	pop    %ebx
51f21d:	8b e5                	mov    %ebp,%esp
51f21f:	5d                   	pop    %ebp
51f220:	c3                   	ret
51f221:	cc                   	int3
51f222:	cc                   	int3
51f223:	cc                   	int3
51f224:	cc                   	int3
51f225:	cc                   	int3
51f226:	cc                   	int3
51f227:	cc                   	int3
51f228:	cc                   	int3
51f229:	cc                   	int3
51f22a:	cc                   	int3
51f22b:	cc                   	int3
51f22c:	cc                   	int3
51f22d:	cc                   	int3
51f22e:	cc                   	int3
51f22f:	cc                   	int3
51f230:	55                   	push   %ebp
51f231:	8b ec                	mov    %esp,%ebp
51f233:	83 ec 08             	sub    $0x8,%esp
51f236:	8b 4d 08             	mov    0x8(%ebp),%ecx
51f239:	56                   	push   %esi
51f23a:	33 f6                	xor    %esi,%esi
51f23c:	8b 09                	mov    (%ecx),%ecx
51f23e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
51f241:	39 71 14             	cmp    %esi,0x14(%ecx)
51f244:	7e 75                	jle    0x51f2bb
51f246:	53                   	push   %ebx
51f247:	8b 5d 0c             	mov    0xc(%ebp),%ebx
51f24a:	57                   	push   %edi
51f24b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
51f250:	8b 45 fc             	mov    -0x4(%ebp),%eax
51f253:	8b ce                	mov    %esi,%ecx
51f255:	c1 e1 04             	shl    $0x4,%ecx
51f258:	03 48 10             	add    0x10(%eax),%ecx
51f25b:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
51f25f:	74 4f                	je     0x51f2b0
51f261:	85 db                	test   %ebx,%ebx
51f263:	74 1a                	je     0x51f27f
51f265:	8b 39                	mov    (%ecx),%edi
51f267:	8b c3                	mov    %ebx,%eax
51f269:	2b fb                	sub    %ebx,%edi
51f26b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
51f270:	0f b6 10             	movzbl (%eax),%edx
51f273:	0f b6 0c 07          	movzbl (%edi,%eax,1),%ecx
51f277:	3b d1                	cmp    %ecx,%edx
51f279:	75 45                	jne    0x51f2c0
51f27b:	85 d2                	test   %edx,%edx
51f27d:	75 53                	jne    0x51f2d2
51f27f:	8b 4d 08             	mov    0x8(%ebp),%ecx
51f282:	8b d1                	mov    %ecx,%edx
51f284:	8b 41 74             	mov    0x74(%ecx),%eax
51f287:	85 c0                	test   %eax,%eax
51f289:	8b ce                	mov    %esi,%ecx
51f28b:	0f 45 d0             	cmovne %eax,%edx
51f28e:	b8 01 00 00 00       	mov    $0x1,%eax
51f293:	d3 e0                	shl    %cl,%eax
51f295:	8b 7a 54             	mov    0x54(%edx),%edi
51f298:	85 c7                	test   %eax,%edi
51f29a:	75 14                	jne    0x51f2b0
51f29c:	0f ab f7             	bts    %esi,%edi
51f29f:	89 7a 54             	mov    %edi,0x54(%edx)