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)
45333c:	52                   	push   %edx
45333d:	6a 02                	push   $0x2
45333f:	5e                   	pop    %esi
453340:	66 89 03             	mov    %ax,(%ebx)
453343:	8b d6                	mov    %esi,%edx
453345:	8b 4d bc             	mov    -0x44(%ebp),%ecx
453348:	e8 54 53 fc ff       	call   0x4186a1
45334d:	83 c4 0c             	add    $0xc,%esp
453350:	8d 04 3f             	lea    (%edi,%edi,1),%eax
453353:	50                   	push   %eax
453354:	8b 45 bc             	mov    -0x44(%ebp),%eax
453357:	50                   	push   %eax
453358:	83 c0 04             	add    $0x4,%eax
45335b:	50                   	push   %eax
45335c:	e8 bf 4c fd ff       	call   0x428020
453361:	83 c4 0c             	add    $0xc,%esp
453364:	8d 4e 7f             	lea    0x7f(%esi),%ecx
453367:	03 fe                	add    %esi,%edi
453369:	6a 04                	push   $0x4
45336b:	58                   	pop    %eax
45336c:	03 d8                	add    %eax,%ebx
45336e:	8b 45 bc             	mov    -0x44(%ebp),%eax
453371:	6a 78                	push   $0x78
453373:	66 89 08             	mov    %cx,(%eax)
453376:	58                   	pop    %eax
453377:	66 89 03             	mov    %ax,(%ebx)
45337a:	03 de                	add    %esi,%ebx
45337c:	66 89 3b             	mov    %di,(%ebx)
45337f:	03 de                	add    %esi,%ebx
453381:	8b 45 bc             	mov    -0x44(%ebp),%eax
453384:	89 5d f8             	mov    %ebx,-0x8(%ebp)
453387:	66 89 78 02          	mov    %di,0x2(%eax)
45338b:	8b 75 fc             	mov    -0x4(%ebp),%esi
45338e:	e9 7f 48 fc ff       	jmp    0x417c12
453393:	33 c0                	xor    %eax,%eax
453395:	f6 45 cc 02          	testb  $0x2,-0x34(%ebp)
453399:	8b d8                	mov    %eax,%ebx
45339b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45339e:	74 12                	je     0x4533b2
4533a0:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
4533a4:	75 08                	jne    0x4533ae
4533a6:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
4533aa:	83 4d 94 ff          	orl    $0xffffffff,-0x6c(%ebp)
4533ae:	6a 1c                	push   $0x1c
4533b0:	eb 02                	jmp    0x4533b4
4533b2:	6a 1b                	push   $0x1b
4533b4:	58                   	pop    %eax
4533b5:	e9 6a 4c fc ff       	jmp    0x418024
4533ba:	8b 45 28             	mov    0x28(%ebp),%eax
4533bd:	f7 40 60 00 00 00 02 	testl  $0x2000000,0x60(%eax)
4533c4:	0f 84 31 40 fc ff    	je     0x4173fb
4533ca:	8b 45 0c             	mov    0xc(%ebp),%eax
4533cd:	c7 00 40 00 00 00    	movl   $0x40,(%eax)
4533d3:	e9 da 12 00 00       	jmp    0x4546b2
4533d8:	83 c6 02             	add    $0x2,%esi
4533db:	6a 02                	push   $0x2
4533dd:	66 8b 06             	mov    (%esi),%ax
4533e0:	66 23 c1             	and    %cx,%ax
4533e3:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
4533e8:	66 3b c1             	cmp    %cx,%ax
4533eb:	0f 85 32 40 fc ff    	jne    0x417423
4533f1:	89 75 fc             	mov    %esi,-0x4(%ebp)
4533f4:	66 8b 06             	mov    (%esi),%ax
4533f7:	5e                   	pop    %esi
4533f8:	66 89 85 0a ff ff ff 	mov    %ax,-0xf6(%ebp)
4533ff:	8b de                	mov    %esi,%ebx
453401:	e9 1e 40 fc ff       	jmp    0x417424
453406:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
453409:	0f 84 c1 44 fc ff    	je     0x4178d0
45340f:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
453415:	eb 02                	jmp    0x453419
453417:	8b cb                	mov    %ebx,%ecx
453419:	8d 95 08 ff ff ff    	lea    -0xf8(%ebp),%edx
45341f:	e8 06 bb 03 00       	call   0x48ef2a
453424:	66 8b bd 08 ff ff ff 	mov    -0xf8(%ebp),%di
45342b:	8b d8                	mov    %eax,%ebx
45342d:	8b 55 f4             	mov    -0xc(%ebp),%edx
453430:	89 7d e8             	mov    %edi,-0x18(%ebp)
453433:	e9 e9 3f fc ff       	jmp    0x417421
453438:	8b 75 fc             	mov    -0x4(%ebp),%esi
45343b:	6a 5c                	push   $0x5c
45343d:	58                   	pop    %eax
45343e:	66 39 46 02          	cmp    %ax,0x2(%esi)
453442:	75 11                	jne    0x453455
453444:	6a 45                	push   $0x45
453446:	59                   	pop    %ecx
453447:	66 39 4e 04          	cmp    %cx,0x4(%esi)
45344b:	75 08                	jne    0x453455
45344d:	83 c6 04             	add    $0x4,%esi
453450:	e9 25 ea ff ff       	jmp    0x451e7a
453455:	8b 45 f4             	mov    -0xc(%ebp),%eax
453458:	89 45 d0             	mov    %eax,-0x30(%ebp)
45345b:	e9 1a ea ff ff       	jmp    0x451e7a
453460:	8b 46 20             	mov    0x20(%esi),%eax
453463:	33 db                	xor    %ebx,%ebx
453465:	2b 46 10             	sub    0x10(%esi),%eax
453468:	8b 75 fc             	mov    -0x4(%ebp),%esi
45346b:	d1 f8                	sar    $1,%eax
45346d:	6a 02                	push   $0x2
45346f:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
453475:	58                   	pop    %eax
453476:	03 f0                	add    %eax,%esi
453478:	6a 3c                	push   $0x3c
45347a:	5f                   	pop    %edi
45347b:	89 75 fc             	mov    %esi,-0x4(%ebp)
45347e:	66 39 3e             	cmp    %di,(%esi)
453481:	8d 56 02             	lea    0x2(%esi),%edx
453484:	6a 17                	push   $0x17
453486:	0f 95 c3             	setne  %bl
453489:	89 55 8c             	mov    %edx,-0x74(%ebp)
45348c:	58                   	pop    %eax
45348d:	4b                   	dec    %ebx
45348e:	23 d8                	and    %eax,%ebx
453490:	6a 27                	push   $0x27
453492:	58                   	pop    %eax
453493:	03 d8                	add    %eax,%ebx
453495:	33 c0                	xor    %eax,%eax
453497:	6a 2b                	push   $0x2b
453499:	89 45 e0             	mov    %eax,-0x20(%ebp)
45349c:	89 45 c8             	mov    %eax,-0x38(%ebp)
45349f:	0f b7 02             	movzwl (%edx),%eax
4534a2:	59                   	pop    %ecx
4534a3:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
4534a6:	3b c1                	cmp    %ecx,%eax
4534a8:	74 23                	je     0x4534cd
4534aa:	6a 2d                	push   $0x2d
4534ac:	59                   	pop    %ecx
4534ad:	3b c1                	cmp    %ecx,%eax
4534af:	74 1c                	je     0x4534cd
4534b1:	6a 30                	push   $0x30
4534b3:	59                   	pop    %ecx
4534b4:	3b c1                	cmp    %ecx,%eax
4534b6:	72 07                	jb     0x4534bf
4534b8:	6a 39                	push   $0x39
4534ba:	5f                   	pop    %edi
4534bb:	3b c7                	cmp    %edi,%eax
4534bd:	76 0e                	jbe    0x4534cd
4534bf:	8b 45 f4             	mov    -0xc(%ebp),%eax
4534c2:	8b 55 0c             	mov    0xc(%ebp),%edx
4534c5:	89 45 e8             	mov    %eax,-0x18(%ebp)
4534c8:	e9 f0 02 00 00       	jmp    0x4537bd
4534cd:	8d 4e 04             	lea    0x4(%esi),%ecx
4534d0:	0f b7 01             	movzwl (%ecx),%eax
4534d3:	6a 30                	push   $0x30
4534d5:	5f                   	pop    %edi
4534d6:	66 3b c7             	cmp    %di,%ax
4534d9:	72 19                	jb     0x4534f4
4534db:	6a 02                	push   $0x2
4534dd:	5a                   	pop    %edx
4534de:	66 3b 85 70 ff ff ff 	cmp    -0x90(%ebp),%ax
4534e5:	77 0a                	ja     0x4534f1
4534e7:	03 ca                	add    %edx,%ecx
4534e9:	0f b7 01             	movzwl (%ecx),%eax
4534ec:	66 3b c7             	cmp    %di,%ax
4534ef:	73 ed                	jae    0x4534de
4534f1:	8b 55 8c             	mov    -0x74(%ebp),%edx
4534f4:	66 39 19             	cmp    %bx,(%ecx)
4534f7:	74 0d                	je     0x453506
4534f9:	8b 45 0c             	mov    0xc(%ebp),%eax
4534fc:	6a 39                	push   $0x39
4534fe:	59                   	pop    %ecx
4534ff:	89 08                	mov    %ecx,(%eax)
453501:	e9 74 e9 ff ff       	jmp    0x451e7a
453506:	8b f2                	mov    %edx,%esi
453508:	89 75 fc             	mov    %esi,-0x4(%ebp)
45350b:	0f b7 3e             	movzwl (%esi),%edi
45350e:	6a 2b                	push   $0x2b
453510:	8b d7                	mov    %edi,%edx
453512:	58                   	pop    %eax
453513:	89 55 8c             	mov    %edx,-0x74(%ebp)
453516:	3b d0                	cmp    %eax,%edx
453518:	75 22                	jne    0x45353c
45351a:	6a 02                	push   $0x2
45351c:	58                   	pop    %eax
45351d:	03 f0                	add    %eax,%esi