40ee95:	51                   	push   %ecx
40ee96:	8d 95 20 ff ff ff    	lea    -0xe0(%ebp),%edx
40ee9c:	52                   	push   %edx
40ee9d:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
40eea3:	50                   	push   %eax
40eea4:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40eeaa:	51                   	push   %ecx
40eeab:	6a 04                	push   $0x4
40eead:	ff 15 18 10 40 00    	call   *0x401018
40eeb3:	83 c4 14             	add    $0x14,%esp
40eeb6:	6a 00                	push   $0x0
40eeb8:	6a 03                	push   $0x3
40eeba:	6a 01                	push   $0x1
40eebc:	6a 00                	push   $0x0
40eebe:	8d 95 0c ff ff ff    	lea    -0xf4(%ebp),%edx
40eec4:	52                   	push   %edx
40eec5:	6a 10                	push   $0x10
40eec7:	68 80 08 00 00       	push   $0x880
40eecc:	ff 15 a8 10 40 00    	call   *0x4010a8
40eed2:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
40eed8:	8b 1d 10 10 40 00    	mov    0x401010,%ebx
40eede:	c7 85 04 ff ff ff ff 	movl   $0xffffffff,-0xfc(%ebp)
40eee5:	ff ff ff
40eee8:	bf 0b 00 00 00       	mov    $0xb,%edi
40eeed:	89 bd fc fe ff ff    	mov    %edi,-0x104(%ebp)
40eef3:	8b 48 14             	mov    0x14(%eax),%ecx
40eef6:	c1 e1 04             	shl    $0x4,%ecx
40eef9:	8b f1                	mov    %ecx,%esi
40eefb:	8b 48 0c             	mov    0xc(%eax),%ecx
40eefe:	83 c4 1c             	add    $0x1c,%esp
40ef01:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40ef07:	2b ce                	sub    %esi,%ecx
40ef09:	ff d3                	call   *%ebx
40ef0b:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
40ef11:	c7 85 f4 fe ff ff c8 	movl   $0x40d9c8,-0x10c(%ebp)
40ef18:	d9 40 00
40ef1b:	c7 85 ec fe ff ff 08 	movl   $0x8,-0x114(%ebp)
40ef22:	00 00 00
40ef25:	8b 48 14             	mov    0x14(%eax),%ecx
40ef28:	c1 e1 04             	shl    $0x4,%ecx
40ef2b:	8b f1                	mov    %ecx,%esi
40ef2d:	8b 48 0c             	mov    0xc(%eax),%ecx
40ef30:	2b ce                	sub    %esi,%ecx
40ef32:	8b 35 38 11 40 00    	mov    0x401138,%esi
40ef38:	8d 95 ec fe ff ff    	lea    -0x114(%ebp),%edx
40ef3e:	83 c1 10             	add    $0x10,%ecx
40ef41:	ff d6                	call   *%esi
40ef43:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
40ef49:	c7 85 e4 fe ff ff ff 	movl   $0xffffffff,-0x11c(%ebp)
40ef50:	ff ff ff
40ef53:	89 bd dc fe ff ff    	mov    %edi,-0x124(%ebp)
40ef59:	8b 78 14             	mov    0x14(%eax),%edi
40ef5c:	b9 02 00 00 00       	mov    $0x2,%ecx
40ef61:	2b cf                	sub    %edi,%ecx
40ef63:	8b 78 0c             	mov    0xc(%eax),%edi
40ef66:	c1 e1 04             	shl    $0x4,%ecx
40ef69:	8d 95 dc fe ff ff    	lea    -0x124(%ebp),%edx
40ef6f:	03 cf                	add    %edi,%ecx
40ef71:	ff d3                	call   *%ebx
40ef73:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
40ef79:	c7 85 d4 fe ff ff c0 	movl   $0x40dcc0,-0x12c(%ebp)
40ef80:	dc 40 00
40ef83:	c7 85 cc fe ff ff 08 	movl   $0x8,-0x134(%ebp)
40ef8a:	00 00 00
40ef8d:	8b 78 14             	mov    0x14(%eax),%edi
40ef90:	b9 03 00 00 00       	mov    $0x3,%ecx
40ef95:	2b cf                	sub    %edi,%ecx
40ef97:	8b 78 0c             	mov    0xc(%eax),%edi
40ef9a:	c1 e1 04             	shl    $0x4,%ecx
40ef9d:	8d 95 cc fe ff ff    	lea    -0x134(%ebp),%edx
40efa3:	03 cf                	add    %edi,%ecx
40efa5:	ff d6                	call   *%esi
40efa7:	8d 95 0c ff ff ff    	lea    -0xf4(%ebp),%edx
40efad:	52                   	push   %edx
40efae:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40efb4:	50                   	push   %eax
40efb5:	ff 15 48 10 40 00    	call   *0x401048
40efbb:	8d 8d 0c ff ff ff    	lea    -0xf4(%ebp),%ecx
40efc1:	51                   	push   %ecx
40efc2:	6a 00                	push   $0x0
40efc4:	ff 15 74 10 40 00    	call   *0x401074
40efca:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40efd0:	52                   	push   %edx
40efd1:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
40efd7:	50                   	push   %eax
40efd8:	c7 85 c4 fe ff ff c8 	movl   $0x40d9c8,-0x13c(%ebp)
40efdf:	d9 40 00
40efe2:	c7 85 bc fe ff ff 08 	movl   $0x8008,-0x144(%ebp)
40efe9:	80 00 00
40efec:	ff 15 18 11 40 00    	call   *0x401118
40eff2:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40eff8:	8b f0                	mov    %eax,%esi
40effa:	ff 15 14 10 40 00    	call   *0x401014
40f000:	66 85 f6             	test   %si,%si
40f003:	0f 84 c4 00 00 00    	je     0x40f0cd
40f009:	a1 20 07 41 00       	mov    0x410720,%eax
40f00e:	85 c0                	test   %eax,%eax
40f010:	75 10                	jne    0x40f022
40f012:	68 20 07 41 00       	push   $0x410720
40f017:	68 94 d9 40 00       	push   $0x40d994
40f01c:	ff 15 e8 10 40 00    	call   *0x4010e8
40f022:	8b 35 20 07 41 00    	mov    0x410720,%esi
40f028:	8b 0e                	mov    (%esi),%ecx
40f02a:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
40f030:	52                   	push   %edx
40f031:	56                   	push   %esi
40f032:	ff 51 4c             	call   *0x4c(%ecx)
40f035:	db e2                	fnclex
40f037:	85 c0                	test   %eax,%eax
40f039:	7d 0f                	jge    0x40f04a
40f03b:	6a 4c                	push   $0x4c
40f03d:	68 84 d9 40 00       	push   $0x40d984
40f042:	56                   	push   %esi
40f043:	50                   	push   %eax
40f044:	ff 15 38 10 40 00    	call   *0x401038
40f04a:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40f050:	8d 9d 50 ff ff ff    	lea    -0xb0(%ebp),%ebx
40f056:	53                   	push   %ebx
40f057:	83 ec 10             	sub    $0x10,%esp
40f05a:	ba 02 00 00 00       	mov    $0x2,%edx
40f05f:	8b dc                	mov    %esp,%ebx
40f061:	89 13                	mov    %edx,(%ebx)
40f063:	89 95 fc fe ff ff    	mov    %edx,-0x104(%ebp)
40f069:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
40f06f:	b9 18 00 00 00       	mov    $0x18,%ecx
40f074:	89 53 04             	mov    %edx,0x4(%ebx)
40f077:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40f07d:	8b 38                	mov    (%eax),%edi
40f07f:	89 4b 08             	mov    %ecx,0x8(%ebx)
40f082:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40f088:	50                   	push   %eax
40f089:	8b f0                	mov    %eax,%esi
40f08b:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40f08e:	ff 57 1c             	call   *0x1c(%edi)
40f091:	db e2                	fnclex
40f093:	85 c0                	test   %eax,%eax
40f095:	7d 0f                	jge    0x40f0a6
40f097:	6a 1c                	push   $0x1c
40f099:	68 a4 d9 40 00       	push   $0x40d9a4
40f09e:	56                   	push   %esi
40f09f:	50                   	push   %eax
40f0a0:	ff 15 38 10 40 00    	call   *0x401038
40f0a6:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
40f0ac:	50                   	push   %eax
40f0ad:	8d 55 dc             	lea    -0x24(%ebp),%edx
40f0b0:	52                   	push   %edx
40f0b1:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
40f0b8:	00 00 00
40f0bb:	ff 15 fc 10 40 00    	call   *0x4010fc
40f0c1:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40f0c7:	ff 15 5c 11 40 00    	call   *0x40115c
40f0cd:	8b 3d 2c 11 40 00    	mov    0x40112c,%edi
40f0d3:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40f0d9:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f0df:	c7 85 04 ff ff ff c8 	movl   $0x40dcc8,-0xfc(%ebp)
40f0e6:	dc 40 00
40f0e9:	c7 85 fc fe ff ff 08 	movl   $0x8,-0x104(%ebp)
40f0f0:	00 00 00
40f0f3:	ff d7                	call   *%edi
40f0f5:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40f0fb:	50                   	push   %eax
40f0fc:	ff 15 3c 10 40 00    	call   *0x40103c
40f102:	33 f6                	xor    %esi,%esi
40f104:	66 8b f0             	mov    %ax,%si
40f107:	66 f7 de             	neg    %si
40f10a:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f110:	1b f6                	sbb    %esi,%esi
40f112:	f7 de                	neg    %esi
40f114:	f7 de                	neg    %esi
40f116:	ff 15 14 10 40 00    	call   *0x401014
40f11c:	66 85 f6             	test   %si,%si
40f11f:	74 53                	je     0x40f174
40f121:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40f127:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f12d:	c7 85 04 ff ff ff 20 	movl   $0x40dd20,-0xfc(%ebp)
40f134:	dd 40 00
40f137:	c7 85 fc fe ff ff 08 	movl   $0x8,-0x104(%ebp)
40f13e:	00 00 00
40f141:	ff d7                	call   *%edi
40f143:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f149:	51                   	push   %ecx
40f14a:	8d 95 30 ff ff ff    	lea    -0xd0(%ebp),%edx
40f150:	52                   	push   %edx
40f151:	ff 15 44 10 40 00    	call   *0x401044
40f157:	8b 1d 18 10 40 00    	mov    0x401018,%ebx
40f15d:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
40f163:	50                   	push   %eax
40f164:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f16a:	51                   	push   %ecx
40f16b:	6a 02                	push   $0x2
40f16d:	ff d3                	call   *%ebx
40f16f:	83 c4 0c             	add    $0xc,%esp
40f172:	eb 06                	jmp    0x40f17a
40f174:	8b 1d 18 10 40 00    	mov    0x401018,%ebx
40f17a:	6a 00                	push   $0x0
40f17c:	6a 00                	push   $0x0
40f17e:	ff 15 04 10 40 00    	call   *0x401004
40f184:	ff 15 6c 10 40 00    	call   *0x40106c
40f18a:	dc 1d 98 11 40 00    	fcompl 0x401198
40f190:	df e0                	fnstsw %ax
40f192:	f6 c4 40             	test   $0x40,%ah
40f195:	75 4b                	jne    0x40f1e2
40f197:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40f19d:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f1a3:	c7 85 04 ff ff ff 5c 	movl   $0x40dd5c,-0xfc(%ebp)
40f1aa:	dd 40 00
40f1ad:	c7 85 fc fe ff ff 08 	movl   $0x8,-0x104(%ebp)
40f1b4:	00 00 00
40f1b7:	ff d7                	call   *%edi
40f1b9:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40f1bf:	52                   	push   %edx
40f1c0:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
40f1c6:	50                   	push   %eax
40f1c7:	ff 15 44 10 40 00    	call   *0x401044
40f1cd:	8d 8d 30 ff ff ff    	lea    -0xd0(%ebp),%ecx
40f1d3:	51                   	push   %ecx
40f1d4:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40f1da:	52                   	push   %edx
40f1db:	6a 02                	push   $0x2
40f1dd:	ff d3                	call   *%ebx
40f1df:	83 c4 0c             	add    $0xc,%esp
40f1e2:	8b 3d 30 10 40 00    	mov    0x401030,%edi
40f1e8:	6a 02                	push   $0x2
40f1ea:	68 c8 d9 40 00       	push   $0x40d9c8
40f1ef:	68 c0 dc 40 00       	push   $0x40dcc0
40f1f4:	ff d7                	call   *%edi
40f1f6:	8b 35 48 11 40 00    	mov    0x401148,%esi
40f1fc:	8b d0                	mov    %eax,%edx
40f1fe:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f204:	ff d6                	call   *%esi
40f206:	50                   	push   %eax
40f207:	68 ac da 40 00       	push   $0x40daac
40f20c:	ff d7                	call   *%edi
40f20e:	8b d0                	mov    %eax,%edx
40f210:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
40f216:	ff d6                	call   *%esi
40f218:	50                   	push   %eax
40f219:	68 ac da 40 00       	push   $0x40daac
40f21e:	6a 00                	push   $0x0
40f220:	ff 15 ec 10 40 00    	call   *0x4010ec
40f226:	33 c9                	xor    %ecx,%ecx
40f228:	83 f8 03             	cmp    $0x3,%eax
40f22b:	0f 95 c1             	setne  %cl
40f22e:	8d 95 58 ff ff ff    	lea    -0xa8(%ebp),%edx
40f234:	52                   	push   %edx
40f235:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f23b:	50                   	push   %eax
40f23c:	6a 02                	push   $0x2
40f23e:	f7 d9                	neg    %ecx
40f240:	8b f1                	mov    %ecx,%esi
40f242:	ff 15 04 11 40 00    	call   *0x401104
40f248:	83 c4 0c             	add    $0xc,%esp
40f24b:	66 85 f6             	test   %si,%si
40f24e:	0f 84 d0 00 00 00    	je     0x40f324
40f254:	a1 20 07 41 00       	mov    0x410720,%eax
40f259:	85 c0                	test   %eax,%eax
40f25b:	75 10                	jne    0x40f26d
40f25d:	68 20 07 41 00       	push   $0x410720
40f262:	68 94 d9 40 00       	push   $0x40d994
40f267:	ff 15 e8 10 40 00    	call   *0x4010e8
40f26d:	8b 35 20 07 41 00    	mov    0x410720,%esi
40f273:	8b 0e                	mov    (%esi),%ecx
40f275:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
40f27b:	52                   	push   %edx
40f27c:	56                   	push   %esi
40f27d:	ff 51 4c             	call   *0x4c(%ecx)
40f280:	db e2                	fnclex
40f282:	85 c0                	test   %eax,%eax
40f284:	7d 0f                	jge    0x40f295
40f286:	6a 4c                	push   $0x4c
40f288:	68 84 d9 40 00       	push   $0x40d984
40f28d:	56                   	push   %esi
40f28e:	50                   	push   %eax
40f28f:	ff 15 38 10 40 00    	call   *0x401038
40f295:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40f29b:	8d 9d 50 ff ff ff    	lea    -0xb0(%ebp),%ebx
40f2a1:	53                   	push   %ebx
40f2a2:	83 ec 10             	sub    $0x10,%esp
40f2a5:	ba 02 00 00 00       	mov    $0x2,%edx
40f2aa:	8b dc                	mov    %esp,%ebx
40f2ac:	89 13                	mov    %edx,(%ebx)
40f2ae:	89 95 fc fe ff ff    	mov    %edx,-0x104(%ebp)
40f2b4:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
40f2ba:	b9 b0 00 00 00       	mov    $0xb0,%ecx
40f2bf:	89 53 04             	mov    %edx,0x4(%ebx)
40f2c2:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40f2c8:	8b 38                	mov    (%eax),%edi
40f2ca:	89 4b 08             	mov    %ecx,0x8(%ebx)
40f2cd:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40f2d3:	50                   	push   %eax
40f2d4:	8b f0                	mov    %eax,%esi
40f2d6:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40f2d9:	ff 57 1c             	call   *0x1c(%edi)
40f2dc:	db e2                	fnclex
40f2de:	85 c0                	test   %eax,%eax
40f2e0:	7d 0f                	jge    0x40f2f1
40f2e2:	6a 1c                	push   $0x1c
40f2e4:	68 a4 d9 40 00       	push   $0x40d9a4
40f2e9:	56                   	push   %esi
40f2ea:	50                   	push   %eax
40f2eb:	ff 15 38 10 40 00    	call   *0x401038
40f2f1:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
40f2f7:	50                   	push   %eax
40f2f8:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f2fb:	52                   	push   %edx
40f2fc:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
40f303:	00 00 00
40f306:	ff 15 fc 10 40 00    	call   *0x4010fc
40f30c:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40f312:	ff 15 5c 11 40 00    	call   *0x40115c
40f318:	8b 3d 30 10 40 00    	mov    0x401030,%edi
40f31e:	8b 1d 18 10 40 00    	mov    0x401018,%ebx
40f324:	68 c8 d9 40 00       	push   $0x40d9c8
40f329:	68 c8 d9 40 00       	push   $0x40d9c8
40f32e:	ff d7                	call   *%edi
40f330:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
40f336:	6a 02                	push   $0x2
40f338:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40f33e:	50                   	push   %eax
40f33f:	8d 8d 30 ff ff ff    	lea    -0xd0(%ebp),%ecx
40f345:	51                   	push   %ecx
40f346:	c7 85 40 ff ff ff 08 	movl   $0x8,-0xc0(%ebp)
40f34d:	00 00 00
40f350:	ff 15 20 10 40 00    	call   *0x401020
40f356:	8d 95 30 ff ff ff    	lea    -0xd0(%ebp),%edx
40f35c:	52                   	push   %edx
40f35d:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40f363:	50                   	push   %eax
40f364:	c7 85 04 ff ff ff c8 	movl   $0x40d9c8,-0xfc(%ebp)
40f36b:	d9 40 00
40f36e:	c7 85 fc fe ff ff 08 	movl   $0x8008,-0x104(%ebp)
40f375:	80 00 00
40f378:	ff 15 18 11 40 00    	call   *0x401118
40f37e:	8d 8d 30 ff ff ff    	lea    -0xd0(%ebp),%ecx
40f384:	51                   	push   %ecx
40f385:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40f38b:	52                   	push   %edx
40f38c:	6a 02                	push   $0x2
40f38e:	8b f0                	mov    %eax,%esi
40f390:	ff d3                	call   *%ebx
40f392:	83 c4 0c             	add    $0xc,%esp
40f395:	66 85 f6             	test   %si,%si
40f398:	0f 84 93 00 00 00    	je     0x40f431
40f39e:	6a 00                	push   $0x0
40f3a0:	68 7c dd 40 00       	push   $0x40dd7c
40f3a5:	8d 45 bc             	lea    -0x44(%ebp),%eax
40f3a8:	50                   	push   %eax
40f3a9:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40f3af:	51                   	push   %ecx
40f3b0:	ff 15 3c 11 40 00    	call   *0x40113c