453186:	8b 45 fc             	mov    -0x4(%ebp),%eax
453189:	8b 40 04             	mov    0x4(%eax),%eax
45318c:	e8 d7 f5 fe ff       	call   0x442768
453191:	50                   	push   %eax
453192:	e8 39 3c fb ff       	call   0x406dd0
453197:	a9 00 00 84 00       	test   $0x840000,%eax
45319c:	0f 95 c0             	setne  %al
45319f:	83 e0 7f             	and    $0x7f,%eax
4531a2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4531a5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4531a8:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
4531ac:	75 20                	jne    0x4531ce
4531ae:	55                   	push   %ebp
4531af:	66 ba 15 00          	mov    $0x15,%dx
4531b3:	33 c0                	xor    %eax,%eax
4531b5:	e8 3e ff ff ff       	call   0x4530f8
4531ba:	59                   	pop    %ecx
4531bb:	8b d8                	mov    %eax,%ebx
4531bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4531c0:	8b 40 04             	mov    0x4(%eax),%eax
4531c3:	e8 88 88 fe ff       	call   0x43ba50
4531c8:	03 d8                	add    %eax,%ebx
4531ca:	8b c3                	mov    %ebx,%eax
4531cc:	eb 20                	jmp    0x4531ee
4531ce:	55                   	push   %ebp
4531cf:	66 ba 14 00          	mov    $0x14,%dx
4531d3:	66 b8 01 00          	mov    $0x1,%ax
4531d7:	e8 1c ff ff ff       	call   0x4530f8
4531dc:	59                   	pop    %ecx
4531dd:	8b d8                	mov    %eax,%ebx
4531df:	8b 45 fc             	mov    -0x4(%ebp),%eax
4531e2:	8b 40 04             	mov    0x4(%eax),%eax
4531e5:	e8 22 88 fe ff       	call   0x43ba0c
4531ea:	03 d8                	add    %eax,%ebx
4531ec:	8b c3                	mov    %ebx,%eax
4531ee:	5b                   	pop    %ebx
4531ef:	8b e5                	mov    %ebp,%esp
4531f1:	5d                   	pop    %ebp
4531f2:	c3                   	ret
4531f3:	90                   	nop
4531f4:	53                   	push   %ebx
4531f5:	8b d8                	mov    %eax,%ebx
4531f7:	33 c9                	xor    %ecx,%ecx
4531f9:	33 d2                	xor    %edx,%edx
4531fb:	8b c3                	mov    %ebx,%eax
4531fd:	e8 72 ff ff ff       	call   0x453174
453202:	3b 43 10             	cmp    0x10(%ebx),%eax
453205:	0f 9c c0             	setl   %al
453208:	5b                   	pop    %ebx
453209:	c3                   	ret
45320a:	8b c0                	mov    %eax,%eax
45320c:	55                   	push   %ebp
45320d:	8b ec                	mov    %esp,%ebp
45320f:	83 c4 e4             	add    $0xffffffe4,%esp
453212:	53                   	push   %ebx
453213:	56                   	push   %esi
453214:	c7 45 e4 1c 00 00 00 	movl   $0x1c,-0x1c(%ebp)
45321b:	c7 45 e8 10 00 00 00 	movl   $0x10,-0x18(%ebp)
453222:	33 db                	xor    %ebx,%ebx
453224:	8b 45 08             	mov    0x8(%ebp),%eax
453227:	8b 40 fc             	mov    -0x4(%eax),%eax
45322a:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
45322e:	75 05                	jne    0x453235
453230:	bb 01 00 00 00       	mov    $0x1,%ebx
453235:	8b 45 08             	mov    0x8(%ebp),%eax
453238:	8b 70 f8             	mov    -0x8(%eax),%esi
45323b:	0f bf 76 06          	movswl 0x6(%esi),%esi
45323f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
453242:	50                   	push   %eax
453243:	53                   	push   %ebx
453244:	8b 45 08             	mov    0x8(%ebp),%eax
453247:	8b 40 fc             	mov    -0x4(%eax),%eax
45324a:	8b 40 04             	mov    0x4(%eax),%eax
45324d:	e8 16 f5 fe ff       	call   0x442768
453252:	50                   	push   %eax
453253:	a1 88 af 49 00       	mov    0x49af88,%eax
453258:	8b 00                	mov    (%eax),%eax
45325a:	ff d0                	call   *%eax
45325c:	85 c0                	test   %eax,%eax
45325e:	74 03                	je     0x453263
453260:	8b 75 fc             	mov    -0x4(%ebp),%esi
453263:	8b c6                	mov    %esi,%eax
453265:	5e                   	pop    %esi
453266:	5b                   	pop    %ebx
453267:	8b e5                	mov    %ebp,%esp
453269:	5d                   	pop    %ebp
45326a:	c3                   	ret
45326b:	90                   	nop
45326c:	55                   	push   %ebp
45326d:	8b ec                	mov    %esp,%ebp
45326f:	83 c4 f0             	add    $0xfffffff0,%esp
453272:	53                   	push   %ebx
453273:	56                   	push   %esi
453274:	57                   	push   %edi
453275:	89 55 f8             	mov    %edx,-0x8(%ebp)
453278:	89 45 fc             	mov    %eax,-0x4(%ebp)
45327b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45327e:	80 78 1f 00          	cmpb   $0x0,0x1f(%eax)
453282:	0f 84 9e 01 00 00    	je     0x453426
453288:	8b 45 f8             	mov    -0x8(%ebp),%eax
45328b:	66 8b 40 04          	mov    0x4(%eax),%ax
45328f:	66 83 e8 04          	sub    $0x4,%ax
453293:	0f 83 8d 01 00 00    	jae    0x453426
453299:	8b 45 f8             	mov    -0x8(%ebp),%eax
45329c:	66 8b 40 04          	mov    0x4(%eax),%ax
4532a0:	66 83 e8 02          	sub    $0x2,%ax
4532a4:	72 08                	jb     0x4532ae
4532a6:	66 83 e8 02          	sub    $0x2,%ax
4532aa:	72 23                	jb     0x4532cf
4532ac:	eb 47                	jmp    0x4532f5
4532ae:	8b 45 fc             	mov    -0x4(%ebp),%eax
4532b1:	0f b7 58 08          	movzwl 0x8(%eax),%ebx
4532b5:	8b c3                	mov    %ebx,%eax
4532b7:	8b 55 fc             	mov    -0x4(%ebp),%edx
4532ba:	8b 4a 40             	mov    0x40(%edx),%ecx
4532bd:	99                   	cltd
4532be:	f7 f9                	idiv   %ecx
4532c0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4532c3:	8b c3                	mov    %ebx,%eax
4532c5:	99                   	cltd
4532c6:	f7 f9                	idiv   %ecx
4532c8:	89 55 f0             	mov    %edx,-0x10(%ebp)
4532cb:	8b f1                	mov    %ecx,%esi
4532cd:	eb 32                	jmp    0x453301
4532cf:	8b 45 fc             	mov    -0x4(%ebp),%eax
4532d2:	0f b7 40 0a          	movzwl 0xa(%eax),%eax
4532d6:	89 45 f4             	mov    %eax,-0xc(%ebp)
4532d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4532dc:	8b 48 3c             	mov    0x3c(%eax),%ecx
4532df:	8b 45 f4             	mov    -0xc(%ebp),%eax
4532e2:	99                   	cltd
4532e3:	f7 f9                	idiv   %ecx
4532e5:	89 55 f0             	mov    %edx,-0x10(%ebp)
4532e8:	8b 45 f4             	mov    -0xc(%ebp),%eax
4532eb:	99                   	cltd
4532ec:	f7 f9                	idiv   %ecx
4532ee:	89 45 f4             	mov    %eax,-0xc(%ebp)
4532f1:	8b f1                	mov    %ecx,%esi
4532f3:	eb 0c                	jmp    0x453301
4532f5:	33 f6                	xor    %esi,%esi
4532f7:	33 c0                	xor    %eax,%eax
4532f9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4532fc:	33 c0                	xor    %eax,%eax
4532fe:	89 45 f0             	mov    %eax,-0x10(%ebp)
453301:	33 ff                	xor    %edi,%edi
453303:	85 f6                	test   %esi,%esi
453305:	0f 8e 9b 00 00 00    	jle    0x4533a6
45330b:	e8 4c 3d fb ff       	call   0x40705c
453310:	8b d8                	mov    %eax,%ebx
453312:	8b c3                	mov    %ebx,%eax
453314:	2b c7                	sub    %edi,%eax
453316:	8b 55 fc             	mov    -0x4(%ebp),%edx
453319:	8b 52 20             	mov    0x20(%edx),%edx
45331c:	3b c2                	cmp    %edx,%eax
45331e:	7d 08                	jge    0x453328
453320:	2b d0                	sub    %eax,%edx
453322:	52                   	push   %edx
453323:	e8 0c a7 fb ff       	call   0x40da34
453328:	8b fb                	mov    %ebx,%edi
45332a:	8b 45 f8             	mov    -0x8(%ebp),%eax
45332d:	66 8b 40 04          	mov    0x4(%eax),%ax
453331:	66 83 e8 01          	sub    $0x1,%ax
453335:	72 0e                	jb     0x453345
453337:	74 1f                	je     0x453358
453339:	66 ff c8             	dec    %ax
45333c:	74 2d                	je     0x45336b
45333e:	66 ff c8             	dec    %ax
453341:	74 3b                	je     0x45337e
453343:	eb 4a                	jmp    0x45338f
453345:	8b 45 fc             	mov    -0x4(%ebp),%eax
453348:	8b 50 0c             	mov    0xc(%eax),%edx
45334b:	2b 55 f4             	sub    -0xc(%ebp),%edx
45334e:	8b 45 fc             	mov    -0x4(%ebp),%eax
453351:	e8 86 02 00 00       	call   0x4535dc
453356:	eb 37                	jmp    0x45338f
453358:	8b 45 fc             	mov    -0x4(%ebp),%eax
45335b:	8b 50 0c             	mov    0xc(%eax),%edx
45335e:	03 55 f4             	add    -0xc(%ebp),%edx
453361:	8b 45 fc             	mov    -0x4(%ebp),%eax
453364:	e8 73 02 00 00       	call   0x4535dc
453369:	eb 24                	jmp    0x45338f
45336b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45336e:	8b 50 0c             	mov    0xc(%eax),%edx
453371:	2b 55 f4             	sub    -0xc(%ebp),%edx
453374:	8b 45 fc             	mov    -0x4(%ebp),%eax
453377:	e8 60 02 00 00       	call   0x4535dc
45337c:	eb 11                	jmp    0x45338f
45337e:	8b 45 fc             	mov    -0x4(%ebp),%eax
453381:	8b 50 0c             	mov    0xc(%eax),%edx
453384:	03 55 f4             	add    -0xc(%ebp),%edx
453387:	8b 45 fc             	mov    -0x4(%ebp),%eax
45338a:	e8 4d 02 00 00       	call   0x4535dc
45338f:	8b 45 fc             	mov    -0x4(%ebp),%eax
453392:	8b 40 04             	mov    0x4(%eax),%eax
453395:	8b 10                	mov    (%eax),%edx
453397:	ff 92 88 00 00 00    	call   *0x88(%edx)
45339d:	4e                   	dec    %esi
45339e:	85 f6                	test   %esi,%esi
4533a0:	0f 8f 65 ff ff ff    	jg     0x45330b
4533a6:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4533aa:	0f 8e aa 01 00 00    	jle    0x45355a
4533b0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4533b3:	66 8b 40 04          	mov    0x4(%eax),%ax
4533b7:	66 83 e8 01          	sub    $0x1,%ax
4533bb:	72 11                	jb     0x4533ce
4533bd:	74 25                	je     0x4533e4
4533bf:	66 ff c8             	dec    %ax
4533c2:	74 36                	je     0x4533fa
4533c4:	66 ff c8             	dec    %ax
4533c7:	74 47                	je     0x453410
4533c9:	e9 8c 01 00 00       	jmp    0x45355a
4533ce:	8b 45 fc             	mov    -0x4(%ebp),%eax
4533d1:	8b 50 0c             	mov    0xc(%eax),%edx
4533d4:	2b 55 f0             	sub    -0x10(%ebp),%edx
4533d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4533da:	e8 fd 01 00 00       	call   0x4535dc
4533df:	e9 76 01 00 00       	jmp    0x45355a
4533e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4533e7:	8b 50 0c             	mov    0xc(%eax),%edx
4533ea:	03 55 f0             	add    -0x10(%ebp),%edx
4533ed:	8b 45 fc             	mov    -0x4(%ebp),%eax
4533f0:	e8 e7 01 00 00       	call   0x4535dc
4533f5:	e9 60 01 00 00       	jmp    0x45355a
4533fa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4533fd:	8b 50 0c             	mov    0xc(%eax),%edx
453400:	2b 55 f0             	sub    -0x10(%ebp),%edx
453403:	8b 45 fc             	mov    -0x4(%ebp),%eax
453406:	e8 d1 01 00 00       	call   0x4535dc
45340b:	e9 4a 01 00 00       	jmp    0x45355a
453410:	8b 45 fc             	mov    -0x4(%ebp),%eax
453413:	8b 50 0c             	mov    0xc(%eax),%edx
453416:	03 55 f0             	add    -0x10(%ebp),%edx
453419:	8b 45 fc             	mov    -0x4(%ebp),%eax
45341c:	e8 bb 01 00 00       	call   0x4535dc
453421:	e9 34 01 00 00       	jmp    0x45355a
453426:	8b 45 f8             	mov    -0x8(%ebp),%eax
453429:	0f bf 40 04          	movswl 0x4(%eax),%eax
45342d:	83 f8 07             	cmp    $0x7,%eax
453430:	0f 87 24 01 00 00    	ja     0x45355a
453436:	ff 24 85 3d 34 45 00 	jmp    *0x45343d(,%eax,4)
45343d:	5d                   	pop    %ebp
45343e:	34 45                	xor    $0x45,%al
453440:	00 79 34             	add    %bh,0x34(%ecx)
453443:	45                   	inc    %ebp
453444:	00 95 34 45 00 b6    	add    %dl,-0x49ffbacc(%ebp)
45344a:	34 45                	xor    $0x45,%al
45344c:	00 d7                	add    %dl,%bh
45344e:	34 45                	xor    $0x45,%al
453450:	00 07                	add    %al,(%edi)
453452:	35 45 00 40 35       	xor    $0x35400045,%eax
453457:	45                   	inc    %ebp
453458:	00 4c 35 45          	add    %cl,0x45(%ebp,%esi,1)
45345c:	00 8b 45 fc 8b 50    	add    %cl,0x508bfc45(%ebx)
453462:	0c 8b                	or     $0x8b,%al
453464:	45                   	inc    %ebp
453465:	fc                   	cld
453466:	0f b7 40 08          	movzwl 0x8(%eax),%eax
45346a:	2b d0                	sub    %eax,%edx
45346c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45346f:	e8 68 01 00 00       	call   0x4535dc
453474:	e9 e1 00 00 00       	jmp    0x45355a
453479:	8b 45 fc             	mov    -0x4(%ebp),%eax
45347c:	8b 50 0c             	mov    0xc(%eax),%edx
45347f:	8b 45 fc             	mov    -0x4(%ebp),%eax
453482:	0f b7 40 08          	movzwl 0x8(%eax),%eax
453486:	03 d0                	add    %eax,%edx
453488:	8b 45 fc             	mov    -0x4(%ebp),%eax
45348b:	e8 4c 01 00 00       	call   0x4535dc
453490:	e9 c5 00 00 00       	jmp    0x45355a
453495:	33 c9                	xor    %ecx,%ecx
453497:	b2 01                	mov    $0x1,%dl
453499:	8b 45 fc             	mov    -0x4(%ebp),%eax
45349c:	e8 d3 fc ff ff       	call   0x453174
4534a1:	8b 55 fc             	mov    -0x4(%ebp),%edx
4534a4:	8b 52 0c             	mov    0xc(%edx),%edx
4534a7:	2b d0                	sub    %eax,%edx
4534a9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4534ac:	e8 2b 01 00 00       	call   0x4535dc
4534b1:	e9 a4 00 00 00       	jmp    0x45355a
4534b6:	33 c9                	xor    %ecx,%ecx
4534b8:	b2 01                	mov    $0x1,%dl
4534ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
4534bd:	e8 b2 fc ff ff       	call   0x453174
4534c2:	8b d0                	mov    %eax,%edx
4534c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4534c7:	03 50 0c             	add    0xc(%eax),%edx
4534ca:	8b 45 fc             	mov    -0x4(%ebp),%eax
4534cd:	e8 0a 01 00 00       	call   0x4535dc
4534d2:	e9 83 00 00 00       	jmp    0x45355a
4534d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4534da:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
4534e1:	7e 13                	jle    0x4534f6
4534e3:	55                   	push   %ebp
4534e4:	e8 23 fd ff ff       	call   0x45320c
4534e9:	59                   	pop    %ecx
4534ea:	8b d0                	mov    %eax,%edx
4534ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
4534ef:	e8 e8 00 00 00       	call   0x4535dc
4534f4:	eb 64                	jmp    0x45355a
4534f6:	8b 55 f8             	mov    -0x8(%ebp),%edx
4534f9:	0f bf 52 06          	movswl 0x6(%edx),%edx
4534fd:	8b 45 fc             	mov    -0x4(%ebp),%eax
453500:	e8 d7 00 00 00       	call   0x4535dc
453505:	eb 53                	jmp    0x45355a
453507:	8b 45 fc             	mov    -0x4(%ebp),%eax
45350a:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
45350e:	74 4a                	je     0x45355a
453510:	8b 45 fc             	mov    -0x4(%ebp),%eax
453513:	81 78 14 ff 7f 00 00 	cmpl   $0x7fff,0x14(%eax)
45351a:	7e 13                	jle    0x45352f
45351c:	55                   	push   %ebp
45351d:	e8 ea fc ff ff       	call   0x45320c
453522:	59                   	pop    %ecx
453523:	8b d0                	mov    %eax,%edx
453525:	8b 45 fc             	mov    -0x4(%ebp),%eax
453528:	e8 af 00 00 00       	call   0x4535dc
45352d:	eb 2b                	jmp    0x45355a
45352f:	8b 55 f8             	mov    -0x8(%ebp),%edx
453532:	0f bf 52 06          	movswl 0x6(%edx),%edx
453536:	8b 45 fc             	mov    -0x4(%ebp),%eax
453539:	e8 9e 00 00 00       	call   0x4535dc
45353e:	eb 1a                	jmp    0x45355a
453540:	33 d2                	xor    %edx,%edx
453542:	8b 45 fc             	mov    -0x4(%ebp),%eax
453545:	e8 92 00 00 00       	call   0x4535dc
45354a:	eb 0e                	jmp    0x45355a
45354c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45354f:	8b 50 14             	mov    0x14(%eax),%edx
453552:	8b 45 fc             	mov    -0x4(%ebp),%eax
453555:	e8 82 00 00 00       	call   0x4535dc
45355a:	5f                   	pop    %edi
45355b:	5e                   	pop    %esi
45355c:	5b                   	pop    %ebx
45355d:	8b e5                	mov    %ebp,%esp
45355f:	5d                   	pop    %ebp
453560:	c3                   	ret
453561:	8d 40 00             	lea    0x0(%eax),%eax
453564:	53                   	push   %ebx
453565:	56                   	push   %esi
453566:	8b d8                	mov    %eax,%ebx
453568:	3b 53 24             	cmp    0x24(%ebx),%edx
45356b:	74 36                	je     0x4535a3
45356d:	8b f2                	mov    %edx,%esi
45356f:	85 f6                	test   %esi,%esi
453571:	75 18                	jne    0x45358b
453573:	33 c0                	xor    %eax,%eax
453575:	8a 43 18             	mov    0x18(%ebx),%al
453578:	8b 04 85 a8 de 48 00 	mov    0x48dea8(,%eax,4),%eax
45357f:	50                   	push   %eax
453580:	a1 fc b0 49 00       	mov    0x49b0fc,%eax