4180c6:	58                   	pop    %eax
4180c7:	3b f8                	cmp    %eax,%edi
4180c9:	0f 8d da ba 03 00    	jge    0x453ba9
4180cf:	8b 55 f8             	mov    -0x8(%ebp),%edx
4180d2:	8d 47 fa             	lea    -0x6(%edi),%eax
4180d5:	6a 10                	push   $0x10
4180d7:	59                   	pop    %ecx
4180d8:	3b c8                	cmp    %eax,%ecx
4180da:	1b db                	sbb    %ebx,%ebx
4180dc:	f7 d3                	not    %ebx
4180de:	23 da                	and    %edx,%ebx
4180e0:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
4180e4:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4180e7:	0f 84 ca ba 03 00    	je     0x453bb7
4180ed:	6a 02                	push   $0x2
4180ef:	66 89 3a             	mov    %di,(%edx)
4180f2:	5e                   	pop    %esi
4180f3:	03 d6                	add    %esi,%edx
4180f5:	89 55 f8             	mov    %edx,-0x8(%ebp)
4180f8:	8b 75 fc             	mov    -0x4(%ebp),%esi
4180fb:	e9 1e f4 ff ff       	jmp    0x41751e
418100:	8b 9d 18 ff ff ff    	mov    -0xe8(%ebp),%ebx
418106:	8b f1                	mov    %ecx,%esi
418108:	89 75 fc             	mov    %esi,-0x4(%ebp)
41810b:	e9 66 fa ff ff       	jmp    0x417b76
418110:	6a 34                	push   $0x34
418112:	5f                   	pop    %edi
418113:	8b d9                	mov    %ecx,%ebx
418115:	8b 4d f0             	mov    -0x10(%ebp),%ecx
418118:	6a 10                	push   $0x10
41811a:	5a                   	pop    %edx
41811b:	0f b7 01             	movzwl (%ecx),%eax
41811e:	66 3b c2             	cmp    %dx,%ax
418121:	0f 84 67 af 03 00    	je     0x45308e
418127:	6a 0f                	push   $0xf
418129:	5a                   	pop    %edx
41812a:	66 3b c2             	cmp    %dx,%ax
41812d:	0f 84 5b af 03 00    	je     0x45308e
418133:	83 4d ec ff          	orl    $0xffffffff,-0x14(%ebp)
418137:	83 ca ff             	or     $0xffffffff,%edx
41813a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41813d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
418140:	89 45 f8             	mov    %eax,-0x8(%ebp)
418143:	8b 45 c0             	mov    -0x40(%ebp),%eax
418146:	89 55 dc             	mov    %edx,-0x24(%ebp)
418149:	85 c0                	test   %eax,%eax
41814b:	0f 84 c1 fa ff ff    	je     0x417c12
418151:	01 7d e4             	add    %edi,-0x1c(%ebp)
418154:	83 7d b0 00          	cmpl   $0x0,-0x50(%ebp)
418158:	0f 85 6c af 03 00    	jne    0x4530ca
41815e:	83 f8 ff             	cmp    $0xffffffff,%eax
418161:	0f 85 37 af 03 00    	jne    0x45309e
418167:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41816a:	83 c0 21             	add    $0x21,%eax
41816d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
418170:	66 89 01             	mov    %ax,(%ecx)
418173:	8d 79 02             	lea    0x2(%ecx),%edi
418176:	8b 75 ec             	mov    -0x14(%ebp),%esi
418179:	6a 02                	push   $0x2
41817b:	59                   	pop    %ecx
41817c:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
418180:	74 0c                	je     0x41818e
418182:	f7 c3 00 00 00 10    	test   $0x10000000,%ebx
418188:	0f 85 81 b0 03 00    	jne    0x45320f
41818e:	66 89 1f             	mov    %bx,(%edi)
418191:	03 f9                	add    %ecx,%edi
418193:	89 7d f8             	mov    %edi,-0x8(%ebp)
418196:	85 d2                	test   %edx,%edx
418198:	0f 89 2b ae 03 00    	jns    0x452fc9
41819e:	8b 75 fc             	mov    -0x4(%ebp),%esi
4181a1:	e9 0c fd ff ff       	jmp    0x417eb2
4181a6:	85 d2                	test   %edx,%edx
4181a8:	0f 8e e6 fc ff ff    	jle    0x417e94
4181ae:	e9 d1 aa 03 00       	jmp    0x452c84
4181b3:	8d 4e 02             	lea    0x2(%esi),%ecx
4181b6:	66 39 11             	cmp    %dx,(%ecx)
4181b9:	0f 84 f6 00 00 00    	je     0x4182b5
4181bf:	6a 03                	push   $0x3
4181c1:	ba c0 fb 48 00       	mov    $0x48fbc0,%edx
4181c6:	e8 ca 01 00 00       	call   0x418395
4181cb:	59                   	pop    %ecx
4181cc:	85 c0                	test   %eax,%eax
4181ce:	0f 85 b1 f4 ff ff    	jne    0x417685
4181d4:	8b 45 dc             	mov    -0x24(%ebp),%eax
4181d7:	83 c6 06             	add    $0x6,%esi
4181da:	e9 75 f4 ff ff       	jmp    0x417654
4181df:	ff 75 f4             	push   -0xc(%ebp)
4181e2:	8b 5d 28             	mov    0x28(%ebp),%ebx
4181e5:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
4181eb:	ff 75 cc             	push   -0x34(%ebp)
4181ee:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4181f1:	ff 73 40             	push   0x40(%ebx)
4181f4:	ff 75 0c             	push   0xc(%ebp)
4181f7:	e8 c8 01 00 00       	call   0x4183c4
4181fc:	8b 55 0c             	mov    0xc(%ebp),%edx
4181ff:	33 c9                	xor    %ecx,%ecx
418201:	83 c4 10             	add    $0x10,%esp
418204:	8b f0                	mov    %eax,%esi
418206:	39 0a                	cmp    %ecx,(%edx)
418208:	0f 85 ef 00 00 00    	jne    0x4182fd
41820e:	85 f6                	test   %esi,%esi
418210:	0f 85 a9 00 00 00    	jne    0x4182bf
418216:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
41821c:	8b 75 fc             	mov    -0x4(%ebp),%esi
41821f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
418222:	e9 ee f4 ff ff       	jmp    0x417715
418227:	85 c0                	test   %eax,%eax
418229:	0f 89 ab f8 ff ff    	jns    0x417ada
41822f:	8b 85 28 ff ff ff    	mov    -0xd8(%ebp),%eax
418235:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
41823b:	8b c1                	mov    %ecx,%eax
41823d:	0b c7                	or     %edi,%eax
41823f:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
418245:	e9 88 f8 ff ff       	jmp    0x417ad2
41824a:	8b d0                	mov    %eax,%edx
41824c:	89 55 f8             	mov    %edx,-0x8(%ebp)
41824f:	e9 9b f0 ff ff       	jmp    0x4172ef
418254:	bb ff 00 00 00       	mov    $0xff,%ebx
418259:	e9 47 9a 03 00       	jmp    0x451ca5
41825e:	8b 7d f4             	mov    -0xc(%ebp),%edi
418261:	e9 f4 f9 ff ff       	jmp    0x417c5a
418266:	03 f2                	add    %edx,%esi
418268:	89 75 fc             	mov    %esi,-0x4(%ebp)
41826b:	e9 93 a3 03 00       	jmp    0x452603
418270:	bb 83 00 00 00       	mov    $0x83,%ebx
418275:	e9 f3 b3 03 00       	jmp    0x45366d
41827a:	83 c6 02             	add    $0x2,%esi
41827d:	e9 ae a6 03 00       	jmp    0x452930
418282:	89 45 f8             	mov    %eax,-0x8(%ebp)
418285:	e9 88 f9 ff ff       	jmp    0x417c12
41828a:	bb 83 00 00 00       	mov    $0x83,%ebx
41828f:	e9 9d a3 03 00       	jmp    0x452631
418294:	8b 55 f4             	mov    -0xc(%ebp),%edx
418297:	33 c9                	xor    %ecx,%ecx
418299:	e9 3b f7 ff ff       	jmp    0x4179d9
41829e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4182a1:	e9 33 f7 ff ff       	jmp    0x4179d9
4182a6:	ff 48 5c             	decl   0x5c(%eax)
4182a9:	e9 a0 f7 ff ff       	jmp    0x417a4e
4182ae:	f7 df                	neg    %edi
4182b0:	e9 69 b8 03 00       	jmp    0x453b1e
4182b5:	6a 5c                	push   $0x5c
4182b7:	8b f1                	mov    %ecx,%esi
4182b9:	59                   	pop    %ecx
4182ba:	e9 9b f3 ff ff       	jmp    0x41765a
4182bf:	83 fe 05             	cmp    $0x5,%esi
4182c2:	0f 85 7d bc 03 00    	jne    0x453f45
4182c8:	6a 08                	push   $0x8
4182ca:	5b                   	pop    %ebx
4182cb:	e9 4c ff ff ff       	jmp    0x41821c
4182d0:	6a 45                	push   $0x45
4182d2:	5b                   	pop    %ebx
4182d3:	e9 d3 be 03 00       	jmp    0x4541ab
4182d8:	8b f1                	mov    %ecx,%esi
4182da:	89 75 fc             	mov    %esi,-0x4(%ebp)
4182dd:	e9 6c f4 ff ff       	jmp    0x41774e
4182e2:	6a 20                	push   $0x20
4182e4:	33 c0                	xor    %eax,%eax
4182e6:	59                   	pop    %ecx
4182e7:	e9 5c c2 03 00       	jmp    0x454548
4182ec:	6a 09                	push   $0x9
4182ee:	e9 8e c3 03 00       	jmp    0x454681
4182f3:	8b 45 0c             	mov    0xc(%ebp),%eax
4182f6:	89 38                	mov    %edi,(%eax)
4182f8:	e9 b5 c3 03 00       	jmp    0x4546b2
4182fd:	8b 75 fc             	mov    -0x4(%ebp),%esi
418300:	e9 ad c3 03 00       	jmp    0x4546b2
418305:	55                   	push   %ebp
418306:	8b ec                	mov    %esp,%ebp
418308:	83 ec 14             	sub    $0x14,%esp
41830b:	53                   	push   %ebx
41830c:	56                   	push   %esi
41830d:	57                   	push   %edi
41830e:	8b 7d 14             	mov    0x14(%ebp),%edi
418311:	b8 ff 00 00 00       	mov    $0xff,%eax
418316:	89 55 f4             	mov    %edx,-0xc(%ebp)
418319:	8b df                	mov    %edi,%ebx
41831b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41831e:	3b f8                	cmp    %eax,%edi
418320:	77 6f                	ja     0x418391
418322:	8b 45 08             	mov    0x8(%ebp),%eax
418325:	33 c9                	xor    %ecx,%ecx
418327:	8b 75 10             	mov    0x10(%ebp),%esi
41832a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41832d:	a8 01                	test   $0x1,%al
41832f:	0f 85 89 c3 03 00    	jne    0x4546be
418335:	25 00 08 00 00       	and    $0x800,%eax
41833a:	89 45 08             	mov    %eax,0x8(%ebp)
41833d:	0f 84 68 c4 03 00    	je     0x4547ab
418343:	3b f3                	cmp    %ebx,%esi
418345:	77 2b                	ja     0x418372
418347:	8b c3                	mov    %ebx,%eax
418349:	41                   	inc    %ecx
41834a:	2b c6                	sub    %esi,%eax
41834c:	8b fe                	mov    %esi,%edi
41834e:	03 c8                	add    %eax,%ecx
418350:	89 4d fc             	mov    %ecx,-0x4(%ebp)
418353:	8b cf                	mov    %edi,%ecx
418355:	8b d7                	mov    %edi,%edx
418357:	83 e1 07             	and    $0x7,%ecx
41835a:	c1 ea 03             	shr    $0x3,%edx
41835d:	b0 01                	mov    $0x1,%al
41835f:	d2 e0                	shl    %cl,%al
418361:	8b 4d f8             	mov    -0x8(%ebp),%ecx
418364:	08 04 0a             	or     %al,(%edx,%ecx,1)
418367:	47                   	inc    %edi
418368:	3b fb                	cmp    %ebx,%edi
41836a:	76 e7                	jbe    0x418353
41836c:	8b 7d 14             	mov    0x14(%ebp),%edi
41836f:	8b 45 08             	mov    0x8(%ebp),%eax
418372:	81 fe ff 00 00 00    	cmp    $0xff,%esi
418378:	77 05                	ja     0x41837f
41837a:	be 00 01 00 00       	mov    $0x100,%esi
41837f:	3b fe                	cmp    %esi,%edi
418381:	0f 83 3b c4 03 00    	jae    0x4547c2
418387:	8b 45 fc             	mov    -0x4(%ebp),%eax
41838a:	5f                   	pop    %edi
41838b:	5e                   	pop    %esi
41838c:	5b                   	pop    %ebx
41838d:	8b e5                	mov    %ebp,%esp
41838f:	5d                   	pop    %ebp
418390:	c3                   	ret
418391:	8b d8                	mov    %eax,%ebx
418393:	eb 8d                	jmp    0x418322
418395:	55                   	push   %ebp
418396:	8b ec                	mov    %esp,%ebp
418398:	56                   	push   %esi
418399:	8b 75 08             	mov    0x8(%ebp),%esi
41839c:	57                   	push   %edi
41839d:	85 f6                	test   %esi,%esi
41839f:	74 1f                	je     0x4183c0
4183a1:	0f b7 39             	movzwl (%ecx),%edi
4183a4:	4e                   	dec    %esi
4183a5:	0f b6 02             	movzbl (%edx),%eax
4183a8:	8d 49 02             	lea    0x2(%ecx),%ecx
4183ab:	42                   	inc    %edx
4183ac:	66 3b c7             	cmp    %di,%ax
4183af:	74 ec                	je     0x41839d
4183b1:	1b c0                	sbb    %eax,%eax
4183b3:	f7 d8                	neg    %eax
4183b5:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
4183bc:	5f                   	pop    %edi
4183bd:	5e                   	pop    %esi
4183be:	5d                   	pop    %ebp
4183bf:	c3                   	ret
4183c0:	33 c0                	xor    %eax,%eax
4183c2:	eb f8                	jmp    0x4183bc
4183c4:	55                   	push   %ebp
4183c5:	8b ec                	mov    %esp,%ebp
4183c7:	83 ec 20             	sub    $0x20,%esp
4183ca:	8b c1                	mov    %ecx,%eax
4183cc:	89 55 e0             	mov    %edx,-0x20(%ebp)
4183cf:	8b 4d 10             	mov    0x10(%ebp),%ecx
4183d2:	33 d2                	xor    %edx,%edx
4183d4:	53                   	push   %ebx
4183d5:	56                   	push   %esi
4183d6:	8b 30                	mov    (%eax),%esi
4183d8:	42                   	inc    %edx
4183d9:	c1 e9 0b             	shr    $0xb,%ecx
4183dc:	33 db                	xor    %ebx,%ebx
4183de:	57                   	push   %edi
4183df:	23 ca                	and    %edx,%ecx
4183e1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4183e4:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
4183e8:	83 c6 04             	add    $0x4,%esi
4183eb:	89 55 ec             	mov    %edx,-0x14(%ebp)
4183ee:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4183f1:	85 c9                	test   %ecx,%ecx
4183f3:	74 12                	je     0x418407
4183f5:	8b c7                	mov    %edi,%eax
4183f7:	25 00 fc 00 00       	and    $0xfc00,%eax
4183fc:	3d 00 d8 00 00       	cmp    $0xd800,%eax
418401:	0f 84 24 c4 03 00    	je     0x45482b
418407:	83 ee 02             	sub    $0x2,%esi
41840a:	89 75 f0             	mov    %esi,-0x10(%ebp)
41840d:	85 ff                	test   %edi,%edi
41840f:	74 5c                	je     0x41846d
418411:	6a 30                	push   $0x30
418413:	58                   	pop    %eax
418414:	89 45 fc             	mov    %eax,-0x4(%ebp)
418417:	3b f8                	cmp    %eax,%edi
418419:	73 1c                	jae    0x418437
41841b:	f7 45 10 00 00 00 20 	testl  $0x20000000,0x10(%ebp)
418422:	75 50                	jne    0x418474
418424:	8b 45 e4             	mov    -0x1c(%ebp),%eax
418427:	89 30                	mov    %esi,(%eax)
418429:	8b 45 e0             	mov    -0x20(%ebp),%eax
41842c:	89 38                	mov    %edi,(%eax)
41842e:	8b c3                	mov    %ebx,%eax
418430:	5f                   	pop    %edi
418431:	5e                   	pop    %esi
418432:	5b                   	pop    %ebx
418433:	8b e5                	mov    %ebp,%esp
418435:	5d                   	pop    %ebp
418436:	c3                   	ret
418437:	83 ff 7a             	cmp    $0x7a,%edi
41843a:	77 df                	ja     0x41841b
41843c:	8d 57 d0             	lea    -0x30(%edi),%edx
41843f:	c7 45 e8 7b 00 00 00 	movl   $0x7b,-0x18(%ebp)
418446:	0f bf 04 55 98 56 4a 	movswl 0x4a5698(,%edx,2),%eax
41844d:	00
41844e:	89 45 f8             	mov    %eax,-0x8(%ebp)
418451:	85 c0                	test   %eax,%eax
418453:	0f 84 f3 c3 03 00    	je     0x45484c
418459:	7e 04                	jle    0x41845f
41845b:	8b f8                	mov    %eax,%edi
41845d:	eb bc                	jmp    0x41841b
41845f:	8b d8                	mov    %eax,%ebx
418461:	f7 db                	neg    %ebx
418463:	83 fb 0c             	cmp    $0xc,%ebx
418466:	75 b3                	jne    0x41841b
418468:	e9 43 ca 03 00       	jmp    0x454eb0
41846d:	8b 45 08             	mov    0x8(%ebp),%eax
418470:	89 10                	mov    %edx,(%eax)
418472:	eb a7                	jmp    0x41841b
418474:	8d 4b fa             	lea    -0x6(%ebx),%ecx
418477:	83 f9 05             	cmp    $0x5,%ecx
41847a:	77 a8                	ja     0x418424
41847c:	83 c3 17             	add    $0x17,%ebx
41847f:	eb a3                	jmp    0x418424
418481:	55                   	push   %ebp
418482:	8b ec                	mov    %esp,%ebp
418484:	83 ec 10             	sub    $0x10,%esp
418487:	0f b7 01             	movzwl (%ecx),%eax
41848a:	53                   	push   %ebx
41848b:	56                   	push   %esi
41848c:	57                   	push   %edi
41848d:	0f b6 80 50 57 4a 00 	movzbl 0x4a5750(%eax),%eax
418494:	8b fa                	mov    %edx,%edi
418496:	33 d2                	xor    %edx,%edx
418498:	89 7d fc             	mov    %edi,-0x4(%ebp)
41849b:	42                   	inc    %edx
41849c:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41849f:	e8 cf 01 00 00       	call   0x418673
4184a4:	8b f0                	mov    %eax,%esi
4184a6:	3b f7                	cmp    %edi,%esi
4184a8:	0f 83 01 01 00 00    	jae    0x4185af
4184ae:	6a 77                	push   $0x77
4184b0:	5b                   	pop    %ebx
4184b1:	0f b7 3e             	movzwl (%esi),%edi
4184b4:	33 d2                	xor    %edx,%edx
4184b6:	6a 10                	push   $0x10
4184b8:	59                   	pop    %ecx
4184b9:	83 ff 7d             	cmp    $0x7d,%edi
4184bc:	0f 84 19 ca 03 00    	je     0x454edb
4184c2:	83 ff 75             	cmp    $0x75,%edi
4184c5:	0f 84 28 ca 03 00    	je     0x454ef3
4184cb:	b8 92 00 00 00       	mov    $0x92,%eax
4184d0:	66 3b f8             	cmp    %ax,%di
4184d3:	0f 84 00 cc 03 00    	je     0x4550d9