40af55:	74 12                	je     0x40af69
40af57:	8b 07                	mov    (%edi),%eax
40af59:	6a 01                	push   $0x1
40af5b:	8b 30                	mov    (%eax),%esi
40af5d:	8b ce                	mov    %esi,%ecx
40af5f:	ff 15 3c f2 43 00    	call   *0x43f23c
40af65:	8b cf                	mov    %edi,%ecx
40af67:	ff d6                	call   *%esi
40af69:	8b 75 98             	mov    -0x68(%ebp),%esi
40af6c:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40af6f:	56                   	push   %esi
40af70:	6a 00                	push   $0x0
40af72:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
40af79:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40af80:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40af87:	e8 c4 0f 00 00       	call   0x40bf50
40af8c:	8b 7d ac             	mov    -0x54(%ebp),%edi
40af8f:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40af92:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40af99:	8b 55 b4             	mov    -0x4c(%ebp),%edx
40af9c:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40afa0:	8b 0f                	mov    (%edi),%ecx
40afa2:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40afa6:	50                   	push   %eax
40afa7:	8d 04 16             	lea    (%esi,%edx,1),%eax
40afaa:	8b 71 2c             	mov    0x2c(%ecx),%esi
40afad:	8b ce                	mov    %esi,%ecx
40afaf:	50                   	push   %eax
40afb0:	52                   	push   %edx
40afb1:	ff 15 3c f2 43 00    	call   *0x43f23c
40afb7:	8b cf                	mov    %edi,%ecx
40afb9:	ff d6                	call   *%esi
40afbb:	8b 55 9c             	mov    -0x64(%ebp),%edx
40afbe:	8b 42 30             	mov    0x30(%edx),%eax
40afc1:	8b 78 04             	mov    0x4(%eax),%edi
40afc4:	89 7d b4             	mov    %edi,-0x4c(%ebp)
40afc7:	8b 07                	mov    (%edi),%eax
40afc9:	8b 70 04             	mov    0x4(%eax),%esi
40afcc:	8b ce                	mov    %esi,%ecx
40afce:	ff 15 3c f2 43 00    	call   *0x43f23c
40afd4:	8b cf                	mov    %edi,%ecx
40afd6:	ff d6                	call   *%esi
40afd8:	8d 45 b0             	lea    -0x50(%ebp),%eax
40afdb:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40afdf:	50                   	push   %eax
40afe0:	e8 9b 11 00 00       	call   0x40c180
40afe5:	8b f8                	mov    %eax,%edi
40afe7:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40afeb:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40afee:	83 c4 04             	add    $0x4,%esp
40aff1:	89 7d ac             	mov    %edi,-0x54(%ebp)
40aff4:	85 c0                	test   %eax,%eax
40aff6:	74 2c                	je     0x40b024
40aff8:	8b 00                	mov    (%eax),%eax
40affa:	8b 70 08             	mov    0x8(%eax),%esi
40affd:	8b ce                	mov    %esi,%ecx
40afff:	ff 15 3c f2 43 00    	call   *0x43f23c
40b005:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
40b008:	ff d6                	call   *%esi
40b00a:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40b00d:	85 c0                	test   %eax,%eax
40b00f:	74 13                	je     0x40b024
40b011:	8b 00                	mov    (%eax),%eax
40b013:	6a 01                	push   $0x1
40b015:	8b 30                	mov    (%eax),%esi
40b017:	8b ce                	mov    %esi,%ecx
40b019:	ff 15 3c f2 43 00    	call   *0x43f23c
40b01f:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
40b022:	ff d6                	call   *%esi
40b024:	8b 07                	mov    (%edi),%eax
40b026:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40b029:	51                   	push   %ecx
40b02a:	8b 70 14             	mov    0x14(%eax),%esi
40b02d:	8b ce                	mov    %esi,%ecx
40b02f:	ff 15 3c f2 43 00    	call   *0x43f23c
40b035:	8b cf                	mov    %edi,%ecx
40b037:	ff d6                	call   *%esi
40b039:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40b03d:	8b 07                	mov    (%edi),%eax
40b03f:	8b 70 10             	mov    0x10(%eax),%esi
40b042:	8b ce                	mov    %esi,%ecx
40b044:	ff 15 3c f2 43 00    	call   *0x43f23c
40b04a:	8b cf                	mov    %edi,%ecx
40b04c:	ff d6                	call   *%esi
40b04e:	8b 7d 98             	mov    -0x68(%ebp),%edi
40b051:	0f b7 f0             	movzwl %ax,%esi
40b054:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40b057:	3b df                	cmp    %edi,%ebx
40b059:	74 2c                	je     0x40b087
40b05b:	8b 45 ac             	mov    -0x54(%ebp),%eax
40b05e:	8b 00                	mov    (%eax),%eax
40b060:	8b 70 0c             	mov    0xc(%eax),%esi
40b063:	8b ce                	mov    %esi,%ecx
40b065:	ff 15 3c f2 43 00    	call   *0x43f23c
40b06b:	8b 4d ac             	mov    -0x54(%ebp),%ecx
40b06e:	ff d6                	call   *%esi
40b070:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40b074:	8b 75 b4             	mov    -0x4c(%ebp),%esi
40b077:	0f b7 c8             	movzwl %ax,%ecx
40b07a:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b07d:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40b081:	3b df                	cmp    %edi,%ebx
40b083:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
40b087:	0f 44 5d a8          	cmove  -0x58(%ebp),%ebx
40b08b:	8d 7d bc             	lea    -0x44(%ebp),%edi
40b08e:	83 7d d0 10          	cmpl   $0x10,-0x30(%ebp)
40b092:	0f 43 7d bc          	cmovae -0x44(%ebp),%edi
40b096:	8a 07                	mov    (%edi),%al
40b098:	3c 7f                	cmp    $0x7f,%al
40b09a:	0f 84 8c 00 00 00    	je     0x40b12c
40b0a0:	8b 55 b8             	mov    -0x48(%ebp),%edx
40b0a3:	84 c0                	test   %al,%al
40b0a5:	0f 8e 84 00 00 00    	jle    0x40b12f
40b0ab:	0f be c8             	movsbl %al,%ecx
40b0ae:	8b c3                	mov    %ebx,%eax
40b0b0:	2b c2                	sub    %edx,%eax
40b0b2:	3b c8                	cmp    %eax,%ecx
40b0b4:	73 79                	jae    0x40b12f
40b0b6:	2b d9                	sub    %ecx,%ebx
40b0b8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b0bb:	3b cb                	cmp    %ebx,%ecx
40b0bd:	0f 82 3d 02 00 00    	jb     0x40b300
40b0c3:	8b 55 e8             	mov    -0x18(%ebp),%edx
40b0c6:	8b c2                	mov    %edx,%eax
40b0c8:	2b c1                	sub    %ecx,%eax
40b0ca:	83 f8 01             	cmp    $0x1,%eax
40b0cd:	72 34                	jb     0x40b103
40b0cf:	8d 41 01             	lea    0x1(%ecx),%eax
40b0d2:	83 fa 08             	cmp    $0x8,%edx
40b0d5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b0d8:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b0db:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40b0df:	2b cb                	sub    %ebx,%ecx
40b0e1:	8d 34 58             	lea    (%eax,%ebx,2),%esi
40b0e4:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
40b0eb:	50                   	push   %eax
40b0ec:	8d 46 02             	lea    0x2(%esi),%eax
40b0ef:	56                   	push   %esi
40b0f0:	50                   	push   %eax
40b0f1:	e8 5a 23 01 00       	call   0x41d450
40b0f6:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40b0f9:	83 c4 0c             	add    $0xc,%esp
40b0fc:	66 89 06             	mov    %ax,(%esi)
40b0ff:	8b f0                	mov    %eax,%esi
40b101:	eb 15                	jmp    0x40b118
40b103:	56                   	push   %esi
40b104:	6a 01                	push   $0x1
40b106:	53                   	push   %ebx
40b107:	c6 45 a8 00          	movb   $0x0,-0x58(%ebp)
40b10b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40b10e:	ff 75 a8             	push   -0x58(%ebp)
40b111:	6a 01                	push   $0x1
40b113:	e8 b8 14 00 00       	call   0x40c5d0
40b118:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
40b11c:	8d 47 01             	lea    0x1(%edi),%eax
40b11f:	0f 4f f8             	cmovg  %eax,%edi
40b122:	8a 07                	mov    (%edi),%al
40b124:	3c 7f                	cmp    $0x7f,%al
40b126:	0f 85 74 ff ff ff    	jne    0x40b0a0
40b12c:	8b 55 b8             	mov    -0x48(%ebp),%edx
40b12f:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
40b132:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40b135:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40b138:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
40b13c:	8b 79 20             	mov    0x20(%ecx),%edi
40b13f:	7c 0e                	jl     0x40b14f
40b141:	7f 04                	jg     0x40b147
40b143:	85 ff                	test   %edi,%edi
40b145:	74 08                	je     0x40b14f
40b147:	3b f8                	cmp    %eax,%edi
40b149:	76 04                	jbe    0x40b14f
40b14b:	2b f8                	sub    %eax,%edi
40b14d:	eb 02                	jmp    0x40b151
40b14f:	33 ff                	xor    %edi,%edi
40b151:	8b 41 14             	mov    0x14(%ecx),%eax
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