40823b:	8b 44 24 4c          	mov    0x4c(%esp),%eax
40823f:	50                   	push   %eax
408240:	8b 44 24 4c          	mov    0x4c(%esp),%eax
408244:	50                   	push   %eax
408245:	6a 00                	push   $0x0
408247:	6a 00                	push   $0x0
408249:	56                   	push   %esi
40824a:	e8 59 c6 ff ff       	call   0x4048a8
40824f:	56                   	push   %esi
408250:	8b 43 1c             	mov    0x1c(%ebx),%eax
408253:	50                   	push   %eax
408254:	e8 9f c8 ff ff       	call   0x404af8
408259:	8b 44 24 08          	mov    0x8(%esp),%eax
40825d:	50                   	push   %eax
40825e:	55                   	push   %ebp
40825f:	e8 f4 c6 ff ff       	call   0x404958
408264:	50                   	push   %eax
408265:	e8 96 c6 ff ff       	call   0x404900
40826a:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
408270:	50                   	push   %eax
408271:	e8 8a c6 ff ff       	call   0x404900
408276:	55                   	push   %ebp
408277:	e8 7c c6 ff ff       	call   0x4048f8
40827c:	8d 44 24 40          	lea    0x40(%esp),%eax
408280:	50                   	push   %eax
408281:	8b 43 1c             	mov    0x1c(%ebx),%eax
408284:	50                   	push   %eax
408285:	e8 86 c7 ff ff       	call   0x404a10
40828a:	8a 04 24             	mov    (%esp),%al
40828d:	81 c4 80 00 00 00    	add    $0x80,%esp
408293:	5d                   	pop    %ebp
408294:	5f                   	pop    %edi
408295:	5e                   	pop    %esi
408296:	5b                   	pop    %ebx
408297:	c3                   	ret
408298:	03 00                	add    (%eax),%eax
40829a:	00 00                	add    %al,(%eax)
40829c:	00 00                	add    %al,(%eax)
40829e:	00 00                	add    %al,(%eax)
4082a0:	53                   	push   %ebx
4082a1:	56                   	push   %esi
4082a2:	57                   	push   %edi
4082a3:	55                   	push   %ebp
4082a4:	83 c4 b4             	add    $0xffffffb4,%esp
4082a7:	89 0c 24             	mov    %ecx,(%esp)
4082aa:	8b fa                	mov    %edx,%edi
4082ac:	8b f0                	mov    %eax,%esi
4082ae:	8b de                	mov    %esi,%ebx
4082b0:	8b 47 04             	mov    0x4(%edi),%eax
4082b3:	83 e8 0f             	sub    $0xf,%eax
4082b6:	0f 85 f0 00 00 00    	jne    0x4083ac
4082bc:	8b 43 50             	mov    0x50(%ebx),%eax
4082bf:	66 83 b8 b2 00 00 00 	cmpw   $0x0,0xb2(%eax)
4082c6:	00
4082c7:	0f 84 df 00 00 00    	je     0x4083ac
4082cd:	6a 00                	push   $0x0
4082cf:	6a 00                	push   $0x0
4082d1:	6a 00                	push   $0x0
4082d3:	6a 00                	push   $0x0
4082d5:	e8 0e c6 ff ff       	call   0x4048e8
4082da:	8b e8                	mov    %eax,%ebp
4082dc:	89 ab 94 00 00 00    	mov    %ebp,0x94(%ebx)
4082e2:	f6 43 38 40          	testb  $0x40,0x38(%ebx)
4082e6:	0f 95 c0             	setne  %al
4082e9:	f6 d8                	neg    %al
4082eb:	1b c0                	sbb    %eax,%eax
4082ed:	50                   	push   %eax
4082ee:	55                   	push   %ebp
4082ef:	8b 43 1c             	mov    0x1c(%ebx),%eax
4082f2:	50                   	push   %eax
4082f3:	e8 90 c7 ff ff       	call   0x404a88
4082f8:	83 f8 01             	cmp    $0x1,%eax
4082fb:	74 04                	je     0x408301
4082fd:	85 c0                	test   %eax,%eax
4082ff:	75 14                	jne    0x408315
408301:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
408307:	50                   	push   %eax
408308:	e8 f3 c5 ff ff       	call   0x404900
40830d:	33 c0                	xor    %eax,%eax
40830f:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
408315:	8b 83 98 00 00 00    	mov    0x98(%ebx),%eax
40831b:	89 44 24 08          	mov    %eax,0x8(%esp)
40831f:	8b 47 08             	mov    0x8(%edi),%eax
408322:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408328:	85 c0                	test   %eax,%eax
40832a:	75 14                	jne    0x408340
40832c:	8d 44 24 0c          	lea    0xc(%esp),%eax
408330:	50                   	push   %eax
408331:	8b 43 1c             	mov    0x1c(%ebx),%eax
408334:	50                   	push   %eax
408335:	e8 86 c6 ff ff       	call   0x4049c0
40833a:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408340:	8b 6b 50             	mov    0x50(%ebx),%ebp
408343:	8b 8b 98 00 00 00    	mov    0x98(%ebx),%ecx
408349:	8b d6                	mov    %esi,%edx
40834b:	8b 85 b4 00 00 00    	mov    0xb4(%ebp),%eax
408351:	ff 95 b0 00 00 00    	call   *0xb0(%ebp)
408357:	8b 86 ca 00 00 00    	mov    0xca(%esi),%eax
40835d:	85 c0                	test   %eax,%eax
40835f:	74 07                	je     0x408368
408361:	33 d2                	xor    %edx,%edx
408363:	e8 c0 24 00 00       	call   0x40a828
408368:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40836c:	75 0e                	jne    0x40837c
40836e:	8d 44 24 0c          	lea    0xc(%esp),%eax
408372:	50                   	push   %eax
408373:	8b 43 1c             	mov    0x1c(%ebx),%eax
408376:	50                   	push   %eax
408377:	e8 94 c6 ff ff       	call   0x404a10
40837c:	8b 44 24 08          	mov    0x8(%esp),%eax
408380:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408386:	8b 04 24             	mov    (%esp),%eax
408389:	33 d2                	xor    %edx,%edx
40838b:	89 10                	mov    %edx,(%eax)
40838d:	c6 44 24 04 01       	movb   $0x1,0x4(%esp)
408392:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
408398:	85 c0                	test   %eax,%eax
40839a:	74 06                	je     0x4083a2
40839c:	50                   	push   %eax
40839d:	e8 5e c5 ff ff       	call   0x404900
4083a2:	33 c0                	xor    %eax,%eax
4083a4:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
4083aa:	eb 05                	jmp    0x4083b1
4083ac:	c6 44 24 04 00       	movb   $0x0,0x4(%esp)
4083b1:	8a 44 24 04          	mov    0x4(%esp),%al
4083b5:	83 c4 4c             	add    $0x4c,%esp
4083b8:	5d                   	pop    %ebp
4083b9:	5f                   	pop    %edi
4083ba:	5e                   	pop    %esi
4083bb:	5b                   	pop    %ebx
4083bc:	c3                   	ret
4083bd:	8d 40 00             	lea    0x0(%eax),%eax
4083c0:	55                   	push   %ebp
4083c1:	8b ec                	mov    %esp,%ebp
4083c3:	53                   	push   %ebx
4083c4:	8b d8                	mov    %eax,%ebx
4083c6:	8b c3                	mov    %ebx,%eax
4083c8:	e8 0f 5c 00 00       	call   0x40dfdc
4083cd:	8b 55 08             	mov    0x8(%ebp),%edx
4083d0:	89 90 b0 00 00 00    	mov    %edx,0xb0(%eax)
4083d6:	8b 55 0c             	mov    0xc(%ebp),%edx
4083d9:	89 90 b4 00 00 00    	mov    %edx,0xb4(%eax)
4083df:	ba a0 82 40 00       	mov    $0x4082a0,%edx
4083e4:	8b c3                	mov    %ebx,%eax
4083e6:	e8 4d 16 00 00       	call   0x409a38
4083eb:	5b                   	pop    %ebx
4083ec:	5d                   	pop    %ebp
4083ed:	c2 08 00             	ret    $0x8
4083f0:	53                   	push   %ebx
4083f1:	56                   	push   %esi
4083f2:	8b da                	mov    %edx,%ebx
4083f4:	8b f0                	mov    %eax,%esi
4083f6:	8b c6                	mov    %esi,%eax
4083f8:	e8 07 3d 00 00       	call   0x40c104
4083fd:	3a d8                	cmp    %al,%bl
4083ff:	0f 84 98 00 00 00    	je     0x40849d
408405:	84 db                	test   %bl,%bl
408407:	74 69                	je     0x408472
408409:	f6 46 36 08          	testb  $0x8,0x36(%esi)
40840d:	75 36                	jne    0x408445
40840f:	8b 56 24             	mov    0x24(%esi),%edx
408412:	81 ca 00 00 04 00    	or     $0x40000,%edx
408418:	81 ca 00 00 80 00    	or     $0x800000,%edx
40841e:	81 ca 00 00 40 00    	or     $0x400000,%edx
408424:	81 ca 00 00 c0 00    	or     $0xc00000,%edx
40842a:	81 ca 00 00 02 00    	or     $0x20000,%edx
408430:	81 ca 00 00 01 00    	or     $0x10000,%edx
408436:	81 ca 00 00 08 00    	or     $0x80000,%edx
40843c:	8b c6                	mov    %esi,%eax
40843e:	e8 2d 33 00 00       	call   0x40b770
408443:	eb 58                	jmp    0x40849d
408445:	f6 86 b5 00 00 00 01 	testb  $0x1,0xb5(%esi)
40844c:	74 12                	je     0x408460
40844e:	8b 56 28             	mov    0x28(%esi),%edx
408451:	81 ca 00 02 00 00    	or     $0x200,%edx
408457:	8b c6                	mov    %esi,%eax
408459:	e8 42 33 00 00       	call   0x40b7a0
40845e:	eb 3d                	jmp    0x40849d
408460:	8b 56 24             	mov    0x24(%esi),%edx
408463:	81 ca 00 00 80 00    	or     $0x800000,%edx
408469:	8b c6                	mov    %esi,%eax
40846b:	e8 00 33 00 00       	call   0x40b770
408470:	eb 2b                	jmp    0x40849d
408472:	8b 46 24             	mov    0x24(%esi),%eax
408475:	25 ff ff 30 ff       	and    $0xff30ffff,%eax
40847a:	f6 46 36 08          	testb  $0x8,0x36(%esi)
40847e:	75 05                	jne    0x408485
408480:	0d 00 00 00 80       	or     $0x80000000,%eax
408485:	8b d6                	mov    %esi,%edx
408487:	92                   	xchg   %eax,%edx
408488:	e8 e3 32 00 00       	call   0x40b770
40848d:	8b 56 28             	mov    0x28(%esi),%edx
408490:	81 e2 fe fc fe ff    	and    $0xfffefcfe,%edx
408496:	8b c6                	mov    %esi,%eax
408498:	e8 03 33 00 00       	call   0x40b7a0
40849d:	5e                   	pop    %esi
40849e:	5b                   	pop    %ebx
40849f:	c3                   	ret
4084a0:	53                   	push   %ebx
4084a1:	56                   	push   %esi
4084a2:	57                   	push   %edi
4084a3:	51                   	push   %ecx
4084a4:	8b f9                	mov    %ecx,%edi
4084a6:	8b f2                	mov    %edx,%esi
4084a8:	8b d8                	mov    %eax,%ebx
4084aa:	8b c3                	mov    %ebx,%eax
4084ac:	e8 73 3c 00 00       	call   0x40c124
4084b1:	84 c0                	test   %al,%al
4084b3:	0f 85 a1 00 00 00    	jne    0x40855a
4084b9:	8b 46 04             	mov    0x4(%esi),%eax
4084bc:	83 f8 24             	cmp    $0x24,%eax
4084bf:	75 4b                	jne    0x40850c
4084c1:	8b d6                	mov    %esi,%edx
4084c3:	8b c3                	mov    %ebx,%eax
4084c5:	e8 0a 36 00 00       	call   0x40bad4
4084ca:	89 07                	mov    %eax,(%edi)
4084cc:	8b 83 be 00 00 00    	mov    0xbe(%ebx),%eax
4084d2:	2b 83 b6 00 00 00    	sub    0xb6(%ebx),%eax
4084d8:	8b 93 c2 00 00 00    	mov    0xc2(%ebx),%edx
4084de:	2b 93 ba 00 00 00    	sub    0xba(%ebx),%edx
4084e4:	8b 4e 0c             	mov    0xc(%esi),%ecx
4084e7:	89 0c 24             	mov    %ecx,(%esp)
4084ea:	8b 0c 24             	mov    (%esp),%ecx
4084ed:	89 41 18             	mov    %eax,0x18(%ecx)
4084f0:	8b 04 24             	mov    (%esp),%eax
4084f3:	89 50 1c             	mov    %edx,0x1c(%eax)
4084f6:	8b 04 24             	mov    (%esp),%eax
4084f9:	8b 14 24             	mov    (%esp),%edx
4084fc:	8b 4a 18             	mov    0x18(%edx),%ecx
4084ff:	89 48 20             	mov    %ecx,0x20(%eax)
408502:	8b 4a 1c             	mov    0x1c(%edx),%ecx
408505:	89 48 24             	mov    %ecx,0x24(%eax)
408508:	b0 01                	mov    $0x1,%al
40850a:	eb 50                	jmp    0x40855c
40850c:	3d 84 00 00 00       	cmp    $0x84,%eax
408511:	75 1d                	jne    0x408530
408513:	8b d6                	mov    %esi,%edx
408515:	8b c3                	mov    %ebx,%eax
408517:	e8 b8 35 00 00       	call   0x40bad4
40851c:	89 07                	mov    %eax,(%edi)
40851e:	83 3f 0a             	cmpl   $0xa,(%edi)
408521:	7c 37                	jl     0x40855a
408523:	83 3f 11             	cmpl   $0x11,(%edi)
408526:	7f 32                	jg     0x40855a
408528:	33 c0                	xor    %eax,%eax
40852a:	89 07                	mov    %eax,(%edi)
40852c:	b0 01                	mov    $0x1,%al
40852e:	eb 2c                	jmp    0x40855c
408530:	3d 16 01 00 00       	cmp    $0x116,%eax
408535:	75 23                	jne    0x40855a
408537:	8b c3                	mov    %ebx,%eax
408539:	e8 e6 3b 00 00       	call   0x40c124
40853e:	84 c0                	test   %al,%al
408540:	75 18                	jne    0x40855a
408542:	6a 01                	push   $0x1
408544:	68 00 f0 00 00       	push   $0xf000
408549:	6a 00                	push   $0x0
40854b:	8b 43 1c             	mov    0x1c(%ebx),%eax
40854e:	50                   	push   %eax
40854f:	e8 24 c5 ff ff       	call   0x404a78
408554:	50                   	push   %eax
408555:	e8 a6 c4 ff ff       	call   0x404a00
40855a:	33 c0                	xor    %eax,%eax
40855c:	5a                   	pop    %edx
40855d:	5f                   	pop    %edi
40855e:	5e                   	pop    %esi
40855f:	5b                   	pop    %ebx
408560:	c3                   	ret
408561:	8d 40 00             	lea    0x0(%eax),%eax
408564:	53                   	push   %ebx
408565:	51                   	push   %ecx
408566:	8b d8                	mov    %eax,%ebx
408568:	6a 00                	push   $0x0
40856a:	33 c0                	xor    %eax,%eax
40856c:	8a c2                	mov    %dl,%al
40856e:	50                   	push   %eax
40856f:	68 f1 00 00 00       	push   $0xf1
408574:	53                   	push   %ebx
408575:	e8 c2 3f 00 00       	call   0x40c53c
40857a:	89 1c 24             	mov    %ebx,(%esp)
40857d:	8b 04 24             	mov    (%esp),%eax
408580:	5a                   	pop    %edx
408581:	5b                   	pop    %ebx
408582:	c3                   	ret
408583:	90                   	nop
408584:	c7 40 64 64 de 40 00 	movl   $0x40de64,0x64(%eax)
40858b:	c3                   	ret
40858c:	55                   	push   %ebp
40858d:	8b ec                	mov    %esp,%ebp
40858f:	53                   	push   %ebx
408590:	8b d8                	mov    %eax,%ebx
408592:	8b c3                	mov    %ebx,%eax
408594:	e8 43 5a 00 00       	call   0x40dfdc
408599:	8b 55 08             	mov    0x8(%ebp),%edx
40859c:	89 90 88 00 00 00    	mov    %edx,0x88(%eax)
4085a2:	8b 55 0c             	mov    0xc(%ebp),%edx
4085a5:	89 90 8c 00 00 00    	mov    %edx,0x8c(%eax)
4085ab:	8b c3                	mov    %ebx,%eax
4085ad:	e8 d2 ff ff ff       	call   0x408584
4085b2:	5b                   	pop    %ebx
4085b3:	5d                   	pop    %ebp
4085b4:	c2 08 00             	ret    $0x8
4085b7:	90                   	nop
4085b8:	55                   	push   %ebp
4085b9:	8b ec                	mov    %esp,%ebp
4085bb:	53                   	push   %ebx
4085bc:	8b d8                	mov    %eax,%ebx
4085be:	8b c3                	mov    %ebx,%eax
4085c0:	e8 17 5a 00 00       	call   0x40dfdc
4085c5:	8b 55 08             	mov    0x8(%ebp),%edx
4085c8:	89 90 80 00 00 00    	mov    %edx,0x80(%eax)
4085ce:	8b 55 0c             	mov    0xc(%ebp),%edx
4085d1:	89 90 84 00 00 00    	mov    %edx,0x84(%eax)
4085d7:	8b c3                	mov    %ebx,%eax
4085d9:	e8 a6 ff ff ff       	call   0x408584
4085de:	5b                   	pop    %ebx
4085df:	5d                   	pop    %ebp
4085e0:	c2 08 00             	ret    $0x8
4085e3:	90                   	nop
4085e4:	57                   	push   %edi
4085e5:	50                   	push   %eax
4085e6:	e8 cd cb ff ff       	call   0x4051b8
4085eb:	97                   	xchg   %eax,%edi
4085ec:	58                   	pop    %eax
4085ed:	e8 03 00 00 00       	call   0x4085f5
4085f2:	97                   	xchg   %eax,%edi
4085f3:	5f                   	pop    %edi
4085f4:	c3                   	ret
4085f5:	55                   	push   %ebp
4085f6:	31 ed                	xor    %ebp,%ebp
4085f8:	56                   	push   %esi
4085f9:	53                   	push   %ebx
4085fa:	8b 50 44             	mov    0x44(%eax),%edx
4085fd:	8b 4a 1c             	mov    0x1c(%edx),%ecx
408600:	8b 72 18             	mov    0x18(%edx),%esi
408603:	e3 6c                	jecxz  0x408671
408605:	51                   	push   %ecx
408606:	ad                   	lods   %ds:(%esi),%eax
408607:	50                   	push   %eax
408608:	f6 40 26 01          	testb  $0x1,0x26(%eax)
40860c:	74 48                	je     0x408656
40860e:	8b 50 26             	mov    0x26(%eax),%edx
408611:	08 f2                	or     %dh,%dl
408613:	80 e2 09             	and    $0x9,%dl
408616:	80 fa 01             	cmp    $0x1,%dl
408619:	75 3b                	jne    0x408656
40861b:	e8 20 4e 00 00       	call   0x40d440
408620:	84 c0                	test   %al,%al
408622:	58                   	pop    %eax
408623:	74 49                	je     0x40866e