40af97:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40af9a:	8b d6                	mov    %esi,%edx
40af9c:	8b 49 08             	mov    0x8(%ecx),%ecx
40af9f:	e8 65 69 00 00       	call   0x411909
40afa4:	cc                   	int3
40afa5:	6a 03                	push   $0x3
40afa7:	e8 69 2c 00 00       	call   0x40dc15
40afac:	59                   	pop    %ecx
40afad:	83 f8 01             	cmp    $0x1,%eax
40afb0:	74 15                	je     0x40afc7
40afb2:	6a 03                	push   $0x3
40afb4:	e8 5c 2c 00 00       	call   0x40dc15
40afb9:	59                   	pop    %ecx
40afba:	85 c0                	test   %eax,%eax
40afbc:	75 1f                	jne    0x40afdd
40afbe:	83 3d 10 21 42 00 01 	cmpl   $0x1,0x422110
40afc5:	75 16                	jne    0x40afdd
40afc7:	68 fc 00 00 00       	push   $0xfc
40afcc:	e8 31 00 00 00       	call   0x40b002
40afd1:	68 ff 00 00 00       	push   $0xff
40afd6:	e8 27 00 00 00       	call   0x40b002
40afdb:	59                   	pop    %ecx
40afdc:	59                   	pop    %ecx
40afdd:	c3                   	ret
40afde:	55                   	push   %ebp
40afdf:	8b ec                	mov    %esp,%ebp
40afe1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40afe4:	33 c0                	xor    %eax,%eax
40afe6:	3b 0c c5 80 ab 41 00 	cmp    0x41ab80(,%eax,8),%ecx
40afed:	74 0a                	je     0x40aff9
40afef:	40                   	inc    %eax
40aff0:	83 f8 17             	cmp    $0x17,%eax
40aff3:	72 f1                	jb     0x40afe6
40aff5:	33 c0                	xor    %eax,%eax
40aff7:	5d                   	pop    %ebp
40aff8:	c3                   	ret
40aff9:	8b 04 c5 84 ab 41 00 	mov    0x41ab84(,%eax,8),%eax
40b000:	5d                   	pop    %ebp
40b001:	c3                   	ret
40b002:	55                   	push   %ebp
40b003:	8b ec                	mov    %esp,%ebp
40b005:	81 ec fc 01 00 00    	sub    $0x1fc,%esp
40b00b:	a1 90 08 42 00       	mov    0x420890,%eax
40b010:	33 c5                	xor    %ebp,%eax
40b012:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b015:	56                   	push   %esi
40b016:	8b 75 08             	mov    0x8(%ebp),%esi
40b019:	57                   	push   %edi
40b01a:	56                   	push   %esi
40b01b:	e8 be ff ff ff       	call   0x40afde
40b020:	8b f8                	mov    %eax,%edi
40b022:	59                   	pop    %ecx
40b023:	85 ff                	test   %edi,%edi
40b025:	0f 84 79 01 00 00    	je     0x40b1a4
40b02b:	53                   	push   %ebx
40b02c:	6a 03                	push   $0x3
40b02e:	e8 e2 2b 00 00       	call   0x40dc15
40b033:	59                   	pop    %ecx
40b034:	83 f8 01             	cmp    $0x1,%eax
40b037:	0f 84 0f 01 00 00    	je     0x40b14c
40b03d:	6a 03                	push   $0x3
40b03f:	e8 d1 2b 00 00       	call   0x40dc15
40b044:	59                   	pop    %ecx
40b045:	85 c0                	test   %eax,%eax
40b047:	75 0d                	jne    0x40b056
40b049:	83 3d 10 21 42 00 01 	cmpl   $0x1,0x422110
40b050:	0f 84 f6 00 00 00    	je     0x40b14c
40b056:	81 fe fc 00 00 00    	cmp    $0xfc,%esi
40b05c:	0f 84 41 01 00 00    	je     0x40b1a3
40b062:	68 20 b5 41 00       	push   $0x41b520
40b067:	68 14 03 00 00       	push   $0x314
40b06c:	68 18 21 42 00       	push   $0x422118
40b071:	e8 62 4a 00 00       	call   0x40fad8
40b076:	83 c4 0c             	add    $0xc,%esp
40b079:	33 db                	xor    %ebx,%ebx
40b07b:	85 c0                	test   %eax,%eax
40b07d:	0f 85 2f 01 00 00    	jne    0x40b1b2
40b083:	68 04 01 00 00       	push   $0x104
40b088:	68 4a 21 42 00       	push   $0x42214a
40b08d:	53                   	push   %ebx
40b08e:	66 a3 52 23 42 00    	mov    %ax,0x422352
40b094:	ff 15 b4 90 41 00    	call   *0x4190b4
40b09a:	be fb 02 00 00       	mov    $0x2fb,%esi
40b09f:	85 c0                	test   %eax,%eax
40b0a1:	75 1b                	jne    0x40b0be
40b0a3:	68 54 b5 41 00       	push   $0x41b554
40b0a8:	56                   	push   %esi
40b0a9:	68 4a 21 42 00       	push   $0x42214a
40b0ae:	e8 25 4a 00 00       	call   0x40fad8
40b0b3:	83 c4 0c             	add    $0xc,%esp
40b0b6:	85 c0                	test   %eax,%eax
40b0b8:	0f 85 f4 00 00 00    	jne    0x40b1b2
40b0be:	68 4a 21 42 00       	push   $0x42214a
40b0c3:	e8 db db ff ff       	call   0x408ca3
40b0c8:	40                   	inc    %eax
40b0c9:	59                   	pop    %ecx
40b0ca:	83 f8 3c             	cmp    $0x3c,%eax
40b0cd:	76 35                	jbe    0x40b104
40b0cf:	68 4a 21 42 00       	push   $0x42214a
40b0d4:	e8 ca db ff ff       	call   0x408ca3
40b0d9:	8d 0c 45 d4 20 42 00 	lea    0x4220d4(,%eax,2),%ecx
40b0e0:	8b c1                	mov    %ecx,%eax
40b0e2:	2d 4a 21 42 00       	sub    $0x42214a,%eax
40b0e7:	6a 03                	push   $0x3
40b0e9:	d1 f8                	sar    $1,%eax
40b0eb:	68 84 b5 41 00       	push   $0x41b584
40b0f0:	2b f0                	sub    %eax,%esi
40b0f2:	56                   	push   %esi
40b0f3:	51                   	push   %ecx
40b0f4:	e8 c5 68 00 00       	call   0x4119be
40b0f9:	83 c4 14             	add    $0x14,%esp
40b0fc:	85 c0                	test   %eax,%eax
40b0fe:	0f 85 ae 00 00 00    	jne    0x40b1b2
40b104:	68 8c b5 41 00       	push   $0x41b58c
40b109:	68 14 03 00 00       	push   $0x314
40b10e:	be 18 21 42 00       	mov    $0x422118,%esi
40b113:	56                   	push   %esi
40b114:	e8 39 68 00 00       	call   0x411952
40b119:	83 c4 0c             	add    $0xc,%esp
40b11c:	85 c0                	test   %eax,%eax
40b11e:	0f 85 8e 00 00 00    	jne    0x40b1b2
40b124:	57                   	push   %edi
40b125:	68 14 03 00 00       	push   $0x314
40b12a:	56                   	push   %esi
40b12b:	e8 22 68 00 00       	call   0x411952
40b130:	83 c4 0c             	add    $0xc,%esp
40b133:	85 c0                	test   %eax,%eax
40b135:	75 7b                	jne    0x40b1b2
40b137:	68 10 20 01 00       	push   $0x12010
40b13c:	68 98 b5 41 00       	push   $0x41b598
40b141:	56                   	push   %esi
40b142:	e8 35 69 00 00       	call   0x411a7c
40b147:	83 c4 0c             	add    $0xc,%esp
40b14a:	eb 57                	jmp    0x40b1a3
40b14c:	6a f4                	push   $0xfffffff4
40b14e:	ff 15 ac 90 41 00    	call   *0x4190ac
40b154:	8b f0                	mov    %eax,%esi
40b156:	85 f6                	test   %esi,%esi
40b158:	74 49                	je     0x40b1a3
40b15a:	83 fe ff             	cmp    $0xffffffff,%esi
40b15d:	74 44                	je     0x40b1a3
40b15f:	33 db                	xor    %ebx,%ebx
40b161:	8b cb                	mov    %ebx,%ecx
40b163:	8a 04 4f             	mov    (%edi,%ecx,2),%al
40b166:	88 84 0d 08 fe ff ff 	mov    %al,-0x1f8(%ebp,%ecx,1)
40b16d:	66 39 1c 4f          	cmp    %bx,(%edi,%ecx,2)
40b171:	74 09                	je     0x40b17c
40b173:	41                   	inc    %ecx
40b174:	81 f9 f4 01 00 00    	cmp    $0x1f4,%ecx
40b17a:	72 e7                	jb     0x40b163
40b17c:	53                   	push   %ebx
40b17d:	8d 85 04 fe ff ff    	lea    -0x1fc(%ebp),%eax
40b183:	50                   	push   %eax
40b184:	8d 85 08 fe ff ff    	lea    -0x1f8(%ebp),%eax
40b18a:	50                   	push   %eax
40b18b:	88 5d fb             	mov    %bl,-0x5(%ebp)
40b18e:	e8 5d ab ff ff       	call   0x405cf0
40b193:	59                   	pop    %ecx
40b194:	50                   	push   %eax
40b195:	8d 85 08 fe ff ff    	lea    -0x1f8(%ebp),%eax
40b19b:	50                   	push   %eax
40b19c:	56                   	push   %esi
40b19d:	ff 15 b0 90 41 00    	call   *0x4190b0
40b1a3:	5b                   	pop    %ebx
40b1a4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b1a7:	5f                   	pop    %edi
40b1a8:	33 cd                	xor    %ebp,%ecx
40b1aa:	5e                   	pop    %esi
40b1ab:	e8 89 95 ff ff       	call   0x404739
40b1b0:	c9                   	leave
40b1b1:	c3                   	ret
40b1b2:	53                   	push   %ebx
40b1b3:	53                   	push   %ebx
40b1b4:	53                   	push   %ebx
40b1b5:	53                   	push   %ebx
40b1b6:	53                   	push   %ebx
40b1b7:	e8 49 04 00 00       	call   0x40b605
40b1bc:	cc                   	int3
40b1bd:	55                   	push   %ebp
40b1be:	8b ec                	mov    %esp,%ebp
40b1c0:	81 ec 94 00 00 00    	sub    $0x94,%esp
40b1c6:	a1 90 08 42 00       	mov    0x420890,%eax
40b1cb:	33 c5                	xor    %ebp,%eax
40b1cd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b1d0:	8b 45 0c             	mov    0xc(%ebp),%eax
40b1d3:	8b 55 08             	mov    0x8(%ebp),%edx
40b1d6:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b1d9:	53                   	push   %ebx
40b1da:	56                   	push   %esi
40b1db:	57                   	push   %edi
40b1dc:	8b 7d 18             	mov    0x18(%ebp),%edi
40b1df:	89 95 6c ff ff ff    	mov    %edx,-0x94(%ebp)
40b1e5:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
40b1eb:	83 f8 01             	cmp    $0x1,%eax
40b1ee:	0f 85 04 01 00 00    	jne    0x40b2f8
40b1f4:	68 80 00 00 00       	push   $0x80
40b1f9:	8d 9d 7c ff ff ff    	lea    -0x84(%ebp),%ebx
40b1ff:	8b c3                	mov    %ebx,%eax
40b201:	50                   	push   %eax
40b202:	ff 75 14             	push   0x14(%ebp)
40b205:	33 f6                	xor    %esi,%esi
40b207:	51                   	push   %ecx
40b208:	52                   	push   %edx
40b209:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
40b20f:	e8 c6 6b 00 00       	call   0x411dda
40b214:	83 c4 14             	add    $0x14,%esp
40b217:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
40b21d:	85 c0                	test   %eax,%eax
40b21f:	75 74                	jne    0x40b295
40b221:	ff 15 18 90 41 00    	call   *0x419018
40b227:	83 f8 7a             	cmp    $0x7a,%eax
40b22a:	0f 85 86 00 00 00    	jne    0x40b2b6
40b230:	56                   	push   %esi
40b231:	56                   	push   %esi
40b232:	ff 75 14             	push   0x14(%ebp)
40b235:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40b23b:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40b241:	e8 94 6b 00 00       	call   0x411dda
40b246:	83 c4 14             	add    $0x14,%esp
40b249:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
40b24f:	85 c0                	test   %eax,%eax
40b251:	74 63                	je     0x40b2b6
40b253:	6a 01                	push   $0x1
40b255:	50                   	push   %eax
40b256:	e8 fd d7 ff ff       	call   0x408a58
40b25b:	8b d8                	mov    %eax,%ebx
40b25d:	59                   	pop    %ecx
40b25e:	59                   	pop    %ecx
40b25f:	85 db                	test   %ebx,%ebx
40b261:	74 53                	je     0x40b2b6
40b263:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
40b269:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
40b270:	00 00 00
40b273:	53                   	push   %ebx
40b274:	ff 75 14             	push   0x14(%ebp)
40b277:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40b27d:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40b283:	e8 52 6b 00 00       	call   0x411dda
40b288:	83 c4 14             	add    $0x14,%esp
40b28b:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
40b291:	85 c0                	test   %eax,%eax
40b293:	74 1a                	je     0x40b2af
40b295:	6a 01                	push   $0x1
40b297:	50                   	push   %eax
40b298:	e8 bb d7 ff ff       	call   0x408a58
40b29d:	8b d0                	mov    %eax,%edx
40b29f:	59                   	pop    %ecx
40b2a0:	59                   	pop    %ecx
40b2a1:	89 17                	mov    %edx,(%edi)
40b2a3:	85 d2                	test   %edx,%edx
40b2a5:	75 21                	jne    0x40b2c8
40b2a7:	39 b5 70 ff ff ff    	cmp    %esi,-0x90(%ebp)
40b2ad:	74 07                	je     0x40b2b6
40b2af:	53                   	push   %ebx
40b2b0:	e8 63 9e ff ff       	call   0x405118
40b2b5:	59                   	pop    %ecx
40b2b6:	83 c8 ff             	or     $0xffffffff,%eax
40b2b9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b2bc:	5f                   	pop    %edi
40b2bd:	5e                   	pop    %esi
40b2be:	33 cd                	xor    %ebp,%ecx
40b2c0:	5b                   	pop    %ebx
40b2c1:	e8 73 94 ff ff       	call   0x404739
40b2c6:	c9                   	leave
40b2c7:	c3                   	ret
40b2c8:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
40b2ce:	8d 41 ff             	lea    -0x1(%ecx),%eax
40b2d1:	50                   	push   %eax
40b2d2:	53                   	push   %ebx
40b2d3:	51                   	push   %ecx
40b2d4:	52                   	push   %edx
40b2d5:	e8 84 69 00 00       	call   0x411c5e
40b2da:	83 c4 10             	add    $0x10,%esp
40b2dd:	85 c0                	test   %eax,%eax
40b2df:	0f 85 a4 00 00 00    	jne    0x40b389
40b2e5:	39 b5 70 ff ff ff    	cmp    %esi,-0x90(%ebp)
40b2eb:	74 07                	je     0x40b2f4
40b2ed:	53                   	push   %ebx
40b2ee:	e8 25 9e ff ff       	call   0x405118
40b2f3:	59                   	pop    %ecx
40b2f4:	33 c0                	xor    %eax,%eax
40b2f6:	eb c1                	jmp    0x40b2b9
40b2f8:	83 f8 02             	cmp    $0x2,%eax
40b2fb:	75 4e                	jne    0x40b34b
40b2fd:	33 f6                	xor    %esi,%esi
40b2ff:	56                   	push   %esi
40b300:	56                   	push   %esi
40b301:	ff 75 14             	push   0x14(%ebp)
40b304:	89 37                	mov    %esi,(%edi)
40b306:	51                   	push   %ecx
40b307:	e8 3e 48 00 00       	call   0x40fb4a
40b30c:	8b d8                	mov    %eax,%ebx
40b30e:	83 c4 10             	add    $0x10,%esp
40b311:	85 db                	test   %ebx,%ebx
40b313:	74 27                	je     0x40b33c
40b315:	6a 02                	push   $0x2
40b317:	53                   	push   %ebx
40b318:	e8 3b d7 ff ff       	call   0x408a58
40b31d:	59                   	pop    %ecx
40b31e:	59                   	pop    %ecx
40b31f:	89 07                	mov    %eax,(%edi)
40b321:	85 c0                	test   %eax,%eax
40b323:	74 17                	je     0x40b33c
40b325:	53                   	push   %ebx
40b326:	50                   	push   %eax
40b327:	ff 75 14             	push   0x14(%ebp)
40b32a:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40b330:	e8 15 48 00 00       	call   0x40fb4a
40b335:	83 c4 10             	add    $0x10,%esp
40b338:	85 c0                	test   %eax,%eax
40b33a:	75 b8                	jne    0x40b2f4
40b33c:	ff 37                	push   (%edi)
40b33e:	e8 d5 9d ff ff       	call   0x405118
40b343:	59                   	pop    %ecx
40b344:	89 37                	mov    %esi,(%edi)
40b346:	e9 6b ff ff ff       	jmp    0x40b2b6
40b34b:	85 c0                	test   %eax,%eax
40b34d:	0f 85 63 ff ff ff    	jne    0x40b2b6
40b353:	21 85 78 ff ff ff    	and    %eax,-0x88(%ebp)
40b359:	6a 02                	push   $0x2
40b35b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40b361:	50                   	push   %eax
40b362:	8b 45 14             	mov    0x14(%ebp),%eax
40b365:	0d 00 00 00 20       	or     $0x20000000,%eax
40b36a:	50                   	push   %eax
40b36b:	51                   	push   %ecx
40b36c:	e8 d9 47 00 00       	call   0x40fb4a
40b371:	83 c4 10             	add    $0x10,%esp
40b374:	85 c0                	test   %eax,%eax
40b376:	0f 84 3a ff ff ff    	je     0x40b2b6
40b37c:	8a 85 78 ff ff ff    	mov    -0x88(%ebp),%al
40b382:	88 07                	mov    %al,(%edi)
40b384:	e9 6b ff ff ff       	jmp    0x40b2f4
40b389:	56                   	push   %esi
40b38a:	56                   	push   %esi
40b38b:	56                   	push   %esi
40b38c:	56                   	push   %esi
40b38d:	56                   	push   %esi
40b38e:	e8 72 02 00 00       	call   0x40b605
40b393:	cc                   	int3
40b394:	55                   	push   %ebp
40b395:	8b ec                	mov    %esp,%ebp
40b397:	8b 45 08             	mov    0x8(%ebp),%eax
40b39a:	a3 40 27 42 00       	mov    %eax,0x422740
40b39f:	5d                   	pop    %ebp
40b3a0:	c3                   	ret
40b3a1:	6a 0c                	push   $0xc
40b3a3:	68 d0 e4 41 00       	push   $0x41e4d0
40b3a8:	e8 03 fa ff ff       	call   0x40adb0
40b3ad:	6a 0e                	push   $0xe