40cfda:	50                   	push   %eax
40cfdb:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
40cfe1:	51                   	push   %ecx
40cfe2:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40cfe9:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40cff0:	80 00 00
40cff3:	ff d7                	call   *%edi
40cff5:	8d 55 b8             	lea    -0x48(%ebp),%edx
40cff8:	52                   	push   %edx
40cff9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40cffc:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d002:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d005:	50                   	push   %eax
40d006:	51                   	push   %ecx
40d007:	6a 03                	push   $0x3
40d009:	ff d3                	call   *%ebx
40d00b:	83 c4 10             	add    $0x10,%esp
40d00e:	66 83 bd 74 ff ff ff 	cmpw   $0x0,-0x8c(%ebp)
40d015:	00
40d016:	74 08                	je     0x40d020
40d018:	6a 74                	push   $0x74
40d01a:	ff 15 2c 11 40 00    	call   *0x40112c
40d020:	6a 01                	push   $0x1
40d022:	6a 01                	push   $0x1
40d024:	8d 55 c8             	lea    -0x38(%ebp),%edx
40d027:	52                   	push   %edx
40d028:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d02b:	50                   	push   %eax
40d02c:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40d02f:	51                   	push   %ecx
40d030:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
40d037:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40d03e:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40d045:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
40d04c:	ff d6                	call   *%esi
40d04e:	8d 55 b8             	lea    -0x48(%ebp),%edx
40d051:	52                   	push   %edx
40d052:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40d058:	50                   	push   %eax
40d059:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40d060:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40d067:	80 00 00
40d06a:	ff d7                	call   *%edi
40d06c:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40d06f:	51                   	push   %ecx
40d070:	8d 55 c8             	lea    -0x38(%ebp),%edx
40d073:	52                   	push   %edx
40d074:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d07a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d07d:	50                   	push   %eax
40d07e:	6a 03                	push   $0x3
40d080:	ff d3                	call   *%ebx
40d082:	83 c4 10             	add    $0x10,%esp
40d085:	66 83 bd 74 ff ff ff 	cmpw   $0x0,-0x8c(%ebp)
40d08c:	00
40d08d:	74 08                	je     0x40d097
40d08f:	6a 47                	push   $0x47
40d091:	ff 15 2c 11 40 00    	call   *0x40112c
40d097:	6a 01                	push   $0x1
40d099:	6a 01                	push   $0x1
40d09b:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40d09e:	51                   	push   %ecx
40d09f:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d0a2:	52                   	push   %edx
40d0a3:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d0a6:	50                   	push   %eax
40d0a7:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
40d0ae:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40d0b5:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40d0bc:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
40d0c3:	ff d6                	call   *%esi
40d0c5:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40d0c8:	51                   	push   %ecx
40d0c9:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
40d0cf:	52                   	push   %edx
40d0d0:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40d0d7:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40d0de:	80 00 00
40d0e1:	ff d7                	call   *%edi
40d0e3:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40d0e6:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d0e9:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d0ef:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d0f2:	50                   	push   %eax
40d0f3:	51                   	push   %ecx
40d0f4:	52                   	push   %edx
40d0f5:	6a 03                	push   $0x3
40d0f7:	ff d3                	call   *%ebx
40d0f9:	83 c4 10             	add    $0x10,%esp
40d0fc:	66 83 bd 74 ff ff ff 	cmpw   $0x0,-0x8c(%ebp)
40d103:	00
40d104:	74 08                	je     0x40d10e
40d106:	6a 63                	push   $0x63
40d108:	ff 15 2c 11 40 00    	call   *0x40112c
40d10e:	6a 01                	push   $0x1
40d110:	6a 01                	push   $0x1
40d112:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d115:	50                   	push   %eax
40d116:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d119:	51                   	push   %ecx
40d11a:	8d 55 b8             	lea    -0x48(%ebp),%edx
40d11d:	52                   	push   %edx
40d11e:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
40d125:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40d12c:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40d133:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
40d13a:	ff d6                	call   *%esi
40d13c:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d13f:	50                   	push   %eax
40d140:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
40d146:	51                   	push   %ecx
40d147:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40d14e:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40d155:	80 00 00
40d158:	ff d7                	call   *%edi
40d15a:	8d 55 b8             	lea    -0x48(%ebp),%edx
40d15d:	52                   	push   %edx
40d15e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d161:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d167:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d16a:	50                   	push   %eax
40d16b:	51                   	push   %ecx
40d16c:	6a 03                	push   $0x3
40d16e:	ff d3                	call   *%ebx
40d170:	83 c4 10             	add    $0x10,%esp
40d173:	66 83 bd 74 ff ff ff 	cmpw   $0x0,-0x8c(%ebp)
40d17a:	00
40d17b:	74 0b                	je     0x40d188
40d17d:	68 81 00 00 00       	push   $0x81
40d182:	ff 15 2c 11 40 00    	call   *0x40112c
40d188:	6a 01                	push   $0x1
40d18a:	6a 01                	push   $0x1
40d18c:	8d 55 c8             	lea    -0x38(%ebp),%edx
40d18f:	52                   	push   %edx
40d190:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d193:	50                   	push   %eax
40d194:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40d197:	51                   	push   %ecx
40d198:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
40d19f:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40d1a6:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40d1ad:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
40d1b4:	ff d6                	call   *%esi
40d1b6:	8d 55 b8             	lea    -0x48(%ebp),%edx
40d1b9:	52                   	push   %edx
40d1ba:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40d1c0:	50                   	push   %eax
40d1c1:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40d1c8:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40d1cf:	80 00 00
40d1d2:	ff d7                	call   *%edi
40d1d4:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40d1d7:	51                   	push   %ecx
40d1d8:	8d 55 c8             	lea    -0x38(%ebp),%edx
40d1db:	52                   	push   %edx
40d1dc:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d1e2:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d1e5:	50                   	push   %eax
40d1e6:	6a 03                	push   $0x3
40d1e8:	ff d3                	call   *%ebx
40d1ea:	83 c4 10             	add    $0x10,%esp
40d1ed:	66 83 bd 74 ff ff ff 	cmpw   $0x0,-0x8c(%ebp)
40d1f4:	00
40d1f5:	74 08                	je     0x40d1ff
40d1f7:	6a 41                	push   $0x41
40d1f9:	ff 15 2c 11 40 00    	call   *0x40112c
40d1ff:	6a 01                	push   $0x1
40d201:	6a 01                	push   $0x1
40d203:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40d206:	51                   	push   %ecx
40d207:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d20a:	52                   	push   %edx
40d20b:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d20e:	50                   	push   %eax
40d20f:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
40d216:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40d21d:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40d224:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
40d22b:	ff d6                	call   *%esi
40d22d:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40d230:	51                   	push   %ecx
40d231:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
40d237:	52                   	push   %edx
40d238:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40d23f:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40d246:	80 00 00
40d249:	ff d7                	call   *%edi
40d24b:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40d24e:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d251:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d257:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d25a:	50                   	push   %eax
40d25b:	51                   	push   %ecx
40d25c:	52                   	push   %edx
40d25d:	6a 03                	push   $0x3
40d25f:	ff d3                	call   *%ebx
40d261:	83 c4 10             	add    $0x10,%esp
40d264:	66 83 bd 74 ff ff ff 	cmpw   $0x0,-0x8c(%ebp)
40d26b:	00
40d26c:	74 08                	je     0x40d276
40d26e:	6a 67                	push   $0x67
40d270:	ff 15 2c 11 40 00    	call   *0x40112c
40d276:	6a 01                	push   $0x1
40d278:	6a 01                	push   $0x1
40d27a:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d27d:	50                   	push   %eax
40d27e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d281:	51                   	push   %ecx
40d282:	8d 55 b8             	lea    -0x48(%ebp),%edx
40d285:	52                   	push   %edx
40d286:	c7 45 d0 04 00 02 80 	movl   $0x80020004,-0x30(%ebp)
40d28d:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40d294:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40d29b:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
40d2a2:	ff d6                	call   *%esi
40d2a4:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d2a7:	50                   	push   %eax
40d2a8:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
40d2ae:	51                   	push   %ecx
40d2af:	c7 45 80 0c 00 00 00 	movl   $0xc,-0x80(%ebp)
40d2b6:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
40d2bd:	80 00 00
40d2c0:	ff d7                	call   *%edi
40d2c2:	8d 55 b8             	lea    -0x48(%ebp),%edx
40d2c5:	52                   	push   %edx
40d2c6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d2c9:	8b f0                	mov    %eax,%esi
40d2cb:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d2ce:	50                   	push   %eax
40d2cf:	51                   	push   %ecx
40d2d0:	6a 03                	push   $0x3
40d2d2:	ff d3                	call   *%ebx
40d2d4:	83 c4 10             	add    $0x10,%esp
40d2d7:	66 85 f6             	test   %si,%si
40d2da:	74 0b                	je     0x40d2e7
40d2dc:	68 b4 00 00 00       	push   $0xb4
40d2e1:	ff 15 2c 11 40 00    	call   *0x40112c
40d2e7:	68 14 d3 40 00       	push   $0x40d314
40d2ec:	eb 1c                	jmp    0x40d30a
40d2ee:	8d 55 a8             	lea    -0x58(%ebp),%edx
40d2f1:	52                   	push   %edx
40d2f2:	8d 45 b8             	lea    -0x48(%ebp),%eax
40d2f5:	50                   	push   %eax
40d2f6:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40d2f9:	51                   	push   %ecx
40d2fa:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d2fd:	52                   	push   %edx
40d2fe:	6a 04                	push   $0x4
40d300:	ff 15 28 10 40 00    	call   *0x401028
40d306:	83 c4 14             	add    $0x14,%esp
40d309:	c3                   	ret
40d30a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40d30d:	ff 15 ac 11 40 00    	call   *0x4011ac
40d313:	c3                   	ret
40d314:	8b 45 18             	mov    0x18(%ebp),%eax
40d317:	66 8b 4d ec          	mov    -0x14(%ebp),%cx
40d31b:	66 89 08             	mov    %cx,(%eax)
40d31e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d321:	5f                   	pop    %edi
40d322:	5e                   	pop    %esi
40d323:	33 c0                	xor    %eax,%eax
40d325:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d32c:	5b                   	pop    %ebx
40d32d:	8b e5                	mov    %ebp,%esp
40d32f:	5d                   	pop    %ebp
40d330:	c2 14 00             	ret    $0x14
40d333:	90                   	nop
40d334:	90                   	nop
40d335:	90                   	nop
40d336:	90                   	nop
40d337:	90                   	nop
40d338:	90                   	nop
40d339:	90                   	nop
40d33a:	90                   	nop
40d33b:	90                   	nop
40d33c:	90                   	nop
40d33d:	90                   	nop
40d33e:	90                   	nop
40d33f:	90                   	nop
40d340:	83 ec 10             	sub    $0x10,%esp
40d343:	53                   	push   %ebx
40d344:	55                   	push   %ebp
40d345:	56                   	push   %esi
40d346:	57                   	push   %edi
40d347:	8b 3d 00 11 40 00    	mov    0x401100,%edi
40d34d:	68 7e 21 00 00       	push   $0x217e
40d352:	8d 44 24 14          	lea    0x14(%esp),%eax
40d356:	50                   	push   %eax
40d357:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
40d35e:	00
40d35f:	ff d7                	call   *%edi
40d361:	8b 1d 60 10 40 00    	mov    0x401060,%ebx
40d367:	50                   	push   %eax
40d368:	ff d3                	call   *%ebx
40d36a:	8b 2d 14 10 40 00    	mov    0x401014,%ebp
40d370:	33 c9                	xor    %ecx,%ecx
40d372:	66 3d ff ff          	cmp    $0xffff,%ax
40d376:	0f 95 c1             	setne  %cl
40d379:	f7 d9                	neg    %ecx
40d37b:	66 8b f1             	mov    %cx,%si
40d37e:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40d382:	ff d5                	call   *%ebp
40d384:	66 85 f6             	test   %si,%si
40d387:	8b 74 24 24          	mov    0x24(%esp),%esi
40d38b:	74 1f                	je     0x40d3ac
40d38d:	8b 16                	mov    (%esi),%edx
40d38f:	56                   	push   %esi
40d390:	ff 92 14 07 00 00    	call   *0x714(%edx)
40d396:	85 c0                	test   %eax,%eax
40d398:	7d 12                	jge    0x40d3ac
40d39a:	68 14 07 00 00       	push   $0x714
40d39f:	68 1c 76 40 00       	push   $0x40761c
40d3a4:	56                   	push   %esi
40d3a5:	50                   	push   %eax
40d3a6:	ff 15 48 10 40 00    	call   *0x401048
40d3ac:	68 d8 3c 00 00       	push   $0x3cd8
40d3b1:	8d 44 24 14          	lea    0x14(%esp),%eax
40d3b5:	50                   	push   %eax
40d3b6:	ff d7                	call   *%edi
40d3b8:	50                   	push   %eax
40d3b9:	ff d3                	call   *%ebx
40d3bb:	33 c9                	xor    %ecx,%ecx
40d3bd:	66 3d ff ff          	cmp    $0xffff,%ax
40d3c1:	0f 95 c1             	setne  %cl
40d3c4:	f7 d9                	neg    %ecx
40d3c6:	66 89 4c 24 24       	mov    %cx,0x24(%esp)
40d3cb:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40d3cf:	ff d5                	call   *%ebp
40d3d1:	66 83 7c 24 24 00    	cmpw   $0x0,0x24(%esp)
40d3d7:	74 1f                	je     0x40d3f8
40d3d9:	8b 16                	mov    (%esi),%edx
40d3db:	56                   	push   %esi
40d3dc:	ff 92 14 07 00 00    	call   *0x714(%edx)
40d3e2:	85 c0                	test   %eax,%eax
40d3e4:	7d 12                	jge    0x40d3f8
40d3e6:	68 14 07 00 00       	push   $0x714
40d3eb:	68 1c 76 40 00       	push   $0x40761c
40d3f0:	56                   	push   %esi
40d3f1:	50                   	push   %eax
40d3f2:	ff 15 48 10 40 00    	call   *0x401048
40d3f8:	68 2c 4b 00 00       	push   $0x4b2c
40d3fd:	8d 44 24 14          	lea    0x14(%esp),%eax
40d401:	50                   	push   %eax
40d402:	ff d7                	call   *%edi
40d404:	50                   	push   %eax
40d405:	ff d3                	call   *%ebx
40d407:	33 c9                	xor    %ecx,%ecx
40d409:	66 3d ff ff          	cmp    $0xffff,%ax
40d40d:	0f 95 c1             	setne  %cl
40d410:	f7 d9                	neg    %ecx