40cf3c:	8b bd 34 fe ff ff    	mov    -0x1cc(%ebp),%edi
40cf42:	8b 9d 3c fe ff ff    	mov    -0x1c4(%ebp),%ebx
40cf48:	59                   	pop    %ecx
40cf49:	59                   	pop    %ecx
40cf4a:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40cf50:	85 c0                	test   %eax,%eax
40cf52:	75 0c                	jne    0x40cf60
40cf54:	6a 3b                	push   $0x3b
40cf56:	59                   	pop    %ecx
40cf57:	66 39 0e             	cmp    %cx,(%esi)
40cf5a:	0f 85 8e 00 00 00    	jne    0x40cfee
40cf60:	83 bd 40 fe ff ff 05 	cmpl   $0x5,-0x1c0(%ebp)
40cf67:	7f 62                	jg     0x40cfcb
40cf69:	50                   	push   %eax
40cf6a:	56                   	push   %esi
40cf6b:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40cf71:	68 83 00 00 00       	push   $0x83
40cf76:	50                   	push   %eax
40cf77:	e8 42 4a 00 00       	call   0x4119be
40cf7c:	83 c4 10             	add    $0x10,%esp
40cf7f:	85 c0                	test   %eax,%eax
40cf81:	0f 85 1c 01 00 00    	jne    0x40d0a3
40cf87:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40cf8d:	03 c0                	add    %eax,%eax
40cf8f:	3d 06 01 00 00       	cmp    $0x106,%eax
40cf94:	0f 83 04 01 00 00    	jae    0x40d09e
40cf9a:	33 c9                	xor    %ecx,%ecx
40cf9c:	66 89 8c 05 f4 fe ff 	mov    %cx,-0x10c(%ebp,%eax,1)
40cfa3:	ff
40cfa4:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40cfaa:	50                   	push   %eax
40cfab:	ff b5 40 fe ff ff    	push   -0x1c0(%ebp)
40cfb1:	57                   	push   %edi
40cfb2:	e8 f9 00 00 00       	call   0x40d0b0
40cfb7:	83 c4 0c             	add    $0xc,%esp
40cfba:	85 c0                	test   %eax,%eax
40cfbc:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40cfc2:	74 07                	je     0x40cfcb
40cfc4:	43                   	inc    %ebx
40cfc5:	89 9d 3c fe ff ff    	mov    %ebx,-0x1c4(%ebp)
40cfcb:	8d 34 46             	lea    (%esi,%eax,2),%esi
40cfce:	33 c0                	xor    %eax,%eax
40cfd0:	66 39 06             	cmp    %ax,(%esi)
40cfd3:	74 0c                	je     0x40cfe1
40cfd5:	83 c6 02             	add    $0x2,%esi
40cfd8:	66 39 06             	cmp    %ax,(%esi)
40cfdb:	0f 85 cc fe ff ff    	jne    0x40cead
40cfe1:	85 db                	test   %ebx,%ebx
40cfe3:	0f 85 9f 00 00 00    	jne    0x40d088
40cfe9:	e9 a1 00 00 00       	jmp    0x40d08f
40cfee:	33 c0                	xor    %eax,%eax
40cff0:	e9 9a 00 00 00       	jmp    0x40d08f
40cff5:	50                   	push   %eax
40cff6:	6a 55                	push   $0x55
40cff8:	8d 85 48 fe ff ff    	lea    -0x1b8(%ebp),%eax
40cffe:	50                   	push   %eax
40cfff:	68 83 00 00 00       	push   $0x83
40d004:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d00a:	50                   	push   %eax
40d00b:	56                   	push   %esi
40d00c:	e8 05 f8 ff ff       	call   0x40c816
40d011:	83 c4 18             	add    $0x18,%esp
40d014:	85 c0                	test   %eax,%eax
40d016:	74 77                	je     0x40d08f
40d018:	8d 47 14             	lea    0x14(%edi),%eax
40d01b:	33 f6                	xor    %esi,%esi
40d01d:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40d023:	85 f6                	test   %esi,%esi
40d025:	74 40                	je     0x40d067
40d027:	ff 30                	push   (%eax)
40d029:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d02f:	50                   	push   %eax
40d030:	e8 de 61 00 00       	call   0x413213
40d035:	59                   	pop    %ecx
40d036:	59                   	pop    %ecx
40d037:	85 c0                	test   %eax,%eax
40d039:	74 25                	je     0x40d060
40d03b:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d041:	50                   	push   %eax
40d042:	56                   	push   %esi
40d043:	57                   	push   %edi
40d044:	e8 67 00 00 00       	call   0x40d0b0
40d049:	83 c4 0c             	add    $0xc,%esp
40d04c:	85 c0                	test   %eax,%eax
40d04e:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40d054:	75 10                	jne    0x40d066
40d056:	33 c9                	xor    %ecx,%ecx
40d058:	89 8d 40 fe ff ff    	mov    %ecx,-0x1c0(%ebp)
40d05e:	eb 0d                	jmp    0x40d06d
40d060:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40d066:	43                   	inc    %ebx
40d067:	8b 8d 40 fe ff ff    	mov    -0x1c0(%ebp),%ecx
40d06d:	46                   	inc    %esi
40d06e:	83 c0 10             	add    $0x10,%eax
40d071:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40d077:	83 fe 05             	cmp    $0x5,%esi
40d07a:	7e a7                	jle    0x40d023
40d07c:	85 c9                	test   %ecx,%ecx
40d07e:	75 08                	jne    0x40d088
40d080:	85 db                	test   %ebx,%ebx
40d082:	0f 84 66 ff ff ff    	je     0x40cfee
40d088:	57                   	push   %edi
40d089:	e8 27 fc ff ff       	call   0x40ccb5
40d08e:	59                   	pop    %ecx
40d08f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d092:	5f                   	pop    %edi
40d093:	5e                   	pop    %esi
40d094:	33 cd                	xor    %ebp,%ecx
40d096:	5b                   	pop    %ebx
40d097:	e8 9d 76 ff ff       	call   0x404739
40d09c:	c9                   	leave
40d09d:	c3                   	ret
40d09e:	e8 cd d7 ff ff       	call   0x40a870
40d0a3:	33 c0                	xor    %eax,%eax
40d0a5:	50                   	push   %eax
40d0a6:	50                   	push   %eax
40d0a7:	50                   	push   %eax
40d0a8:	50                   	push   %eax
40d0a9:	50                   	push   %eax
40d0aa:	e8 56 e5 ff ff       	call   0x40b605
40d0af:	cc                   	int3
40d0b0:	55                   	push   %ebp
40d0b1:	8b ec                	mov    %esp,%ebp
40d0b3:	81 ec ec 02 00 00    	sub    $0x2ec,%esp
40d0b9:	a1 90 08 42 00       	mov    0x420890,%eax
40d0be:	33 c5                	xor    %ebp,%eax
40d0c0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d0c3:	53                   	push   %ebx
40d0c4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d0c7:	56                   	push   %esi
40d0c8:	8b 75 10             	mov    0x10(%ebp),%esi
40d0cb:	57                   	push   %edi
40d0cc:	8b 7d 08             	mov    0x8(%ebp),%edi
40d0cf:	89 9d 34 fd ff ff    	mov    %ebx,-0x2cc(%ebp)
40d0d5:	e8 fc f2 ff ff       	call   0x40c3d6
40d0da:	05 c4 02 00 00       	add    $0x2c4,%eax
40d0df:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
40d0e5:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
40d0eb:	50                   	push   %eax
40d0ec:	6a 55                	push   $0x55
40d0ee:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
40d0f4:	50                   	push   %eax
40d0f5:	68 83 00 00 00       	push   $0x83
40d0fa:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d100:	50                   	push   %eax
40d101:	56                   	push   %esi
40d102:	e8 0f f7 ff ff       	call   0x40c816
40d107:	83 c4 18             	add    $0x18,%esp
40d10a:	85 c0                	test   %eax,%eax
40d10c:	75 11                	jne    0x40d11f
40d10e:	33 c0                	xor    %eax,%eax
40d110:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d113:	5f                   	pop    %edi
40d114:	5e                   	pop    %esi
40d115:	33 cd                	xor    %ebp,%ecx
40d117:	5b                   	pop    %ebx
40d118:	e8 1c 76 ff ff       	call   0x404739
40d11d:	c9                   	leave
40d11e:	c3                   	ret
40d11f:	c1 e3 04             	shl    $0x4,%ebx
40d122:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d128:	ff 74 3b 14          	push   0x14(%ebx,%edi,1)
40d12c:	89 9d 1c fd ff ff    	mov    %ebx,-0x2e4(%ebp)
40d132:	50                   	push   %eax
40d133:	e8 db 60 00 00       	call   0x413213
40d138:	59                   	pop    %ecx
40d139:	59                   	pop    %ecx
40d13a:	85 c0                	test   %eax,%eax
40d13c:	75 06                	jne    0x40d144
40d13e:	8b 44 3b 14          	mov    0x14(%ebx,%edi,1),%eax
40d142:	eb cc                	jmp    0x40d110
40d144:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d14a:	50                   	push   %eax
40d14b:	e8 53 bb ff ff       	call   0x408ca3
40d150:	8d 70 01             	lea    0x1(%eax),%esi
40d153:	8d 0c 75 04 00 00 00 	lea    0x4(,%esi,2),%ecx
40d15a:	51                   	push   %ecx
40d15b:	e8 42 b9 ff ff       	call   0x408aa2
40d160:	59                   	pop    %ecx
40d161:	59                   	pop    %ecx
40d162:	89 85 24 fd ff ff    	mov    %eax,-0x2dc(%ebp)
40d168:	85 c0                	test   %eax,%eax
40d16a:	74 a2                	je     0x40d10e
40d16c:	8d 48 04             	lea    0x4(%eax),%ecx
40d16f:	8b 44 3b 14          	mov    0x14(%ebx,%edi,1),%eax
40d173:	89 85 20 fd ff ff    	mov    %eax,-0x2e0(%ebp)
40d179:	8b 85 34 fd ff ff    	mov    -0x2cc(%ebp),%eax
40d17f:	83 c0 28             	add    $0x28,%eax
40d182:	89 8d 30 fd ff ff    	mov    %ecx,-0x2d0(%ebp)
40d188:	8d 04 87             	lea    (%edi,%eax,4),%eax
40d18b:	89 85 3c fd ff ff    	mov    %eax,-0x2c4(%ebp)
40d191:	8b 00                	mov    (%eax),%eax
40d193:	89 85 14 fd ff ff    	mov    %eax,-0x2ec(%ebp)
40d199:	8b 47 04             	mov    0x4(%edi),%eax
40d19c:	89 85 18 fd ff ff    	mov    %eax,-0x2e8(%ebp)
40d1a2:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d1a8:	50                   	push   %eax
40d1a9:	56                   	push   %esi
40d1aa:	51                   	push   %ecx
40d1ab:	e8 28 29 00 00       	call   0x40fad8
40d1b0:	83 c4 0c             	add    $0xc,%esp
40d1b3:	33 f6                	xor    %esi,%esi
40d1b5:	85 c0                	test   %eax,%eax
40d1b7:	0f 85 80 02 00 00    	jne    0x40d43d
40d1bd:	66 83 bd f4 fe ff ff 	cmpw   $0x43,-0x10c(%ebp)
40d1c4:	43
40d1c5:	8b 85 30 fd ff ff    	mov    -0x2d0(%ebp),%eax
40d1cb:	89 44 3b 14          	mov    %eax,0x14(%ebx,%edi,1)
40d1cf:	75 13                	jne    0x40d1e4
40d1d1:	66 39 b5 f6 fe ff ff 	cmp    %si,-0x10a(%ebp)
40d1d8:	75 0a                	jne    0x40d1e4
40d1da:	8b 8d 3c fd ff ff    	mov    -0x2c4(%ebp),%ecx
40d1e0:	89 31                	mov    %esi,(%ecx)
40d1e2:	eb 15                	jmp    0x40d1f9
40d1e4:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
40d1ea:	50                   	push   %eax
40d1eb:	e8 fe f3 ff ff       	call   0x40c5ee
40d1f0:	59                   	pop    %ecx
40d1f1:	8b 8d 3c fd ff ff    	mov    -0x2c4(%ebp),%ecx
40d1f7:	89 01                	mov    %eax,(%ecx)
40d1f9:	8b 95 34 fd ff ff    	mov    -0x2cc(%ebp),%edx
40d1ff:	83 fa 02             	cmp    $0x2,%edx
40d202:	0f 85 75 01 00 00    	jne    0x40d37d
40d208:	8b 85 2c fd ff ff    	mov    -0x2d4(%ebp),%eax
40d20e:	89 47 04             	mov    %eax,0x4(%edi)
40d211:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
40d217:	89 85 38 fd ff ff    	mov    %eax,-0x2c8(%ebp)
40d21d:	8b 48 20             	mov    0x20(%eax),%ecx
40d220:	89 8d 28 fd ff ff    	mov    %ecx,-0x2d8(%ebp)
40d226:	8b 48 24             	mov    0x24(%eax),%ecx
40d229:	89 8d 30 fd ff ff    	mov    %ecx,-0x2d0(%ebp)
40d22f:	8b ce                	mov    %esi,%ecx
40d231:	89 8d 44 fd ff ff    	mov    %ecx,-0x2bc(%ebp)
40d237:	8b 95 38 fd ff ff    	mov    -0x2c8(%ebp),%edx
40d23d:	8b 47 04             	mov    0x4(%edi),%eax
40d240:	3b 02                	cmp    (%edx),%eax
40d242:	8b 95 34 fd ff ff    	mov    -0x2cc(%ebp),%edx
40d248:	0f 84 cd 00 00 00    	je     0x40d31b
40d24e:	8b 8d 38 fd ff ff    	mov    -0x2c8(%ebp),%ecx
40d254:	8b 95 38 fd ff ff    	mov    -0x2c8(%ebp),%edx
40d25a:	8b 01                	mov    (%ecx),%eax
40d25c:	8b 9d 28 fd ff ff    	mov    -0x2d8(%ebp),%ebx
40d262:	8b 49 04             	mov    0x4(%ecx),%ecx
40d265:	83 85 38 fd ff ff 08 	addl   $0x8,-0x2c8(%ebp)
40d26c:	89 1a                	mov    %ebx,(%edx)
40d26e:	8b 9d 30 fd ff ff    	mov    -0x2d0(%ebp),%ebx
40d274:	89 8d 30 fd ff ff    	mov    %ecx,-0x2d0(%ebp)
40d27a:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
40d280:	41                   	inc    %ecx
40d281:	89 5a 04             	mov    %ebx,0x4(%edx)
40d284:	8b 9d 1c fd ff ff    	mov    -0x2e4(%ebp),%ebx
40d28a:	8b 95 34 fd ff ff    	mov    -0x2cc(%ebp),%edx
40d290:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
40d296:	89 8d 44 fd ff ff    	mov    %ecx,-0x2bc(%ebp)
40d29c:	83 f9 05             	cmp    $0x5,%ecx
40d29f:	7c 96                	jl     0x40d237
40d2a1:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
40d2a7:	8b 8d 40 fd ff ff    	mov    -0x2c0(%ebp),%ecx
40d2ad:	83 f8 05             	cmp    $0x5,%eax
40d2b0:	0f 85 bf 00 00 00    	jne    0x40d375
40d2b6:	6a 01                	push   $0x1
40d2b8:	ff 77 04             	push   0x4(%edi)
40d2bb:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d2c1:	50                   	push   %eax
40d2c2:	6a 7f                	push   $0x7f
40d2c4:	68 c0 ba 41 00       	push   $0x41bac0
40d2c9:	6a 01                	push   $0x1
40d2cb:	56                   	push   %esi
40d2cc:	e8 44 21 00 00       	call   0x40f415
40d2d1:	83 c4 1c             	add    $0x1c,%esp
40d2d4:	85 c0                	test   %eax,%eax
40d2d6:	0f 84 85 00 00 00    	je     0x40d361
40d2dc:	8b c6                	mov    %esi,%eax
40d2de:	b9 ff 01 00 00       	mov    $0x1ff,%ecx
40d2e3:	66 21 8c 45 f4 fd ff 	and    %cx,-0x20c(%ebp,%eax,2)
40d2ea:	ff
40d2eb:	40                   	inc    %eax
40d2ec:	83 f8 7f             	cmp    $0x7f,%eax
40d2ef:	72 ed                	jb     0x40d2de
40d2f1:	68 fe 00 00 00       	push   $0xfe
40d2f6:	ff 35 10 10 42 00    	push   0x421010
40d2fc:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d302:	50                   	push   %eax
40d303:	e8 d0 bb ff ff       	call   0x408ed8
40d308:	8b 8d 40 fd ff ff    	mov    -0x2c0(%ebp),%ecx
40d30e:	83 c4 0c             	add    $0xc,%esp
40d311:	f7 d8                	neg    %eax
40d313:	1b c0                	sbb    %eax,%eax
40d315:	40                   	inc    %eax
40d316:	89 41 04             	mov    %eax,0x4(%ecx)
40d319:	eb 4f                	jmp    0x40d36a
40d31b:	85 c9                	test   %ecx,%ecx
40d31d:	74 82                	je     0x40d2a1
40d31f:	8b 8d 40 fd ff ff    	mov    -0x2c0(%ebp),%ecx
40d325:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
40d32b:	8b 9d 28 fd ff ff    	mov    -0x2d8(%ebp),%ebx
40d331:	8b 04 c1             	mov    (%ecx,%eax,8),%eax
40d334:	89 01                	mov    %eax,(%ecx)
40d336:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
40d33c:	8b 44 c1 04          	mov    0x4(%ecx,%eax,8),%eax
40d340:	89 41 04             	mov    %eax,0x4(%ecx)
40d343:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
40d349:	89 1c c1             	mov    %ebx,(%ecx,%eax,8)
40d34c:	8b 9d 30 fd ff ff    	mov    -0x2d0(%ebp),%ebx
40d352:	89 5c c1 04          	mov    %ebx,0x4(%ecx,%eax,8)
40d356:	8b 9d 1c fd ff ff    	mov    -0x2e4(%ebp),%ebx
40d35c:	e9 4c ff ff ff       	jmp    0x40d2ad
40d361:	8b 8d 40 fd ff ff    	mov    -0x2c0(%ebp),%ecx
40d367:	89 71 04             	mov    %esi,0x4(%ecx)
40d36a:	8b 47 04             	mov    0x4(%edi),%eax
40d36d:	8b 95 34 fd ff ff    	mov    -0x2cc(%ebp),%edx
40d373:	89 01                	mov    %eax,(%ecx)
40d375:	8b 41 04             	mov    0x4(%ecx),%eax
40d378:	89 47 70             	mov    %eax,0x70(%edi)
40d37b:	eb 1e                	jmp    0x40d39b
40d37d:	83 fa 01             	cmp    $0x1,%edx
40d380:	75 0b                	jne    0x40d38d
40d382:	8b 85 2c fd ff ff    	mov    -0x2d4(%ebp),%eax
40d388:	89 47 08             	mov    %eax,0x8(%edi)
40d38b:	eb 0e                	jmp    0x40d39b
40d38d:	83 fa 05             	cmp    $0x5,%edx
40d390:	75 09                	jne    0x40d39b
40d392:	8b 85 2c fd ff ff    	mov    -0x2d4(%ebp),%eax
40d398:	89 47 0c             	mov    %eax,0xc(%edi)
40d39b:	6b d2 0c             	imul   $0xc,%edx,%edx
40d39e:	57                   	push   %edi
40d39f:	ff 92 00 ba 41 00    	call   *0x41ba00(%edx)
40d3a5:	85 c0                	test   %eax,%eax
40d3a7:	8b 85 20 fd ff ff    	mov    -0x2e0(%ebp),%eax
40d3ad:	59                   	pop    %ecx
40d3ae:	74 35                	je     0x40d3e5
40d3b0:	89 44 3b 14          	mov    %eax,0x14(%ebx,%edi,1)
40d3b4:	8b 9d 3c fd ff ff    	mov    -0x2c4(%ebp),%ebx
40d3ba:	ff 33                	push   (%ebx)
40d3bc:	e8 57 7d ff ff       	call   0x405118
40d3c1:	8b 85 14 fd ff ff    	mov    -0x2ec(%ebp),%eax
40d3c7:	89 03                	mov    %eax,(%ebx)
40d3c9:	8b 85 24 fd ff ff    	mov    -0x2dc(%ebp),%eax
40d3cf:	50                   	push   %eax
40d3d0:	e8 43 7d ff ff       	call   0x405118
40d3d5:	8b 85 18 fd ff ff    	mov    -0x2e8(%ebp),%eax
40d3db:	59                   	pop    %ecx
40d3dc:	59                   	pop    %ecx
40d3dd:	89 47 04             	mov    %eax,0x4(%edi)
40d3e0:	e9 29 fd ff ff       	jmp    0x40d10e
40d3e5:	3d dc 0d 42 00       	cmp    $0x420ddc,%eax
40d3ea:	74 3c                	je     0x40d428
40d3ec:	ff 74 3b 1c          	push   0x1c(%ebx,%edi,1)
40d3f0:	ff 15 54 90 41 00    	call   *0x419054
40d3f6:	85 c0                	test   %eax,%eax