503f56:	3b d0                	cmp    %eax,%edx
503f58:	76 14                	jbe    0x503f6e
503f5a:	68 ef 12 01 00       	push   $0x112ef
503f5f:	e8 4c be 01 00       	call   0x51fdb0
503f64:	83 c4 04             	add    $0x4,%esp
503f67:	8b f8                	mov    %eax,%edi
503f69:	e9 c7 00 00 00       	jmp    0x504035
503f6e:	8d 47 f8             	lea    -0x8(%edi),%eax
503f71:	3b d0                	cmp    %eax,%edx
503f73:	73 73                	jae    0x503fe8
503f75:	ff 71 48             	push   0x48(%ecx)
503f78:	e8 c3 f9 02 00       	call   0x533940
503f7d:	8b f8                	mov    %eax,%edi
503f7f:	83 c4 04             	add    $0x4,%esp
503f82:	85 ff                	test   %edi,%edi
503f84:	0f 85 ab 00 00 00    	jne    0x504035
503f8a:	8b 7d fc             	mov    -0x4(%ebp),%edi
503f8d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
503f90:	8b 55 10             	mov    0x10(%ebp),%edx
503f93:	41                   	inc    %ecx
503f94:	0f c9                	bswap  %ecx
503f96:	8b 47 38             	mov    0x38(%edi),%eax
503f99:	89 48 04             	mov    %ecx,0x4(%eax)
503f9c:	8b ca                	mov    %edx,%ecx
503f9e:	8b 47 38             	mov    0x38(%edi),%eax
503fa1:	8b 7d f8             	mov    -0x8(%ebp),%edi
503fa4:	0f c9                	bswap  %ecx
503fa6:	89 4c b8 08          	mov    %ecx,0x8(%eax,%edi,4)
503faa:	85 f6                	test   %esi,%esi
503fac:	74 2c                	je     0x503fda
503fae:	f6 43 16 04          	testb  $0x4,0x16(%ebx)
503fb2:	75 26                	jne    0x503fda
503fb4:	8b 4e 48             	mov    0x48(%esi),%ecx
503fb7:	8b 79 14             	mov    0x14(%ecx),%edi
503fba:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
503fbe:	75 1a                	jne    0x503fda
503fc0:	0f b7 41 1c          	movzwl 0x1c(%ecx),%eax
503fc4:	a8 02                	test   $0x2,%al
503fc6:	74 12                	je     0x503fda
503fc8:	83 7f 60 00          	cmpl   $0x0,0x60(%edi)
503fcc:	75 0c                	jne    0x503fda
503fce:	25 fb ff 00 00       	and    $0xfffb,%eax
503fd3:	83 c8 10             	or     $0x10,%eax
503fd6:	66 89 41 1c          	mov    %ax,0x1c(%ecx)
503fda:	52                   	push   %edx
503fdb:	53                   	push   %ebx
503fdc:	e8 af 3a ff ff       	call   0x4f7a90
503fe1:	83 c4 08             	add    $0x8,%esp
503fe4:	8b f8                	mov    %eax,%edi
503fe6:	eb 4d                	jmp    0x504035
503fe8:	85 f6                	test   %esi,%esi
503fea:	75 1a                	jne    0x504006
503fec:	56                   	push   %esi
503fed:	8d 45 08             	lea    0x8(%ebp),%eax
503ff0:	50                   	push   %eax
503ff1:	ff 75 10             	push   0x10(%ebp)
503ff4:	53                   	push   %ebx
503ff5:	e8 06 2c ff ff       	call   0x4f6c00
503ffa:	8b f8                	mov    %eax,%edi
503ffc:	83 c4 10             	add    $0x10,%esp
503fff:	85 ff                	test   %edi,%edi
504001:	75 5b                	jne    0x50405e
504003:	8b 75 08             	mov    0x8(%ebp),%esi
504006:	ff 76 48             	push   0x48(%esi)
504009:	e8 32 f9 02 00       	call   0x533940
50400e:	8b f8                	mov    %eax,%edi
504010:	83 c4 04             	add    $0x4,%esp
504013:	85 ff                	test   %edi,%edi
504015:	75 1e                	jne    0x504035
504017:	8b 46 38             	mov    0x38(%esi),%eax
50401a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50401d:	0f c9                	bswap  %ecx
50401f:	89 08                	mov    %ecx,(%eax)
504021:	8b 46 38             	mov    0x38(%esi),%eax
504024:	8b 4d 10             	mov    0x10(%ebp),%ecx
504027:	0f c9                	bswap  %ecx
504029:	89 78 04             	mov    %edi,0x4(%eax)
50402c:	8b 45 f4             	mov    -0xc(%ebp),%eax
50402f:	8b 40 38             	mov    0x38(%eax),%eax
504032:	89 48 20             	mov    %ecx,0x20(%eax)
504035:	85 f6                	test   %esi,%esi
504037:	74 0c                	je     0x504045
504039:	56                   	push   %esi
50403a:	c6 06 00             	movb   $0x0,(%esi)
50403d:	e8 7e e0 00 00       	call   0x5120c0
504042:	83 c4 04             	add    $0x4,%esp
504045:	8b 45 fc             	mov    -0x4(%ebp),%eax
504048:	5e                   	pop    %esi
504049:	85 c0                	test   %eax,%eax
50404b:	74 09                	je     0x504056
50404d:	50                   	push   %eax
50404e:	e8 6d e0 00 00       	call   0x5120c0
504053:	83 c4 04             	add    $0x4,%esp
504056:	8b c7                	mov    %edi,%eax
504058:	5f                   	pop    %edi
504059:	5b                   	pop    %ebx
50405a:	8b e5                	mov    %ebp,%esp
50405c:	5d                   	pop    %ebp
50405d:	c3                   	ret
50405e:	8b 75 08             	mov    0x8(%ebp),%esi
504061:	eb d2                	jmp    0x504035
504063:	68 fc c4 6b 00       	push   $0x6bc4fc
504068:	68 b9 12 01 00       	push   $0x112b9
50406d:	68 94 c4 6b 00       	push   $0x6bc494
504072:	68 78 c4 6b 00       	push   $0x6bc478
504077:	6a 0b                	push   $0xb
504079:	e8 62 bf fd ff       	call   0x4dffe0
50407e:	83 c4 14             	add    $0x14,%esp
504081:	b8 0b 00 00 00       	mov    $0xb,%eax
504086:	5f                   	pop    %edi
504087:	5b                   	pop    %ebx
504088:	8b e5                	mov    %ebp,%esp
50408a:	5d                   	pop    %ebp
50408b:	c3                   	ret
50408c:	cc                   	int3
50408d:	cc                   	int3
50408e:	cc                   	int3
50408f:	cc                   	int3
504090:	55                   	push   %ebp
504091:	8b ec                	mov    %esp,%ebp
504093:	83 ec 1c             	sub    $0x1c,%esp
504096:	8b 45 10             	mov    0x10(%ebp),%eax
504099:	8b 55 0c             	mov    0xc(%ebp),%edx
50409c:	0f b7 c0             	movzwl %ax,%eax
50409f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5040a2:	0f b7 ca             	movzwl %dx,%ecx
5040a5:	03 c1                	add    %ecx,%eax
5040a7:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
5040ab:	89 45 f0             	mov    %eax,-0x10(%ebp)
5040ae:	8b 45 08             	mov    0x8(%ebp),%eax
5040b1:	53                   	push   %ebx
5040b2:	56                   	push   %esi
5040b3:	57                   	push   %edi
5040b4:	8b 70 38             	mov    0x38(%eax),%esi
5040b7:	8a 40 09             	mov    0x9(%eax),%al
5040ba:	88 45 fe             	mov    %al,-0x2(%ebp)
5040bd:	0f b6 c0             	movzbl %al,%eax
5040c0:	66 40                	inc    %ax
5040c2:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5040c5:	0f b7 f8             	movzwl %ax,%edi
5040c8:	8b c7                	mov    %edi,%eax
5040ca:	89 7d f8             	mov    %edi,-0x8(%ebp)
5040cd:	8a 5c 30 01          	mov    0x1(%eax,%esi,1),%bl
5040d1:	84 db                	test   %bl,%bl
5040d3:	75 0c                	jne    0x5040e1
5040d5:	38 1c 30             	cmp    %bl,(%eax,%esi,1)
5040d8:	75 07                	jne    0x5040e1
5040da:	33 db                	xor    %ebx,%ebx
5040dc:	e9 e4 01 00 00       	jmp    0x5042c5
5040e1:	0f b6 0c 30          	movzbl (%eax,%esi,1),%ecx
5040e5:	66 c1 e1 08          	shl    $0x8,%cx
5040e9:	0f b6 c3             	movzbl %bl,%eax
5040ec:	66 0b c8             	or     %ax,%cx
5040ef:	0f b7 d9             	movzwl %cx,%ebx
5040f2:	66 3b da             	cmp    %dx,%bx
5040f5:	73 5f                	jae    0x504156
5040f7:	0f b7 c7             	movzwl %di,%eax
5040fa:	0f b7 d3             	movzwl %bx,%edx
5040fd:	83 c0 04             	add    $0x4,%eax
504100:	3b d0                	cmp    %eax,%edx
504102:	72 20                	jb     0x504124
504104:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
504108:	0f b6 44 32 01       	movzbl 0x1(%edx,%esi,1),%eax
50410d:	8b 55 0c             	mov    0xc(%ebp),%edx
504110:	66 c1 e1 08          	shl    $0x8,%cx
504114:	66 0b c8             	or     %ax,%cx
504117:	0f b7 fb             	movzwl %bx,%edi
50411a:	0f b7 d9             	movzwl %cx,%ebx
50411d:	66 3b da             	cmp    %dx,%bx
504120:	72 d5                	jb     0x5040f7
504122:	eb 32                	jmp    0x504156
504124:	66 85 db             	test   %bx,%bx
504127:	74 2a                	je     0x504153
504129:	68 fc c4 6b 00       	push   $0x6bc4fc
50412e:	68 27 01 01 00       	push   $0x10127
504133:	68 94 c4 6b 00       	push   $0x6bc494
504138:	68 78 c4 6b 00       	push   $0x6bc478
50413d:	6a 0b                	push   $0xb
50413f:	e8 9c be fd ff       	call   0x4dffe0
504144:	83 c4 14             	add    $0x14,%esp
504147:	b8 0b 00 00 00       	mov    $0xb,%eax
50414c:	5f                   	pop    %edi
50414d:	5e                   	pop    %esi
50414e:	5b                   	pop    %ebx
50414f:	8b e5                	mov    %ebp,%esp
504151:	5d                   	pop    %ebp
504152:	c3                   	ret
504153:	8b 55 0c             	mov    0xc(%ebp),%edx
504156:	8b 45 08             	mov    0x8(%ebp),%eax
504159:	0f b7 cb             	movzwl %bx,%ecx
50415c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50415f:	8b 40 34             	mov    0x34(%eax),%eax
504162:	8b 40 24             	mov    0x24(%eax),%eax
504165:	89 45 e8             	mov    %eax,-0x18(%ebp)
504168:	83 c0 fc             	add    $0xfffffffc,%eax
50416b:	3b c8                	cmp    %eax,%ecx
50416d:	76 2a                	jbe    0x504199
50416f:	68 fc c4 6b 00       	push   $0x6bc4fc
504174:	68 2c 01 01 00       	push   $0x1012c
504179:	68 94 c4 6b 00       	push   $0x6bc494
50417e:	68 78 c4 6b 00       	push   $0x6bc478
504183:	6a 0b                	push   $0xb
504185:	e8 56 be fd ff       	call   0x4dffe0
50418a:	83 c4 14             	add    $0x14,%esp
50418d:	b8 0b 00 00 00       	mov    $0xb,%eax
504192:	5f                   	pop    %edi
504193:	5e                   	pop    %esi
504194:	5b                   	pop    %ebx
504195:	8b e5                	mov    %ebp,%esp
504197:	5d                   	pop    %ebp
504198:	c3                   	ret
504199:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50419c:	66 85 db             	test   %bx,%bx
50419f:	74 75                	je     0x504216
5041a1:	8d 41 03             	lea    0x3(%ecx),%eax
5041a4:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5041a7:	72 6d                	jb     0x504216
5041a9:	8a c3                	mov    %bl,%al
5041ab:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5041ae:	2a c1                	sub    %cl,%al
5041b0:	88 45 ff             	mov    %al,-0x1(%ebp)
5041b3:	3b cb                	cmp    %ebx,%ecx
5041b5:	76 14                	jbe    0x5041cb
5041b7:	68 38 01 01 00       	push   $0x10138
5041bc:	e8 ef bb 01 00       	call   0x51fdb0
5041c1:	83 c4 04             	add    $0x4,%esp
5041c4:	5f                   	pop    %edi
5041c5:	5e                   	pop    %esi
5041c6:	5b                   	pop    %ebx
5041c7:	8b e5                	mov    %ebp,%esp
5041c9:	5d                   	pop    %ebp
5041ca:	c3                   	ret
5041cb:	0f b6 4c 33 02       	movzbl 0x2(%ebx,%esi,1),%ecx
5041d0:	0f b6 44 33 03       	movzbl 0x3(%ebx,%esi,1),%eax
5041d5:	c1 e1 08             	shl    $0x8,%ecx
5041d8:	0b c8                	or     %eax,%ecx
5041da:	03 cb                	add    %ebx,%ecx
5041dc:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5041df:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
5041e2:	76 14                	jbe    0x5041f8
5041e4:	68 3b 01 01 00       	push   $0x1013b
5041e9:	e8 c2 bb 01 00       	call   0x51fdb0
5041ee:	83 c4 04             	add    $0x4,%esp
5041f1:	5f                   	pop    %edi
5041f2:	5e                   	pop    %esi
5041f3:	5b                   	pop    %ebx
5041f4:	8b e5                	mov    %ebp,%esp
5041f6:	5d                   	pop    %ebp
5041f7:	c3                   	ret
5041f8:	2b ca                	sub    %edx,%ecx
5041fa:	0f b7 c1             	movzwl %cx,%eax
5041fd:	0f b6 0c 33          	movzbl (%ebx,%esi,1),%ecx
504201:	89 45 10             	mov    %eax,0x10(%ebp)
504204:	0f b6 44 33 01       	movzbl 0x1(%ebx,%esi,1),%eax
504209:	66 c1 e1 08          	shl    $0x8,%cx
50420d:	66 0b c8             	or     %ax,%cx
504210:	0f b7 d9             	movzwl %cx,%ebx
504213:	8b 4d f0             	mov    -0x10(%ebp),%ecx
504216:	0f b6 45 fe          	movzbl -0x2(%ebp),%eax
50421a:	89 45 e8             	mov    %eax,-0x18(%ebp)
50421d:	0f b7 c7             	movzwl %di,%eax
504220:	89 45 f8             	mov    %eax,-0x8(%ebp)
504223:	8b 45 e8             	mov    -0x18(%ebp),%eax
504226:	40                   	inc    %eax
504227:	39 45 f8             	cmp    %eax,-0x8(%ebp)
50422a:	76 5b                	jbe    0x504287
50422c:	8b 45 f8             	mov    -0x8(%ebp),%eax
50422f:	0f b6 44 30 02       	movzbl 0x2(%eax,%esi,1),%eax
504234:	c1 e0 08             	shl    $0x8,%eax
504237:	89 45 f4             	mov    %eax,-0xc(%ebp)
50423a:	8b 45 f8             	mov    -0x8(%ebp),%eax
50423d:	0f b6 44 30 03       	movzbl 0x3(%eax,%esi,1),%eax
504242:	09 45 f4             	or     %eax,-0xc(%ebp)
504245:	8b 45 f4             	mov    -0xc(%ebp),%eax
504248:	03 45 f8             	add    -0x8(%ebp),%eax
50424b:	89 45 f4             	mov    %eax,-0xc(%ebp)
50424e:	83 c0 03             	add    $0x3,%eax
504251:	3b 45 ec             	cmp    -0x14(%ebp),%eax
504254:	7c 31                	jl     0x504287
504256:	8b 45 f4             	mov    -0xc(%ebp),%eax
504259:	3b 45 ec             	cmp    -0x14(%ebp),%eax
50425c:	7e 14                	jle    0x504272
50425e:	68 48 01 01 00       	push   $0x10148
504263:	e8 48 bb 01 00       	call   0x51fdb0
504268:	83 c4 04             	add    $0x4,%esp
50426b:	5f                   	pop    %edi
50426c:	5e                   	pop    %esi
50426d:	5b                   	pop    %ebx
50426e:	8b e5                	mov    %ebp,%esp
504270:	5d                   	pop    %ebp
504271:	c3                   	ret
504272:	2a d0                	sub    %al,%dl
504274:	8b c1                	mov    %ecx,%eax
504276:	00 55 ff             	add    %dl,-0x1(%ebp)
504279:	2b c7                	sub    %edi,%eax
50427b:	0f b7 c0             	movzwl %ax,%eax
50427e:	0f b7 d7             	movzwl %di,%edx
504281:	89 45 10             	mov    %eax,0x10(%ebp)
504284:	89 55 0c             	mov    %edx,0xc(%ebp)
504287:	8b 7d e8             	mov    -0x18(%ebp),%edi
50428a:	8a 4d ff             	mov    -0x1(%ebp),%cl
50428d:	8a 44 37 07          	mov    0x7(%edi,%esi,1),%al
504291:	3a c8                	cmp    %al,%cl
504293:	76 2a                	jbe    0x5042bf
504295:	68 fc c4 6b 00       	push   $0x6bc4fc
50429a:	68 4e 01 01 00       	push   $0x1014e
50429f:	68 94 c4 6b 00       	push   $0x6bc494
5042a4:	68 78 c4 6b 00       	push   $0x6bc478
5042a9:	6a 0b                	push   $0xb
5042ab:	e8 30 bd fd ff       	call   0x4dffe0
5042b0:	83 c4 14             	add    $0x14,%esp
5042b3:	b8 0b 00 00 00       	mov    $0xb,%eax
5042b8:	5f                   	pop    %edi
5042b9:	5e                   	pop    %esi
5042ba:	5b                   	pop    %ebx
5042bb:	8b e5                	mov    %ebp,%esp
5042bd:	5d                   	pop    %ebp
5042be:	c3                   	ret
5042bf:	2a c1                	sub    %cl,%al
5042c1:	88 44 37 07          	mov    %al,0x7(%edi,%esi,1)
5042c5:	0f b6 7d fe          	movzbl -0x2(%ebp),%edi
5042c9:	0f b6 4c 37 05       	movzbl 0x5(%edi,%esi,1),%ecx
5042ce:	0f b6 44 37 06       	movzbl 0x6(%edi,%esi,1),%eax
5042d3:	66 c1 e1 08          	shl    $0x8,%cx
5042d7:	66 0b c8             	or     %ax,%cx
5042da:	0f b7 c1             	movzwl %cx,%eax
5042dd:	66 3b d0             	cmp    %ax,%dx
5042e0:	77 67                	ja     0x504349
5042e2:	73 2a                	jae    0x50430e
5042e4:	68 fc c4 6b 00       	push   $0x6bc4fc
5042e9:	68 56 01 01 00       	push   $0x10156
5042ee:	68 94 c4 6b 00       	push   $0x6bc494
5042f3:	68 78 c4 6b 00       	push   $0x6bc478
5042f8:	6a 0b                	push   $0xb
5042fa:	e8 e1 bc fd ff       	call   0x4dffe0
5042ff:	83 c4 14             	add    $0x14,%esp
504302:	b8 0b 00 00 00       	mov    $0xb,%eax
504307:	5f                   	pop    %edi
504308:	5e                   	pop    %esi
504309:	5b                   	pop    %ebx
50430a:	8b e5                	mov    %ebp,%esp
50430c:	5d                   	pop    %ebp
50430d:	c3                   	ret
50430e:	8d 47 01             	lea    0x1(%edi),%eax
504311:	39 45 f8             	cmp    %eax,-0x8(%ebp)
504314:	74 14                	je     0x50432a
504316:	68 57 01 01 00       	push   $0x10157
50431b:	e8 90 ba 01 00       	call   0x51fdb0
504320:	83 c4 04             	add    $0x4,%esp
504323:	5f                   	pop    %edi