40b154:	8b 75 1c             	mov    0x1c(%ebp),%esi
40b157:	25 c0 01 00 00       	and    $0x1c0,%eax
40b15c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b15f:	83 f8 40             	cmp    $0x40,%eax
40b162:	0f 84 84 00 00 00    	je     0x40b1ec
40b168:	3d 00 01 00 00       	cmp    $0x100,%eax
40b16d:	74 40                	je     0x40b1af
40b16f:	57                   	push   %edi
40b170:	56                   	push   %esi
40b171:	ff 75 14             	push   0x14(%ebp)
40b174:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b177:	ff 75 10             	push   0x10(%ebp)
40b17a:	50                   	push   %eax
40b17b:	53                   	push   %ebx
40b17c:	e8 2f f7 ff ff       	call   0x40a8b0
40b181:	8b 75 b8             	mov    -0x48(%ebp),%esi
40b184:	33 ff                	xor    %edi,%edi
40b186:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40b18a:	56                   	push   %esi
40b18b:	8b 10                	mov    (%eax),%edx
40b18d:	8b 48 04             	mov    0x4(%eax),%ecx
40b190:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b193:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40b197:	50                   	push   %eax
40b198:	51                   	push   %ecx
40b199:	52                   	push   %edx
40b19a:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b19d:	89 55 10             	mov    %edx,0x10(%ebp)
40b1a0:	50                   	push   %eax
40b1a1:	53                   	push   %ebx
40b1a2:	89 4d 14             	mov    %ecx,0x14(%ebp)
40b1a5:	e8 86 f7 ff ff       	call   0x40a930
40b1aa:	83 c4 30             	add    $0x30,%esp
40b1ad:	eb 60                	jmp    0x40b20f
40b1af:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40b1b3:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b1b6:	52                   	push   %edx
40b1b7:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40b1bb:	50                   	push   %eax
40b1bc:	ff 75 14             	push   0x14(%ebp)
40b1bf:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b1c2:	ff 75 10             	push   0x10(%ebp)
40b1c5:	50                   	push   %eax
40b1c6:	53                   	push   %ebx
40b1c7:	e8 64 f7 ff ff       	call   0x40a930
40b1cc:	57                   	push   %edi
40b1cd:	56                   	push   %esi
40b1ce:	8b 08                	mov    (%eax),%ecx
40b1d0:	8b 40 04             	mov    0x4(%eax),%eax
40b1d3:	50                   	push   %eax
40b1d4:	89 45 14             	mov    %eax,0x14(%ebp)
40b1d7:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b1da:	51                   	push   %ecx
40b1db:	50                   	push   %eax
40b1dc:	53                   	push   %ebx
40b1dd:	89 4d 10             	mov    %ecx,0x10(%ebp)
40b1e0:	e8 cb f6 ff ff       	call   0x40a8b0
40b1e5:	83 c4 30             	add    $0x30,%esp
40b1e8:	33 ff                	xor    %edi,%edi
40b1ea:	eb 20                	jmp    0x40b20c
40b1ec:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40b1f0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b1f3:	52                   	push   %edx
40b1f4:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40b1f8:	50                   	push   %eax
40b1f9:	ff 75 14             	push   0x14(%ebp)
40b1fc:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b1ff:	ff 75 10             	push   0x10(%ebp)
40b202:	50                   	push   %eax
40b203:	53                   	push   %ebx
40b204:	e8 27 f7 ff ff       	call   0x40a930
40b209:	83 c4 18             	add    $0x18,%esp
40b20c:	8b 75 b8             	mov    -0x48(%ebp),%esi
40b20f:	8b 10                	mov    (%eax),%edx
40b211:	8b 48 04             	mov    0x4(%eax),%ecx
40b214:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b217:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40b21b:	89 55 10             	mov    %edx,0x10(%ebp)
40b21e:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40b222:	29 75 b4             	sub    %esi,-0x4c(%ebp)
40b225:	ff 75 b4             	push   -0x4c(%ebp)
40b228:	89 4d 14             	mov    %ecx,0x14(%ebp)
40b22b:	8d 04 70             	lea    (%eax,%esi,2),%eax
40b22e:	50                   	push   %eax
40b22f:	51                   	push   %ecx
40b230:	52                   	push   %edx
40b231:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b234:	50                   	push   %eax
40b235:	53                   	push   %ebx
40b236:	e8 f5 f6 ff ff       	call   0x40a930
40b23b:	8b 55 9c             	mov    -0x64(%ebp),%edx
40b23e:	8b 75 94             	mov    -0x6c(%ebp),%esi
40b241:	57                   	push   %edi
40b242:	8b 08                	mov    (%eax),%ecx
40b244:	8b 40 04             	mov    0x4(%eax),%eax
40b247:	ff 75 1c             	push   0x1c(%ebp)
40b24a:	89 4d 10             	mov    %ecx,0x10(%ebp)
40b24d:	50                   	push   %eax
40b24e:	51                   	push   %ecx
40b24f:	56                   	push   %esi
40b250:	53                   	push   %ebx
40b251:	89 45 14             	mov    %eax,0x14(%ebp)
40b254:	c7 42 20 00 00 00 00 	movl   $0x0,0x20(%edx)
40b25b:	c7 42 24 00 00 00 00 	movl   $0x0,0x24(%edx)
40b262:	e8 49 f6 ff ff       	call   0x40a8b0
40b267:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40b26a:	83 c4 30             	add    $0x30,%esp
40b26d:	83 f9 10             	cmp    $0x10,%ecx
40b270:	72 28                	jb     0x40b29a
40b272:	8b 55 bc             	mov    -0x44(%ebp),%edx
40b275:	41                   	inc    %ecx
40b276:	8b c2                	mov    %edx,%eax
40b278:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b27e:	72 10                	jb     0x40b290
40b280:	8b 50 fc             	mov    -0x4(%eax),%edx
40b283:	83 c1 23             	add    $0x23,%ecx
40b286:	2b c2                	sub    %edx,%eax
40b288:	83 c0 fc             	add    $0xfffffffc,%eax
40b28b:	83 f8 1f             	cmp    $0x1f,%eax
40b28e:	77 75                	ja     0x40b305
40b290:	51                   	push   %ecx
40b291:	52                   	push   %edx
40b292:	e8 77 06 01 00       	call   0x41b90e
40b297:	83 c4 08             	add    $0x8,%esp
40b29a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40b29d:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
40b2a4:	c7 45 d0 0f 00 00 00 	movl   $0xf,-0x30(%ebp)
40b2ab:	c6 45 bc 00          	movb   $0x0,-0x44(%ebp)
40b2af:	83 f9 08             	cmp    $0x8,%ecx
40b2b2:	72 2e                	jb     0x40b2e2
40b2b4:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40b2b7:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40b2be:	8b c2                	mov    %edx,%eax
40b2c0:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b2c6:	72 10                	jb     0x40b2d8
40b2c8:	8b 50 fc             	mov    -0x4(%eax),%edx
40b2cb:	83 c1 23             	add    $0x23,%ecx
40b2ce:	2b c2                	sub    %edx,%eax
40b2d0:	83 c0 fc             	add    $0xfffffffc,%eax
40b2d3:	83 f8 1f             	cmp    $0x1f,%eax
40b2d6:	77 2d                	ja     0x40b305
40b2d8:	51                   	push   %ecx
40b2d9:	52                   	push   %edx
40b2da:	e8 2f 06 01 00       	call   0x41b90e
40b2df:	83 c4 08             	add    $0x8,%esp
40b2e2:	8b c6                	mov    %esi,%eax
40b2e4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b2e7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b2ee:	59                   	pop    %ecx
40b2ef:	5f                   	pop    %edi
40b2f0:	5e                   	pop    %esi
40b2f1:	5b                   	pop    %ebx
40b2f2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40b2f5:	33 cd                	xor    %ebp,%ecx
40b2f7:	e8 d4 05 01 00       	call   0x41b8d0
40b2fc:	8b e5                	mov    %ebp,%esp
40b2fe:	5d                   	pop    %ebp
40b2ff:	c3                   	ret
40b300:	e8 cb 05 00 00       	call   0x40b8d0
40b305:	e8 75 57 01 00       	call   0x420a7f
40b30a:	cc                   	int3
40b30b:	cc                   	int3
40b30c:	cc                   	int3
40b30d:	cc                   	int3
40b30e:	cc                   	int3
40b30f:	cc                   	int3
40b310:	55                   	push   %ebp
40b311:	8b ec                	mov    %esp,%ebp
40b313:	8b 55 14             	mov    0x14(%ebp),%edx
40b316:	56                   	push   %esi
40b317:	8b 75 0c             	mov    0xc(%ebp),%esi
40b31a:	c6 06 25             	movb   $0x25,(%esi)
40b31d:	8d 46 01             	lea    0x1(%esi),%eax
40b320:	f6 c2 20             	test   $0x20,%dl
40b323:	74 04                	je     0x40b329
40b325:	c6 00 2b             	movb   $0x2b,(%eax)
40b328:	40                   	inc    %eax
40b329:	f6 c2 10             	test   $0x10,%dl
40b32c:	74 04                	je     0x40b332
40b32e:	c6 00 23             	movb   $0x23,(%eax)
40b331:	40                   	inc    %eax
40b332:	8a 4d 10             	mov    0x10(%ebp),%cl
40b335:	66 c7 00 2e 2a       	movw   $0x2a2e,(%eax)
40b33a:	83 c0 02             	add    $0x2,%eax
40b33d:	84 c9                	test   %cl,%cl
40b33f:	74 03                	je     0x40b344
40b341:	88 08                	mov    %cl,(%eax)
40b343:	40                   	inc    %eax
40b344:	8b ca                	mov    %edx,%ecx
40b346:	81 e1 00 30 00 00    	and    $0x3000,%ecx
40b34c:	f6 c2 04             	test   $0x4,%dl
40b34f:	74 38                	je     0x40b389
40b351:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
40b357:	74 38                	je     0x40b391
40b359:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
40b35f:	75 0d                	jne    0x40b36e
40b361:	b1 41                	mov    $0x41,%cl
40b363:	88 08                	mov    %cl,(%eax)
40b365:	c6 40 01 00          	movb   $0x0,0x1(%eax)
40b369:	8b c6                	mov    %esi,%eax
40b36b:	5e                   	pop    %esi
40b36c:	5d                   	pop    %ebp
40b36d:	c3                   	ret
40b36e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b374:	0f 95 c1             	setne  %cl
40b377:	8d 0c 4d 45 00 00 00 	lea    0x45(,%ecx,2),%ecx
40b37e:	88 08                	mov    %cl,(%eax)
40b380:	c6 40 01 00          	movb   $0x0,0x1(%eax)
40b384:	8b c6                	mov    %esi,%eax
40b386:	5e                   	pop    %esi
40b387:	5d                   	pop    %ebp
40b388:	c3                   	ret
40b389:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
40b38f:	75 0d                	jne    0x40b39e
40b391:	b1 66                	mov    $0x66,%cl
40b393:	88 08                	mov    %cl,(%eax)
40b395:	c6 40 01 00          	movb   $0x0,0x1(%eax)
40b399:	8b c6                	mov    %esi,%eax
40b39b:	5e                   	pop    %esi
40b39c:	5d                   	pop    %ebp
40b39d:	c3                   	ret
40b39e:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
40b3a4:	75 0d                	jne    0x40b3b3
40b3a6:	b1 61                	mov    $0x61,%cl
40b3a8:	88 08                	mov    %cl,(%eax)
40b3aa:	c6 40 01 00          	movb   $0x0,0x1(%eax)
40b3ae:	8b c6                	mov    %esi,%eax
40b3b0:	5e                   	pop    %esi
40b3b1:	5d                   	pop    %ebp
40b3b2:	c3                   	ret
40b3b3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b3b9:	0f 95 c1             	setne  %cl
40b3bc:	8d 0c 4d 65 00 00 00 	lea    0x65(,%ecx,2),%ecx
40b3c3:	88 08                	mov    %cl,(%eax)
40b3c5:	c6 40 01 00          	movb   $0x0,0x1(%eax)
40b3c9:	8b c6                	mov    %esi,%eax
40b3cb:	5e                   	pop    %esi
40b3cc:	5d                   	pop    %ebp
40b3cd:	c3                   	ret
40b3ce:	cc                   	int3
40b3cf:	cc                   	int3
40b3d0:	55                   	push   %ebp
40b3d1:	8b ec                	mov    %esp,%ebp
40b3d3:	6a ff                	push   $0xffffffff
40b3d5:	68 b0 db 43 00       	push   $0x43dbb0
40b3da:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b3e0:	50                   	push   %eax
40b3e1:	56                   	push   %esi
40b3e2:	57                   	push   %edi
40b3e3:	a1 14 40 45 00       	mov    0x454014,%eax
40b3e8:	33 c5                	xor    %ebp,%eax
40b3ea:	50                   	push   %eax
40b3eb:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b3ee:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40b3f4:	8b 09                	mov    (%ecx),%ecx
40b3f6:	8b 01                	mov    (%ecx),%eax
40b3f8:	8b 40 04             	mov    0x4(%eax),%eax
40b3fb:	8b 7c 08 38          	mov    0x38(%eax,%ecx,1),%edi
40b3ff:	85 ff                	test   %edi,%edi
40b401:	74 11                	je     0x40b414
40b403:	8b 07                	mov    (%edi),%eax
40b405:	8b 70 08             	mov    0x8(%eax),%esi
40b408:	8b ce                	mov    %esi,%ecx
40b40a:	ff 15 3c f2 43 00    	call   *0x43f23c
40b410:	8b cf                	mov    %edi,%ecx
40b412:	ff d6                	call   *%esi
40b414:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b417:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b41e:	59                   	pop    %ecx
40b41f:	5f                   	pop    %edi
40b420:	5e                   	pop    %esi
40b421:	8b e5                	mov    %ebp,%esp
40b423:	5d                   	pop    %ebp
40b424:	c3                   	ret
40b425:	cc                   	int3
40b426:	cc                   	int3
40b427:	cc                   	int3
40b428:	cc                   	int3
40b429:	cc                   	int3
40b42a:	cc                   	int3
40b42b:	cc                   	int3
40b42c:	cc                   	int3
40b42d:	cc                   	int3
40b42e:	cc                   	int3
40b42f:	cc                   	int3
40b430:	55                   	push   %ebp
40b431:	8b ec                	mov    %esp,%ebp
40b433:	6a ff                	push   $0xffffffff
40b435:	68 d0 db 43 00       	push   $0x43dbd0
40b43a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b440:	50                   	push   %eax
40b441:	83 ec 08             	sub    $0x8,%esp
40b444:	53                   	push   %ebx
40b445:	56                   	push   %esi
40b446:	57                   	push   %edi
40b447:	a1 14 40 45 00       	mov    0x454014,%eax
40b44c:	33 c5                	xor    %ebp,%eax
40b44e:	50                   	push   %eax
40b44f:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b452:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40b458:	8b c1                	mov    %ecx,%eax
40b45a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b45d:	6a 08                	push   $0x8
40b45f:	c7 00 50 dd 44 00    	movl   $0x44dd50,(%eax)
40b465:	e8 74 04 01 00       	call   0x41b8de
40b46a:	8b f0                	mov    %eax,%esi
40b46c:	0f 57 c0             	xorps  %xmm0,%xmm0
40b46f:	66 0f d6 06          	movq   %xmm0,(%esi)
40b473:	6a 01                	push   $0x1
40b475:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40b47c:	e8 b3 fd 00 00       	call   0x41b234
40b481:	89 46 04             	mov    %eax,0x4(%esi)
40b484:	83 c4 08             	add    $0x8,%esp
40b487:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b48a:	8d 78 14             	lea    0x14(%eax),%edi
40b48d:	8d 48 18             	lea    0x18(%eax),%ecx
40b490:	8d 50 24             	lea    0x24(%eax),%edx
40b493:	89 70 34             	mov    %esi,0x34(%eax)
40b496:	8d 58 04             	lea    0x4(%eax),%ebx
40b499:	89 58 0c             	mov    %ebx,0xc(%eax)
40b49c:	8d 70 08             	lea    0x8(%eax),%esi
40b49f:	89 70 10             	mov    %esi,0x10(%eax)
40b4a2:	89 78 1c             	mov    %edi,0x1c(%eax)
40b4a5:	89 48 20             	mov    %ecx,0x20(%eax)
40b4a8:	89 50 2c             	mov    %edx,0x2c(%eax)
40b4ab:	83 c0 28             	add    $0x28,%eax
40b4ae:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40b4b1:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40b4b4:	89 43 30             	mov    %eax,0x30(%ebx)
40b4b7:	8b 5d ec             	mov    -0x14(%ebp),%ebx
40b4ba:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40b4c0:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
40b4c6:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40b4cc:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b4cf:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40b4d5:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40b4db:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40b4e1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b4e4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b4eb:	59                   	pop    %ecx
40b4ec:	5f                   	pop    %edi
40b4ed:	5e                   	pop    %esi
40b4ee:	5b                   	pop    %ebx
40b4ef:	8b e5                	mov    %ebp,%esp
40b4f1:	5d                   	pop    %ebp
40b4f2:	c3                   	ret
40b4f3:	cc                   	int3
40b4f4:	cc                   	int3
40b4f5:	cc                   	int3
40b4f6:	cc                   	int3