409fea:	c2 1c 00             	ret    $0x1c
409fed:	cc                   	int3
409fee:	cc                   	int3
409fef:	cc                   	int3
409ff0:	55                   	push   %ebp
409ff1:	8b ec                	mov    %esp,%ebp
409ff3:	83 e4 f8             	and    $0xfffffff8,%esp
409ff6:	83 ec 5c             	sub    $0x5c,%esp
409ff9:	a1 14 40 45 00       	mov    0x454014,%eax
409ffe:	33 c4                	xor    %esp,%eax
40a000:	89 44 24 58          	mov    %eax,0x58(%esp)
40a004:	0f b6 44 24 0d       	movzbl 0xd(%esp),%eax
40a009:	53                   	push   %ebx
40a00a:	56                   	push   %esi
40a00b:	8b 75 14             	mov    0x14(%ebp),%esi
40a00e:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40a012:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40a016:	c7 44 24 0c 2b 00 00 	movl   $0x2b,0xc(%esp)
40a01d:	00
40a01e:	8b 4e 14             	mov    0x14(%esi),%ecx
40a021:	8b d1                	mov    %ecx,%edx
40a023:	f7 c1 20 00 00 00    	test   $0x20,%ecx
40a029:	c6 44 24 14 25       	movb   $0x25,0x14(%esp)
40a02e:	57                   	push   %edi
40a02f:	0f 45 44 24 10       	cmovne 0x10(%esp),%eax
40a034:	f7 c2 20 00 00 00    	test   $0x20,%edx
40a03a:	8b 7d 08             	mov    0x8(%ebp),%edi
40a03d:	8d 54 24 1a          	lea    0x1a(%esp),%edx
40a041:	88 44 24 19          	mov    %al,0x19(%esp)
40a045:	8d 44 24 19          	lea    0x19(%esp),%eax
40a049:	0f 45 c2             	cmovne %edx,%eax
40a04c:	f6 c1 08             	test   $0x8,%cl
40a04f:	74 04                	je     0x40a055
40a051:	c6 00 23             	movb   $0x23,(%eax)
40a054:	40                   	inc    %eax
40a055:	8b d1                	mov    %ecx,%edx
40a057:	c6 00 6c             	movb   $0x6c,(%eax)
40a05a:	81 e2 00 0e 00 00    	and    $0xe00,%edx
40a060:	81 fa 00 04 00 00    	cmp    $0x400,%edx
40a066:	75 04                	jne    0x40a06c
40a068:	b1 6f                	mov    $0x6f,%cl
40a06a:	eb 17                	jmp    0x40a083
40a06c:	81 fa 00 08 00 00    	cmp    $0x800,%edx
40a072:	74 04                	je     0x40a078
40a074:	b1 75                	mov    $0x75,%cl
40a076:	eb 0b                	jmp    0x40a083
40a078:	c0 e1 03             	shl    $0x3,%cl
40a07b:	f6 d1                	not    %cl
40a07d:	80 e1 20             	and    $0x20,%cl
40a080:	80 c9 58             	or     $0x58,%cl
40a083:	ff 75 1c             	push   0x1c(%ebp)
40a086:	88 48 01             	mov    %cl,0x1(%eax)
40a089:	c6 40 02 00          	movb   $0x0,0x2(%eax)
40a08d:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40a091:	50                   	push   %eax
40a092:	8d 44 24 28          	lea    0x28(%esp),%eax
40a096:	6a 40                	push   $0x40
40a098:	50                   	push   %eax
40a099:	e8 e2 9b ff ff       	call   0x403c80
40a09e:	50                   	push   %eax
40a09f:	8d 44 24 34          	lea    0x34(%esp),%eax
40a0a3:	50                   	push   %eax
40a0a4:	ff 75 18             	push   0x18(%ebp)
40a0a7:	56                   	push   %esi
40a0a8:	ff 75 10             	push   0x10(%ebp)
40a0ab:	ff 75 0c             	push   0xc(%ebp)
40a0ae:	57                   	push   %edi
40a0af:	53                   	push   %ebx
40a0b0:	e8 1b 09 00 00       	call   0x40a9d0
40a0b5:	8b 8c 24 94 00 00 00 	mov    0x94(%esp),%ecx
40a0bc:	83 c4 30             	add    $0x30,%esp
40a0bf:	8b c7                	mov    %edi,%eax
40a0c1:	5f                   	pop    %edi
40a0c2:	5e                   	pop    %esi
40a0c3:	5b                   	pop    %ebx
40a0c4:	33 cc                	xor    %esp,%ecx
40a0c6:	e8 05 18 01 00       	call   0x41b8d0
40a0cb:	8b e5                	mov    %ebp,%esp
40a0cd:	5d                   	pop    %ebp
40a0ce:	c2 18 00             	ret    $0x18
40a0d1:	cc                   	int3
40a0d2:	cc                   	int3
40a0d3:	cc                   	int3
40a0d4:	cc                   	int3
40a0d5:	cc                   	int3
40a0d6:	cc                   	int3
40a0d7:	cc                   	int3
40a0d8:	cc                   	int3
40a0d9:	cc                   	int3
40a0da:	cc                   	int3
40a0db:	cc                   	int3
40a0dc:	cc                   	int3
40a0dd:	cc                   	int3
40a0de:	cc                   	int3
40a0df:	cc                   	int3
40a0e0:	55                   	push   %ebp
40a0e1:	8b ec                	mov    %esp,%ebp
40a0e3:	83 e4 f8             	and    $0xfffffff8,%esp
40a0e6:	83 ec 5c             	sub    $0x5c,%esp
40a0e9:	a1 14 40 45 00       	mov    0x454014,%eax
40a0ee:	33 c4                	xor    %esp,%eax
40a0f0:	89 44 24 58          	mov    %eax,0x58(%esp)
40a0f4:	0f b6 44 24 0d       	movzbl 0xd(%esp),%eax
40a0f9:	53                   	push   %ebx
40a0fa:	56                   	push   %esi
40a0fb:	8b 75 14             	mov    0x14(%ebp),%esi
40a0fe:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40a102:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40a106:	c7 44 24 0c 2b 00 00 	movl   $0x2b,0xc(%esp)
40a10d:	00
40a10e:	8b 4e 14             	mov    0x14(%esi),%ecx
40a111:	8b d1                	mov    %ecx,%edx
40a113:	f7 c1 20 00 00 00    	test   $0x20,%ecx
40a119:	c6 44 24 14 25       	movb   $0x25,0x14(%esp)
40a11e:	57                   	push   %edi
40a11f:	0f 45 44 24 10       	cmovne 0x10(%esp),%eax
40a124:	f7 c2 20 00 00 00    	test   $0x20,%edx
40a12a:	8b 7d 08             	mov    0x8(%ebp),%edi
40a12d:	8d 54 24 1a          	lea    0x1a(%esp),%edx
40a131:	88 44 24 19          	mov    %al,0x19(%esp)
40a135:	8d 44 24 19          	lea    0x19(%esp),%eax
40a139:	0f 45 c2             	cmovne %edx,%eax
40a13c:	f6 c1 08             	test   $0x8,%cl
40a13f:	74 04                	je     0x40a145
40a141:	c6 00 23             	movb   $0x23,(%eax)
40a144:	40                   	inc    %eax
40a145:	8b d1                	mov    %ecx,%edx
40a147:	c6 00 6c             	movb   $0x6c,(%eax)
40a14a:	81 e2 00 0e 00 00    	and    $0xe00,%edx
40a150:	81 fa 00 04 00 00    	cmp    $0x400,%edx
40a156:	75 04                	jne    0x40a15c
40a158:	b1 6f                	mov    $0x6f,%cl
40a15a:	eb 17                	jmp    0x40a173
40a15c:	81 fa 00 08 00 00    	cmp    $0x800,%edx
40a162:	74 04                	je     0x40a168
40a164:	b1 64                	mov    $0x64,%cl
40a166:	eb 0b                	jmp    0x40a173
40a168:	c0 e1 03             	shl    $0x3,%cl
40a16b:	f6 d1                	not    %cl
40a16d:	80 e1 20             	and    $0x20,%cl
40a170:	80 c9 58             	or     $0x58,%cl
40a173:	ff 75 1c             	push   0x1c(%ebp)
40a176:	88 48 01             	mov    %cl,0x1(%eax)
40a179:	c6 40 02 00          	movb   $0x0,0x2(%eax)
40a17d:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40a181:	50                   	push   %eax
40a182:	8d 44 24 28          	lea    0x28(%esp),%eax
40a186:	6a 40                	push   $0x40
40a188:	50                   	push   %eax
40a189:	e8 f2 9a ff ff       	call   0x403c80
40a18e:	50                   	push   %eax
40a18f:	8d 44 24 34          	lea    0x34(%esp),%eax
40a193:	50                   	push   %eax
40a194:	ff 75 18             	push   0x18(%ebp)
40a197:	56                   	push   %esi
40a198:	ff 75 10             	push   0x10(%ebp)
40a19b:	ff 75 0c             	push   0xc(%ebp)
40a19e:	57                   	push   %edi
40a19f:	53                   	push   %ebx
40a1a0:	e8 2b 08 00 00       	call   0x40a9d0
40a1a5:	8b 8c 24 94 00 00 00 	mov    0x94(%esp),%ecx
40a1ac:	83 c4 30             	add    $0x30,%esp
40a1af:	8b c7                	mov    %edi,%eax
40a1b1:	5f                   	pop    %edi
40a1b2:	5e                   	pop    %esi
40a1b3:	5b                   	pop    %ebx
40a1b4:	33 cc                	xor    %esp,%ecx
40a1b6:	e8 15 17 01 00       	call   0x41b8d0
40a1bb:	8b e5                	mov    %ebp,%esp
40a1bd:	5d                   	pop    %ebp
40a1be:	c2 18 00             	ret    $0x18
40a1c1:	cc                   	int3
40a1c2:	cc                   	int3
40a1c3:	cc                   	int3
40a1c4:	cc                   	int3
40a1c5:	cc                   	int3
40a1c6:	cc                   	int3
40a1c7:	cc                   	int3
40a1c8:	cc                   	int3
40a1c9:	cc                   	int3
40a1ca:	cc                   	int3
40a1cb:	cc                   	int3
40a1cc:	cc                   	int3
40a1cd:	cc                   	int3
40a1ce:	cc                   	int3
40a1cf:	cc                   	int3
40a1d0:	55                   	push   %ebp
40a1d1:	8b ec                	mov    %esp,%ebp
40a1d3:	6a ff                	push   $0xffffffff
40a1d5:	68 75 da 43 00       	push   $0x43da75
40a1da:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a1e0:	50                   	push   %eax
40a1e1:	83 ec 4c             	sub    $0x4c,%esp
40a1e4:	a1 14 40 45 00       	mov    0x454014,%eax
40a1e9:	33 c5                	xor    %ebp,%eax
40a1eb:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a1ee:	53                   	push   %ebx
40a1ef:	56                   	push   %esi
40a1f0:	57                   	push   %edi
40a1f1:	50                   	push   %eax
40a1f2:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a1f5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a1fb:	8b c1                	mov    %ecx,%eax
40a1fd:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40a200:	8b 5d 14             	mov    0x14(%ebp),%ebx
40a203:	0f b7 4d 18          	movzwl 0x18(%ebp),%ecx
40a207:	8b 7d 08             	mov    0x8(%ebp),%edi
40a20a:	89 7d c0             	mov    %edi,-0x40(%ebp)
40a20d:	f7 43 14 00 40 00 00 	testl  $0x4000,0x14(%ebx)
40a214:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40a217:	75 27                	jne    0x40a240
40a219:	8b 30                	mov    (%eax),%esi
40a21b:	0f b6 45 1c          	movzbl 0x1c(%ebp),%eax
40a21f:	50                   	push   %eax
40a220:	51                   	push   %ecx
40a221:	8b 76 24             	mov    0x24(%esi),%esi
40a224:	8b ce                	mov    %esi,%ecx
40a226:	53                   	push   %ebx
40a227:	ff 75 10             	push   0x10(%ebp)
40a22a:	ff 75 0c             	push   0xc(%ebp)
40a22d:	57                   	push   %edi
40a22e:	ff 15 3c f2 43 00    	call   *0x43f23c
40a234:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40a237:	ff d6                	call   *%esi
40a239:	8b c7                	mov    %edi,%eax
40a23b:	e9 c7 01 00 00       	jmp    0x40a407
40a240:	8b 43 30             	mov    0x30(%ebx),%eax
40a243:	8b 78 04             	mov    0x4(%eax),%edi
40a246:	89 7d c8             	mov    %edi,-0x38(%ebp)
40a249:	8b 07                	mov    (%edi),%eax
40a24b:	8b 70 04             	mov    0x4(%eax),%esi
40a24e:	8b ce                	mov    %esi,%ecx
40a250:	ff 15 3c f2 43 00    	call   *0x43f23c
40a256:	8b cf                	mov    %edi,%ecx
40a258:	ff d6                	call   *%esi
40a25a:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40a25d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a264:	50                   	push   %eax
40a265:	e8 16 1f 00 00       	call   0x40c180
40a26a:	8b f8                	mov    %eax,%edi
40a26c:	83 c4 04             	add    $0x4,%esp
40a26f:	8b 45 c8             	mov    -0x38(%ebp),%eax
40a272:	89 7d d0             	mov    %edi,-0x30(%ebp)
40a275:	85 c0                	test   %eax,%eax
40a277:	74 2d                	je     0x40a2a6
40a279:	8b 10                	mov    (%eax),%edx
40a27b:	8b 72 08             	mov    0x8(%edx),%esi
40a27e:	8b ce                	mov    %esi,%ecx
40a280:	ff 15 3c f2 43 00    	call   *0x43f23c
40a286:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40a289:	ff d6                	call   *%esi
40a28b:	8b f8                	mov    %eax,%edi
40a28d:	85 ff                	test   %edi,%edi
40a28f:	74 12                	je     0x40a2a3
40a291:	8b 0f                	mov    (%edi),%ecx
40a293:	6a 01                	push   $0x1
40a295:	8b 31                	mov    (%ecx),%esi
40a297:	8b ce                	mov    %esi,%ecx
40a299:	ff 15 3c f2 43 00    	call   *0x43f23c
40a29f:	8b cf                	mov    %edi,%ecx
40a2a1:	ff d6                	call   *%esi
40a2a3:	8b 7d d0             	mov    -0x30(%ebp),%edi
40a2a6:	33 c0                	xor    %eax,%eax
40a2a8:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40a2af:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40a2b6:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40a2bd:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40a2c1:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40a2c5:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a2c8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40a2cf:	8b 37                	mov    (%edi),%esi
40a2d1:	50                   	push   %eax
40a2d2:	74 4d                	je     0x40a321
40a2d4:	8b 76 1c             	mov    0x1c(%esi),%esi
40a2d7:	8b ce                	mov    %esi,%ecx
40a2d9:	ff 15 3c f2 43 00    	call   *0x43f23c
40a2df:	8b cf                	mov    %edi,%ecx
40a2e1:	ff d6                	call   *%esi
40a2e3:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a2e6:	50                   	push   %eax
40a2e7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a2ea:	e8 01 f2 ff ff       	call   0x4094f0
40a2ef:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40a2f2:	83 f9 08             	cmp    $0x8,%ecx
40a2f5:	72 39                	jb     0x40a330
40a2f7:	8b 55 a8             	mov    -0x58(%ebp),%edx
40a2fa:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a301:	8b c2                	mov    %edx,%eax
40a303:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a309:	72 1b                	jb     0x40a326
40a30b:	8b 50 fc             	mov    -0x4(%eax),%edx
40a30e:	83 c1 23             	add    $0x23,%ecx
40a311:	2b c2                	sub    %edx,%eax
40a313:	83 c0 fc             	add    $0xfffffffc,%eax
40a316:	83 f8 1f             	cmp    $0x1f,%eax
40a319:	0f 87 06 01 00 00    	ja     0x40a425
40a31f:	eb 05                	jmp    0x40a326
40a321:	8b 76 18             	mov    0x18(%esi),%esi
40a324:	eb b1                	jmp    0x40a2d7
40a326:	51                   	push   %ecx
40a327:	52                   	push   %edx
40a328:	e8 e1 15 01 00       	call   0x41b90e
40a32d:	83 c4 08             	add    $0x8,%esp
40a330:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
40a334:	8b 73 20             	mov    0x20(%ebx),%esi
40a337:	8b 7d e8             	mov    -0x18(%ebp),%edi
40a33a:	7c 0e                	jl     0x40a34a
40a33c:	7f 04                	jg     0x40a342
40a33e:	85 f6                	test   %esi,%esi
40a340:	74 08                	je     0x40a34a
40a342:	3b f7                	cmp    %edi,%esi
40a344:	76 04                	jbe    0x40a34a
40a346:	2b f7                	sub    %edi,%esi
40a348:	eb 02                	jmp    0x40a34c
40a34a:	33 f6                	xor    %esi,%esi
40a34c:	8b 43 14             	mov    0x14(%ebx),%eax
40a34f:	25 c0 01 00 00       	and    $0x1c0,%eax
40a354:	83 f8 40             	cmp    $0x40,%eax
40a357:	74 28                	je     0x40a381
40a359:	56                   	push   %esi
40a35a:	ff 75 cc             	push   -0x34(%ebp)
40a35d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40a360:	ff 75 10             	push   0x10(%ebp)
40a363:	ff 75 0c             	push   0xc(%ebp)
40a366:	50                   	push   %eax
40a367:	ff 75 d4             	push   -0x2c(%ebp)
40a36a:	e8 41 05 00 00       	call   0x40a8b0
40a36f:	83 c4 18             	add    $0x18,%esp
40a372:	33 f6                	xor    %esi,%esi
40a374:	8b 08                	mov    (%eax),%ecx
40a376:	8b 50 04             	mov    0x4(%eax),%edx
40a379:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40a37c:	89 55 10             	mov    %edx,0x10(%ebp)
40a37f:	eb 06                	jmp    0x40a387
40a381:	8b 55 10             	mov    0x10(%ebp),%edx
40a384:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a387:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40a38b:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a38e:	57                   	push   %edi
40a38f:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
40a393:	8b 7d d4             	mov    -0x2c(%ebp),%edi
40a396:	50                   	push   %eax
40a397:	52                   	push   %edx
40a398:	51                   	push   %ecx
40a399:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40a39c:	50                   	push   %eax
40a39d:	57                   	push   %edi
40a39e:	e8 8d 05 00 00       	call   0x40a930
40a3a3:	56                   	push   %esi
40a3a4:	ff 75 cc             	push   -0x34(%ebp)