452f53:	33 d2                	xor    %edx,%edx
452f55:	89 55 e0             	mov    %edx,-0x20(%ebp)
452f58:	e9 57 4f fc ff       	jmp    0x417eb4
452f5d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
452f60:	83 c0 79             	add    $0x79,%eax
452f63:	eb 03                	jmp    0x452f68
452f65:	0f b6 c0             	movzbl %al,%eax
452f68:	66 89 01             	mov    %ax,(%ecx)
452f6b:	e9 1b 04 00 00       	jmp    0x45338b
452f70:	b8 9d 00 00 00       	mov    $0x9d,%eax
452f75:	66 3b c8             	cmp    %ax,%cx
452f78:	0f 84 94 4c fc ff    	je     0x417c12
452f7e:	8b 45 0c             	mov    0xc(%ebp),%eax
452f81:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)
452f87:	e9 26 17 00 00       	jmp    0x4546b2
452f8c:	3b 7d f4             	cmp    -0xc(%ebp),%edi
452f8f:	75 0d                	jne    0x452f9e
452f91:	83 fa ff             	cmp    $0xffffffff,%edx
452f94:	75 08                	jne    0x452f9e
452f96:	8d 43 64             	lea    0x64(%ebx),%eax
452f99:	e9 57 4c fc ff       	jmp    0x417bf5
452f9e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
452fa1:	8d 43 68             	lea    0x68(%ebx),%eax
452fa4:	6a 02                	push   $0x2
452fa6:	66 89 01             	mov    %ax,(%ecx)
452fa9:	58                   	pop    %eax
452faa:	03 c8                	add    %eax,%ecx
452fac:	50                   	push   %eax
452fad:	89 4d f8             	mov    %ecx,-0x8(%ebp)
452fb0:	8d 42 01             	lea    0x1(%edx),%eax
452fb3:	66 89 39             	mov    %di,(%ecx)
452fb6:	8b f9                	mov    %ecx,%edi
452fb8:	59                   	pop    %ecx
452fb9:	03 f9                	add    %ecx,%edi
452fbb:	f7 d8                	neg    %eax
452fbd:	1b c0                	sbb    %eax,%eax
452fbf:	23 c2                	and    %edx,%eax
452fc1:	89 45 c0             	mov    %eax,-0x40(%ebp)
452fc4:	66 89 07             	mov    %ax,(%edi)
452fc7:	eb 08                	jmp    0x452fd1
452fc9:	66 89 17             	mov    %dx,(%edi)
452fcc:	03 f9                	add    %ecx,%edi
452fce:	66 89 37             	mov    %si,(%edi)
452fd1:	03 f9                	add    %ecx,%edi
452fd3:	89 7d f8             	mov    %edi,-0x8(%ebp)
452fd6:	e9 c3 51 fc ff       	jmp    0x41819e
452fdb:	6a 1e                	push   $0x1e
452fdd:	8b c1                	mov    %ecx,%eax
452fdf:	5a                   	pop    %edx
452fe0:	2b c2                	sub    %edx,%eax
452fe2:	74 13                	je     0x452ff7
452fe4:	48                   	dec    %eax
452fe5:	74 0b                	je     0x452ff2
452fe7:	48                   	dec    %eax
452fe8:	74 04                	je     0x452fee
452fea:	33 c0                	xor    %eax,%eax
452fec:	eb 0c                	jmp    0x452ffa
452fee:	6a 27                	push   $0x27
452ff0:	eb 07                	jmp    0x452ff9
452ff2:	6a 1a                	push   $0x1a
452ff4:	5f                   	pop    %edi
452ff5:	eb 05                	jmp    0x452ffc
452ff7:	6a 0d                	push   $0xd
452ff9:	58                   	pop    %eax
452ffa:	8b f8                	mov    %eax,%edi
452ffc:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
453000:	8b 5d f8             	mov    -0x8(%ebp),%ebx
453003:	74 56                	je     0x45305b
453005:	8d 53 fe             	lea    -0x2(%ebx),%edx
453008:	66 8b 02             	mov    (%edx),%ax
45300b:	66 23 85 d4 fe ff ff 	and    -0x12c(%ebp),%ax
453012:	66 3b 85 b8 fe ff ff 	cmp    -0x148(%ebp),%ax
453019:	75 40                	jne    0x45305b
45301b:	66 8b 02             	mov    (%edx),%ax
45301e:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
453023:	66 23 c1             	and    %cx,%ax
453026:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
45302b:	66 3b c1             	cmp    %cx,%ax
45302e:	75 05                	jne    0x453035
453030:	6a 02                	push   $0x2
453032:	58                   	pop    %eax
453033:	2b d0                	sub    %eax,%edx
453035:	2b da                	sub    %edx,%ebx
453037:	d1 fb                	sar    $1,%ebx
453039:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
45303c:	50                   	push   %eax
45303d:	52                   	push   %edx
45303e:	8d 85 7c fe ff ff    	lea    -0x184(%ebp),%eax
453044:	50                   	push   %eax
453045:	e8 36 e0 fc ff       	call   0x421080
45304a:	8b 75 fc             	mov    -0x4(%ebp),%esi
45304d:	83 c4 0c             	add    $0xc,%esp
453050:	81 cb 00 00 00 10    	or     $0x10000000,%ebx
453056:	e9 ba 50 fc ff       	jmp    0x418115
45305b:	0f b7 5b fe          	movzwl -0x2(%ebx),%ebx
45305f:	6a 1e                	push   $0x1e
453061:	58                   	pop    %eax
453062:	66 3b c8             	cmp    %ax,%cx
453065:	0f 87 aa 50 fc ff    	ja     0x418115
45306b:	8b 45 f4             	mov    -0xc(%ebp),%eax
45306e:	39 45 b0             	cmp    %eax,-0x50(%ebp)
453071:	0f 8e 9e 50 fc ff    	jle    0x418115
453077:	8b 45 28             	mov    0x28(%ebp),%eax
45307a:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
45307d:	8b 40 68             	mov    0x68(%eax),%eax
453080:	0b 85 74 ff ff ff    	or     -0x8c(%ebp),%eax
453086:	89 45 ac             	mov    %eax,-0x54(%ebp)
453089:	e9 87 50 fc ff       	jmp    0x418115
45308e:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
453092:	0f b7 51 02          	movzwl 0x2(%ecx),%edx
453096:	89 45 ec             	mov    %eax,-0x14(%ebp)
453099:	e9 9c 50 fc ff       	jmp    0x41813a
45309e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4530a1:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4530a4:	8b 75 ec             	mov    -0x14(%ebp),%esi
4530a7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4530aa:	6a 02                	push   $0x2
4530ac:	8d 79 02             	lea    0x2(%ecx),%edi
4530af:	75 0b                	jne    0x4530bc
4530b1:	83 c0 25             	add    $0x25,%eax
4530b4:	66 89 01             	mov    %ax,(%ecx)
4530b7:	e9 bf 50 fc ff       	jmp    0x41817b
4530bc:	83 c0 27             	add    $0x27,%eax
4530bf:	66 89 01             	mov    %ax,(%ecx)
4530c2:	8b 45 c0             	mov    -0x40(%ebp),%eax
4530c5:	e9 2a 01 00 00       	jmp    0x4531f4
4530ca:	83 7d b0 01          	cmpl   $0x1,-0x50(%ebp)
4530ce:	75 3c                	jne    0x45310c
4530d0:	83 f8 ff             	cmp    $0xffffffff,%eax
4530d3:	75 0b                	jne    0x4530e0
4530d5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4530d8:	83 c0 23             	add    $0x23,%eax
4530db:	e9 8d 50 fc ff       	jmp    0x41816d
4530e0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4530e3:	83 f8 01             	cmp    $0x1,%eax
4530e6:	0f 84 26 4b fc ff    	je     0x417c12
4530ec:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4530ef:	8d 79 02             	lea    0x2(%ecx),%edi
4530f2:	8b 75 ec             	mov    -0x14(%ebp),%esi
4530f5:	83 c0 27             	add    $0x27,%eax
4530f8:	66 89 01             	mov    %ax,(%ecx)
4530fb:	8b 45 c0             	mov    -0x40(%ebp),%eax
4530fe:	48                   	dec    %eax
4530ff:	6a 02                	push   $0x2
453101:	59                   	pop    %ecx
453102:	66 89 07             	mov    %ax,(%edi)
453105:	03 f9                	add    %ecx,%edi
453107:	e9 70 50 fc ff       	jmp    0x41817c
45310c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45310f:	8d 47 29             	lea    0x29(%edi),%eax
453112:	6a 02                	push   $0x2
453114:	5e                   	pop    %esi
453115:	66 89 01             	mov    %ax,(%ecx)
453118:	8d 79 02             	lea    0x2(%ecx),%edi
45311b:	8b 45 b0             	mov    -0x50(%ebp),%eax
45311e:	8b 4d c0             	mov    -0x40(%ebp),%ecx
453121:	66 89 07             	mov    %ax,(%edi)
453124:	03 fe                	add    %esi,%edi
453126:	85 c9                	test   %ecx,%ecx
453128:	79 5c                	jns    0x453186
45312a:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
45312e:	74 3b                	je     0x45316b
453130:	f7 c3 00 00 00 10    	test   $0x10000000,%ebx
453136:	74 33                	je     0x45316b
453138:	8b f3                	mov    %ebx,%esi
45313a:	83 e6 07             	and    $0x7,%esi
45313d:	8d 04 36             	lea    (%esi,%esi,1),%eax
453140:	50                   	push   %eax
453141:	8d 85 7c fe ff ff    	lea    -0x184(%ebp),%eax
453147:	50                   	push   %eax
453148:	57                   	push   %edi
453149:	e8 32 df fc ff       	call   0x421080
45314e:	8b 55 dc             	mov    -0x24(%ebp),%edx
453151:	8d 3c 77             	lea    (%edi,%esi,2),%edi
453154:	83 c4 0c             	add    $0xc,%esp
453157:	6a 02                	push   $0x2
453159:	59                   	pop    %ecx
45315a:	8b 75 ec             	mov    -0x14(%ebp),%esi
45315d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
453160:	83 c0 21             	add    $0x21,%eax
453163:	66 89 07             	mov    %ax,(%edi)
453166:	e9 9d 00 00 00       	jmp    0x453208
45316b:	6a 02                	push   $0x2
45316d:	59                   	pop    %ecx
45316e:	66 89 1f             	mov    %bx,(%edi)
453171:	03 f9                	add    %ecx,%edi
453173:	85 d2                	test   %edx,%edx
453175:	78 e3                	js     0x45315a
453177:	8b 75 ec             	mov    -0x14(%ebp),%esi
45317a:	66 89 17             	mov    %dx,(%edi)
45317d:	03 f9                	add    %ecx,%edi
45317f:	66 89 37             	mov    %si,(%edi)
453182:	03 f9                	add    %ecx,%edi
453184:	eb d7                	jmp    0x45315d
453186:	3b c8                	cmp    %eax,%ecx
453188:	0f 84 e8 4f fc ff    	je     0x418176
45318e:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
453192:	74 32                	je     0x4531c6
453194:	f7 c3 00 00 00 10    	test   $0x10000000,%ebx
45319a:	74 2a                	je     0x4531c6
45319c:	8b f3                	mov    %ebx,%esi
45319e:	83 e6 07             	and    $0x7,%esi
4531a1:	8d 04 36             	lea    (%esi,%esi,1),%eax
4531a4:	50                   	push   %eax
4531a5:	8d 85 7c fe ff ff    	lea    -0x184(%ebp),%eax
4531ab:	50                   	push   %eax
4531ac:	57                   	push   %edi
4531ad:	e8 ce de fc ff       	call   0x421080
4531b2:	8b 55 dc             	mov    -0x24(%ebp),%edx
4531b5:	8d 3c 77             	lea    (%edi,%esi,2),%edi
4531b8:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4531bb:	83 c4 0c             	add    $0xc,%esp
4531be:	8b 45 b0             	mov    -0x50(%ebp),%eax
4531c1:	6a 02                	push   $0x2
4531c3:	5e                   	pop    %esi
4531c4:	eb 05                	jmp    0x4531cb
4531c6:	66 89 1f             	mov    %bx,(%edi)
4531c9:	03 fe                	add    %esi,%edi
4531cb:	85 d2                	test   %edx,%edx
4531cd:	78 10                	js     0x4531df
4531cf:	66 89 17             	mov    %dx,(%edi)
4531d2:	03 fe                	add    %esi,%edi
4531d4:	8b 75 ec             	mov    -0x14(%ebp),%esi
4531d7:	66 89 37             	mov    %si,(%edi)
4531da:	83 c7 02             	add    $0x2,%edi
4531dd:	eb 03                	jmp    0x4531e2
4531df:	8b 75 ec             	mov    -0x14(%ebp),%esi
4531e2:	2b c8                	sub    %eax,%ecx
4531e4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4531e7:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4531ea:	6a 02                	push   $0x2
4531ec:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
4531ef:	75 08                	jne    0x4531f9
4531f1:	83 c0 25             	add    $0x25,%eax
4531f4:	66 89 07             	mov    %ax,(%edi)
4531f7:	eb 0e                	jmp    0x453207
4531f9:	83 c0 27             	add    $0x27,%eax
4531fc:	66 89 07             	mov    %ax,(%edi)
4531ff:	58                   	pop    %eax
453200:	03 f8                	add    %eax,%edi
453202:	6a 02                	push   $0x2
453204:	66 89 0f             	mov    %cx,(%edi)
453207:	59                   	pop    %ecx
453208:	03 f9                	add    %ecx,%edi
45320a:	e9 6d 4f fc ff       	jmp    0x41817c
45320f:	83 e3 07             	and    $0x7,%ebx
453212:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
453215:	50                   	push   %eax
453216:	8d 85 7c fe ff ff    	lea    -0x184(%ebp),%eax
45321c:	50                   	push   %eax
45321d:	57                   	push   %edi
45321e:	e8 5d de fc ff       	call   0x421080
453223:	8b 55 dc             	mov    -0x24(%ebp),%edx
453226:	8d 3c 5f             	lea    (%edi,%ebx,2),%edi
453229:	83 c4 0c             	add    $0xc,%esp
45322c:	6a 02                	push   $0x2
45322e:	59                   	pop    %ecx
45322f:	e9 5f 4f fc ff       	jmp    0x418193
453234:	8b 45 bc             	mov    -0x44(%ebp),%eax
453237:	0f b7 08             	movzwl (%eax),%ecx
45323a:	83 f9 50             	cmp    $0x50,%ecx
45323d:	7f 61                	jg     0x4532a0
45323f:	74 29                	je     0x45326a
453241:	6a 1d                	push   $0x1d
453243:	58                   	pop    %eax
453244:	3b c8                	cmp    %eax,%ecx
453246:	0f 8c b8 00 00 00    	jl     0x453304
45324c:	6a 20                	push   $0x20
45324e:	58                   	pop    %eax
45324f:	3b c8                	cmp    %eax,%ecx
453251:	7e 17                	jle    0x45326a
453253:	6a 29                	push   $0x29
453255:	58                   	pop    %eax
453256:	3b c8                	cmp    %eax,%ecx
453258:	74 10                	je     0x45326a
45325a:	83 f9 36             	cmp    $0x36,%ecx
45325d:	74 0b                	je     0x45326a
45325f:	6a 43                	push   $0x43
453261:	58                   	pop    %eax
453262:	3b c8                	cmp    %eax,%ecx
453264:	0f 85 9a 00 00 00    	jne    0x453304
45326a:	0f b6 81 50 57 4a 00 	movzbl 0x4a5750(%ecx),%eax
453271:	8b 4d bc             	mov    -0x44(%ebp),%ecx
453274:	8b 55 c4             	mov    -0x3c(%ebp),%edx
453277:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
45327a:	89 4d bc             	mov    %ecx,-0x44(%ebp)
45327d:	85 d2                	test   %edx,%edx
45327f:	0f 84 82 00 00 00    	je     0x453307
453285:	66 8b 41 fe          	mov    -0x2(%ecx),%ax
453289:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
45328e:	66 23 c1             	and    %cx,%ax
453291:	b9 00 d8 00 00       	mov    $0xd800,%ecx
453296:	66 3b c1             	cmp    %cx,%ax
453299:	75 6c                	jne    0x453307
45329b:	01 5d bc             	add    %ebx,-0x44(%ebp)
45329e:	eb 67                	jmp    0x453307
4532a0:	6a 5d                	push   $0x5d
4532a2:	58                   	pop    %eax
4532a3:	3b c8                	cmp    %eax,%ecx
4532a5:	74 2e                	je     0x4532d5
4532a7:	83 f9 6d             	cmp    $0x6d,%ecx
4532aa:	7e 58                	jle    0x453304
4532ac:	6a 6f                	push   $0x6f
4532ae:	58                   	pop    %eax
4532af:	3b c8                	cmp    %eax,%ecx
4532b1:	7e 1c                	jle    0x4532cf
4532b3:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4532b6:	6a 70                	push   $0x70
4532b8:	58                   	pop    %eax
4532b9:	3b c8                	cmp    %eax,%ecx
4532bb:	75 4a                	jne    0x453307
4532bd:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4532c0:	8b 45 bc             	mov    -0x44(%ebp),%eax
4532c3:	0f b7 49 02          	movzwl 0x2(%ecx),%ecx
4532c7:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4532ca:	89 45 bc             	mov    %eax,-0x44(%ebp)
4532cd:	eb 38                	jmp    0x453307
4532cf:	83 45 bc 22          	addl   $0x22,-0x44(%ebp)
4532d3:	eb 2f                	jmp    0x453304
4532d5:	8b 45 bc             	mov    -0x44(%ebp),%eax
4532d8:	0f b7 40 04          	movzwl 0x4(%eax),%eax
4532dc:	66 3b 85 00 ff ff ff 	cmp    -0x100(%ebp),%ax
4532e3:	74 0b                	je     0x4532f0
4532e5:	66 3b 85 f8 fe ff ff 	cmp    -0x108(%ebp),%ax
4532ec:	8b c2                	mov    %edx,%eax
4532ee:	75 02                	jne    0x4532f2
4532f0:	8b c3                	mov    %ebx,%eax
4532f2:	0f b6 89 50 57 4a 00 	movzbl 0x4a5750(%ecx),%ecx
4532f9:	03 c8                	add    %eax,%ecx
4532fb:	8b 45 bc             	mov    -0x44(%ebp),%eax
4532fe:	8d 04 48             	lea    (%eax,%ecx,2),%eax
453301:	89 45 bc             	mov    %eax,-0x44(%ebp)
453304:	8b 55 c4             	mov    -0x3c(%ebp),%edx
453307:	8b 4d bc             	mov    -0x44(%ebp),%ecx
45330a:	2b f9                	sub    %ecx,%edi
45330c:	d1 ff                	sar    $1,%edi
45330e:	85 ff                	test   %edi,%edi
453310:	0f 8e fc 48 fc ff    	jle    0x417c12
453316:	0f b7 01             	movzwl (%ecx),%eax
453319:	6a 76                	push   $0x76
45331b:	5b                   	pop    %ebx
45331c:	3b c3                	cmp    %ebx,%eax
45331e:	73 0e                	jae    0x45332e
453320:	8a 80 20 89 4b 00    	mov    0x4b8920(%eax),%al
453326:	84 c0                	test   %al,%al
453328:	0f 85 37 fc ff ff    	jne    0x452f65
45332e:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
453334:	8b 5d f8             	mov    -0x8(%ebp),%ebx
453337:	33 c0                	xor    %eax,%eax
453339:	ff 75 28             	push   0x28(%ebp)