431150:	8b ec                	mov    %esp,%ebp
431152:	51                   	push   %ecx
431153:	8b 45 10             	mov    0x10(%ebp),%eax
431156:	53                   	push   %ebx
431157:	57                   	push   %edi
431158:	8b 7d 0c             	mov    0xc(%ebp),%edi
43115b:	33 db                	xor    %ebx,%ebx
43115d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
431160:	85 ff                	test   %edi,%edi
431162:	74 26                	je     0x43118a
431164:	85 c0                	test   %eax,%eax
431166:	74 26                	je     0x43118e
431168:	88 1f                	mov    %bl,(%edi)
43116a:	8b 4d 08             	mov    0x8(%ebp),%ecx
43116d:	85 c9                	test   %ecx,%ecx
43116f:	74 02                	je     0x431173
431171:	89 19                	mov    %ebx,(%ecx)
431173:	39 45 18             	cmp    %eax,0x18(%ebp)
431176:	77 03                	ja     0x43117b
431178:	8b 45 18             	mov    0x18(%ebp),%eax
43117b:	56                   	push   %esi
43117c:	8b 75 1c             	mov    0x1c(%ebp),%esi
43117f:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
431184:	76 27                	jbe    0x4311ad
431186:	6a 16                	push   $0x16
431188:	eb 60                	jmp    0x4311ea
43118a:	85 c0                	test   %eax,%eax
43118c:	74 dc                	je     0x43116a
43118e:	8b 45 1c             	mov    0x1c(%ebp),%eax
431191:	6a 16                	push   $0x16
431193:	5f                   	pop    %edi
431194:	50                   	push   %eax
431195:	53                   	push   %ebx
431196:	53                   	push   %ebx
431197:	53                   	push   %ebx
431198:	53                   	push   %ebx
431199:	53                   	push   %ebx
43119a:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
43119e:	89 78 18             	mov    %edi,0x18(%eax)
4311a1:	e8 4c f8 fe ff       	call   0x4209f2
4311a6:	83 c4 18             	add    $0x18,%esp
4311a9:	8b c7                	mov    %edi,%eax
4311ab:	eb 71                	jmp    0x43121e
4311ad:	56                   	push   %esi
4311ae:	50                   	push   %eax
4311af:	ff 75 14             	push   0x14(%ebp)
4311b2:	57                   	push   %edi
4311b3:	e8 6a 00 00 00       	call   0x431222
4311b8:	8b c8                	mov    %eax,%ecx
4311ba:	83 c4 10             	add    $0x10,%esp
4311bd:	83 f9 ff             	cmp    $0xffffffff,%ecx
4311c0:	75 12                	jne    0x4311d4
4311c2:	85 ff                	test   %edi,%edi
4311c4:	74 02                	je     0x4311c8
4311c6:	88 1f                	mov    %bl,(%edi)
4311c8:	38 5e 1c             	cmp    %bl,0x1c(%esi)
4311cb:	74 03                	je     0x4311d0
4311cd:	8b 5e 18             	mov    0x18(%esi),%ebx
4311d0:	8b c3                	mov    %ebx,%eax
4311d2:	eb 49                	jmp    0x43121d
4311d4:	41                   	inc    %ecx
4311d5:	85 ff                	test   %edi,%edi
4311d7:	74 38                	je     0x431211
4311d9:	8b 45 10             	mov    0x10(%ebp),%eax
4311dc:	3b c8                	cmp    %eax,%ecx
4311de:	76 2d                	jbe    0x43120d
4311e0:	83 7d 18 ff          	cmpl   $0xffffffff,0x18(%ebp)
4311e4:	74 1e                	je     0x431204
4311e6:	88 1f                	mov    %bl,(%edi)
4311e8:	6a 22                	push   $0x22
4311ea:	5f                   	pop    %edi
4311eb:	56                   	push   %esi
4311ec:	53                   	push   %ebx
4311ed:	53                   	push   %ebx
4311ee:	53                   	push   %ebx
4311ef:	53                   	push   %ebx
4311f0:	89 7e 18             	mov    %edi,0x18(%esi)
4311f3:	53                   	push   %ebx
4311f4:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
4311f8:	e8 f5 f7 fe ff       	call   0x4209f2
4311fd:	83 c4 18             	add    $0x18,%esp
431200:	8b c7                	mov    %edi,%eax
431202:	eb 19                	jmp    0x43121d
431204:	8b c8                	mov    %eax,%ecx
431206:	c7 45 fc 50 00 00 00 	movl   $0x50,-0x4(%ebp)
43120d:	88 5c 39 ff          	mov    %bl,-0x1(%ecx,%edi,1)
431211:	8b 45 08             	mov    0x8(%ebp),%eax
431214:	85 c0                	test   %eax,%eax
431216:	74 02                	je     0x43121a
431218:	89 08                	mov    %ecx,(%eax)
43121a:	8b 45 fc             	mov    -0x4(%ebp),%eax
43121d:	5e                   	pop    %esi
43121e:	5f                   	pop    %edi
43121f:	5b                   	pop    %ebx
431220:	c9                   	leave
431221:	c3                   	ret
431222:	8b ff                	mov    %edi,%edi
431224:	55                   	push   %ebp
431225:	8b ec                	mov    %esp,%ebp
431227:	83 ec 28             	sub    $0x28,%esp
43122a:	a1 14 40 45 00       	mov    0x454014,%eax
43122f:	33 c5                	xor    %ebp,%eax
431231:	89 45 fc             	mov    %eax,-0x4(%ebp)
431234:	8b 55 08             	mov    0x8(%ebp),%edx
431237:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43123a:	53                   	push   %ebx
43123b:	8b 5d 10             	mov    0x10(%ebp),%ebx
43123e:	56                   	push   %esi
43123f:	33 f6                	xor    %esi,%esi
431241:	89 55 e0             	mov    %edx,-0x20(%ebp)
431244:	89 4d e8             	mov    %ecx,-0x18(%ebp)
431247:	89 75 f0             	mov    %esi,-0x10(%ebp)
43124a:	57                   	push   %edi
43124b:	8b 7d 14             	mov    0x14(%ebp),%edi
43124e:	85 d2                	test   %edx,%edx
431250:	74 0b                	je     0x43125d
431252:	85 db                	test   %ebx,%ebx
431254:	75 07                	jne    0x43125d
431256:	33 c0                	xor    %eax,%eax
431258:	e9 5d 02 00 00       	jmp    0x4314ba
43125d:	85 c9                	test   %ecx,%ecx
43125f:	75 1e                	jne    0x43127f
431261:	57                   	push   %edi
431262:	56                   	push   %esi
431263:	56                   	push   %esi
431264:	56                   	push   %esi
431265:	56                   	push   %esi
431266:	56                   	push   %esi
431267:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
43126b:	c7 47 18 16 00 00 00 	movl   $0x16,0x18(%edi)
431272:	e8 7b f7 fe ff       	call   0x4209f2
431277:	83 c4 18             	add    $0x18,%esp
43127a:	e9 38 02 00 00       	jmp    0x4314b7
43127f:	80 7f 14 00          	cmpb   $0x0,0x14(%edi)
431283:	75 0d                	jne    0x431292
431285:	8b cf                	mov    %edi,%ecx
431287:	e8 14 33 ff ff       	call   0x4245a0
43128c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43128f:	8b 55 e0             	mov    -0x20(%ebp),%edx
431292:	8b 47 0c             	mov    0xc(%edi),%eax
431295:	8b 58 08             	mov    0x8(%eax),%ebx
431298:	81 fb e9 fd 00 00    	cmp    $0xfde9,%ebx
43129e:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4312a1:	8b 5d 10             	mov    0x10(%ebp),%ebx
4312a4:	75 1e                	jne    0x4312c4
4312a6:	57                   	push   %edi
4312a7:	8d 45 d8             	lea    -0x28(%ebp),%eax
4312aa:	89 75 d8             	mov    %esi,-0x28(%ebp)
4312ad:	50                   	push   %eax
4312ae:	53                   	push   %ebx
4312af:	8d 45 e8             	lea    -0x18(%ebp),%eax
4312b2:	89 75 dc             	mov    %esi,-0x24(%ebp)
4312b5:	50                   	push   %eax
4312b6:	52                   	push   %edx
4312b7:	e8 03 95 00 00       	call   0x43a7bf
4312bc:	83 c4 14             	add    $0x14,%esp
4312bf:	e9 f6 01 00 00       	jmp    0x4314ba
4312c4:	8b 98 a8 00 00 00    	mov    0xa8(%eax),%ebx
4312ca:	89 5d dc             	mov    %ebx,-0x24(%ebp)
4312cd:	8b 5d 10             	mov    0x10(%ebp),%ebx
4312d0:	85 d2                	test   %edx,%edx
4312d2:	0f 84 7c 01 00 00    	je     0x431454
4312d8:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
4312de:	75 36                	jne    0x431316
4312e0:	85 db                	test   %ebx,%ebx
4312e2:	74 2b                	je     0x43130f
4312e4:	b8 ff 00 00 00       	mov    $0xff,%eax
4312e9:	66 39 01             	cmp    %ax,(%ecx)
4312ec:	0f 87 ba 01 00 00    	ja     0x4314ac
4312f2:	8a 01                	mov    (%ecx),%al
4312f4:	88 04 32             	mov    %al,(%edx,%esi,1)
4312f7:	66 8b 01             	mov    (%ecx),%ax
4312fa:	83 c1 02             	add    $0x2,%ecx
4312fd:	89 4d e8             	mov    %ecx,-0x18(%ebp)
431300:	66 85 c0             	test   %ax,%ax
431303:	74 0a                	je     0x43130f
431305:	46                   	inc    %esi
431306:	b8 ff 00 00 00       	mov    $0xff,%eax
43130b:	3b f3                	cmp    %ebx,%esi
43130d:	72 da                	jb     0x4312e9
43130f:	8b c6                	mov    %esi,%eax
431311:	e9 a4 01 00 00       	jmp    0x4314ba
431316:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
43131a:	75 56                	jne    0x431372
43131c:	85 db                	test   %ebx,%ebx
43131e:	74 1c                	je     0x43133c
431320:	8b c1                	mov    %ecx,%eax
431322:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
431325:	66 39 30             	cmp    %si,(%eax)
431328:	74 0b                	je     0x431335
43132a:	83 c0 02             	add    $0x2,%eax
43132d:	83 6d e4 01          	subl   $0x1,-0x1c(%ebp)
431331:	75 f2                	jne    0x431325
431333:	eb 07                	jmp    0x43133c
431335:	8b d8                	mov    %eax,%ebx
431337:	2b d9                	sub    %ecx,%ebx
431339:	d1 fb                	sar    $1,%ebx
43133b:	43                   	inc    %ebx
43133c:	8d 45 f0             	lea    -0x10(%ebp),%eax
43133f:	50                   	push   %eax
431340:	56                   	push   %esi
431341:	53                   	push   %ebx
431342:	52                   	push   %edx
431343:	53                   	push   %ebx
431344:	51                   	push   %ecx
431345:	56                   	push   %esi
431346:	ff 75 ec             	push   -0x14(%ebp)
431349:	e8 2c 1d 00 00       	call   0x43307a
43134e:	83 c4 20             	add    $0x20,%esp
431351:	85 c0                	test   %eax,%eax
431353:	0f 84 53 01 00 00    	je     0x4314ac
431359:	39 75 f0             	cmp    %esi,-0x10(%ebp)
43135c:	0f 85 4a 01 00 00    	jne    0x4314ac
431362:	8b 4d e0             	mov    -0x20(%ebp),%ecx
431365:	80 7c 01 ff 00       	cmpb   $0x0,-0x1(%ecx,%eax,1)
43136a:	0f 85 4a 01 00 00    	jne    0x4314ba
431370:	eb 26                	jmp    0x431398
431372:	8d 45 f0             	lea    -0x10(%ebp),%eax
431375:	50                   	push   %eax
431376:	56                   	push   %esi
431377:	53                   	push   %ebx
431378:	52                   	push   %edx
431379:	6a ff                	push   $0xffffffff
43137b:	51                   	push   %ecx
43137c:	56                   	push   %esi
43137d:	ff 75 ec             	push   -0x14(%ebp)
431380:	e8 f5 1c 00 00       	call   0x43307a
431385:	83 c4 20             	add    $0x20,%esp
431388:	89 45 ec             	mov    %eax,-0x14(%ebp)
43138b:	39 75 f0             	cmp    %esi,-0x10(%ebp)
43138e:	0f 85 18 01 00 00    	jne    0x4314ac
431394:	85 c0                	test   %eax,%eax
431396:	74 06                	je     0x43139e
431398:	48                   	dec    %eax
431399:	e9 1c 01 00 00       	jmp    0x4314ba
43139e:	ff 15 60 f0 43 00    	call   *0x43f060
4313a4:	83 f8 7a             	cmp    $0x7a,%eax
4313a7:	0f 85 ff 00 00 00    	jne    0x4314ac
4313ad:	85 db                	test   %ebx,%ebx
4313af:	0f 84 9a 00 00 00    	je     0x43144f
4313b5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4313b8:	8b 57 0c             	mov    0xc(%edi),%edx
4313bb:	8b 4a 04             	mov    0x4(%edx),%ecx
4313be:	83 f9 05             	cmp    $0x5,%ecx
4313c1:	7e 03                	jle    0x4313c6
4313c3:	6a 05                	push   $0x5
4313c5:	59                   	pop    %ecx
4313c6:	8d 5d f0             	lea    -0x10(%ebp),%ebx
4313c9:	53                   	push   %ebx
4313ca:	56                   	push   %esi
4313cb:	51                   	push   %ecx
4313cc:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4313cf:	51                   	push   %ecx
4313d0:	6a 01                	push   $0x1
4313d2:	50                   	push   %eax
4313d3:	56                   	push   %esi
4313d4:	ff 72 08             	push   0x8(%edx)
4313d7:	e8 9e 1c 00 00       	call   0x43307a
4313dc:	8b 5d 10             	mov    0x10(%ebp),%ebx
4313df:	8b d0                	mov    %eax,%edx
4313e1:	83 c4 20             	add    $0x20,%esp
4313e4:	89 55 dc             	mov    %edx,-0x24(%ebp)
4313e7:	85 d2                	test   %edx,%edx
4313e9:	0f 84 bd 00 00 00    	je     0x4314ac
4313ef:	39 75 f0             	cmp    %esi,-0x10(%ebp)
4313f2:	0f 85 b4 00 00 00    	jne    0x4314ac
4313f8:	85 d2                	test   %edx,%edx
4313fa:	0f 88 ac 00 00 00    	js     0x4314ac
431400:	83 fa 05             	cmp    $0x5,%edx
431403:	0f 87 a3 00 00 00    	ja     0x4314ac
431409:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43140c:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
43140f:	3b c3                	cmp    %ebx,%eax
431411:	77 38                	ja     0x43144b
431413:	8b c6                	mov    %esi,%eax
431415:	89 45 e4             	mov    %eax,-0x1c(%ebp)
431418:	85 d2                	test   %edx,%edx
43141a:	7e 1e                	jle    0x43143a
43141c:	8b 55 e0             	mov    -0x20(%ebp),%edx
43141f:	8a 44 05 f4          	mov    -0xc(%ebp,%eax,1),%al
431423:	88 04 0a             	mov    %al,(%edx,%ecx,1)
431426:	84 c0                	test   %al,%al
431428:	74 21                	je     0x43144b
43142a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43142d:	40                   	inc    %eax
43142e:	41                   	inc    %ecx
43142f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
431432:	89 4d ec             	mov    %ecx,-0x14(%ebp)
431435:	3b 45 dc             	cmp    -0x24(%ebp),%eax
431438:	7c e5                	jl     0x43141f
43143a:	8b 45 e8             	mov    -0x18(%ebp),%eax
43143d:	83 c0 02             	add    $0x2,%eax
431440:	89 45 e8             	mov    %eax,-0x18(%ebp)
431443:	3b cb                	cmp    %ebx,%ecx
431445:	0f 82 6d ff ff ff    	jb     0x4313b8
43144b:	8b c1                	mov    %ecx,%eax
43144d:	eb 6b                	jmp    0x4314ba
43144f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
431452:	eb f7                	jmp    0x43144b
431454:	39 75 dc             	cmp    %esi,-0x24(%ebp)
431457:	75 30                	jne    0x431489
431459:	0f b7 01             	movzwl (%ecx),%eax
43145c:	66 85 c0             	test   %ax,%ax
43145f:	0f 84 aa fe ff ff    	je     0x43130f
431465:	8b d0                	mov    %eax,%edx
431467:	b8 ff 00 00 00       	mov    $0xff,%eax
43146c:	66 3b d0             	cmp    %ax,%dx
43146f:	77 3b                	ja     0x4314ac
431471:	83 c1 02             	add    $0x2,%ecx
431474:	46                   	inc    %esi
431475:	0f b7 01             	movzwl (%ecx),%eax
431478:	8b d0                	mov    %eax,%edx
43147a:	66 85 c0             	test   %ax,%ax
43147d:	b8 ff 00 00 00       	mov    $0xff,%eax
431482:	75 e8                	jne    0x43146c
431484:	e9 86 fe ff ff       	jmp    0x43130f
431489:	8d 45 f0             	lea    -0x10(%ebp),%eax
43148c:	50                   	push   %eax
43148d:	56                   	push   %esi
43148e:	56                   	push   %esi
43148f:	56                   	push   %esi
431490:	6a ff                	push   $0xffffffff
431492:	51                   	push   %ecx
431493:	56                   	push   %esi
431494:	ff 75 ec             	push   -0x14(%ebp)
431497:	e8 de 1b 00 00       	call   0x43307a
43149c:	83 c4 20             	add    $0x20,%esp
43149f:	85 c0                	test   %eax,%eax
4314a1:	74 09                	je     0x4314ac
4314a3:	39 75 f0             	cmp    %esi,-0x10(%ebp)
4314a6:	0f 84 ec fe ff ff    	je     0x431398
4314ac:	c7 47 18 2a 00 00 00 	movl   $0x2a,0x18(%edi)
4314b3:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
4314b7:	83 c8 ff             	or     $0xffffffff,%eax
4314ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4314bd:	5f                   	pop    %edi
4314be:	5e                   	pop    %esi
4314bf:	33 cd                	xor    %ebp,%ecx
4314c1:	5b                   	pop    %ebx
4314c2:	e8 09 a4 fe ff       	call   0x41b8d0
4314c7:	c9                   	leave
4314c8:	c3                   	ret
4314c9:	8b ff                	mov    %edi,%edi
4314cb:	55                   	push   %ebp
4314cc:	8b ec                	mov    %esp,%ebp
4314ce:	83 ec 28             	sub    $0x28,%esp
4314d1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4314d4:	56                   	push   %esi
4314d5:	ff 75 1c             	push   0x1c(%ebp)
4314d8:	e8 86 f2 fe ff       	call   0x420763