40efc1:	33 c0                	xor    %eax,%eax
40efc3:	40                   	inc    %eax
40efc4:	c3                   	ret
40efc5:	8b 65 e8             	mov    -0x18(%ebp),%esp
40efc8:	33 c9                	xor    %ecx,%ecx
40efca:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40efcd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40efd4:	8b c1                	mov    %ecx,%eax
40efd6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40efd9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40efe0:	59                   	pop    %ecx
40efe1:	5f                   	pop    %edi
40efe2:	5e                   	pop    %esi
40efe3:	5b                   	pop    %ebx
40efe4:	c9                   	leave
40efe5:	c2 04 00             	ret    $0x4
40efe8:	8b ff                	mov    %edi,%edi
40efea:	55                   	push   %ebp
40efeb:	8b ec                	mov    %esp,%ebp
40efed:	6a 00                	push   $0x0
40efef:	ff 15 68 20 41 00    	call   *0x412068
40eff5:	85 c0                	test   %eax,%eax
40eff7:	74 20                	je     0x40f019
40eff9:	50                   	push   %eax
40effa:	e8 75 ff ff ff       	call   0x40ef74
40efff:	85 c0                	test   %eax,%eax
40f001:	74 16                	je     0x40f019
40f003:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
40f007:	6a 02                	push   $0x2
40f009:	58                   	pop    %eax
40f00a:	66 3b c8             	cmp    %ax,%cx
40f00d:	74 0d                	je     0x40f01c
40f00f:	83 f9 03             	cmp    $0x3,%ecx
40f012:	75 05                	jne    0x40f019
40f014:	33 c0                	xor    %eax,%eax
40f016:	40                   	inc    %eax
40f017:	5d                   	pop    %ebp
40f018:	c3                   	ret
40f019:	8b 45 08             	mov    0x8(%ebp),%eax
40f01c:	5d                   	pop    %ebp
40f01d:	c3                   	ret
40f01e:	ff 25 a4 22 41 00    	jmp    *0x4122a4
40f024:	cc                   	int3
40f025:	cc                   	int3
40f026:	cc                   	int3
40f027:	cc                   	int3
40f028:	cc                   	int3
40f029:	cc                   	int3
40f02a:	cc                   	int3
40f02b:	cc                   	int3
40f02c:	cc                   	int3
40f02d:	cc                   	int3
40f02e:	cc                   	int3
40f02f:	cc                   	int3
40f030:	33 c0                	xor    %eax,%eax
40f032:	c3                   	ret
40f033:	cc                   	int3
40f034:	cc                   	int3
40f035:	cc                   	int3
40f036:	cc                   	int3
40f037:	cc                   	int3
40f038:	cc                   	int3
40f039:	cc                   	int3
40f03a:	cc                   	int3
40f03b:	cc                   	int3
40f03c:	cc                   	int3
40f03d:	cc                   	int3
40f03e:	cc                   	int3
40f03f:	cc                   	int3
40f040:	8b ff                	mov    %edi,%edi
40f042:	55                   	push   %ebp
40f043:	8b ec                	mov    %esp,%ebp
40f045:	8b 45 08             	mov    0x8(%ebp),%eax
40f048:	33 d2                	xor    %edx,%edx
40f04a:	53                   	push   %ebx
40f04b:	56                   	push   %esi
40f04c:	57                   	push   %edi
40f04d:	8b 48 3c             	mov    0x3c(%eax),%ecx
40f050:	03 c8                	add    %eax,%ecx
40f052:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
40f056:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
40f05a:	83 c0 18             	add    $0x18,%eax
40f05d:	03 c1                	add    %ecx,%eax
40f05f:	85 db                	test   %ebx,%ebx
40f061:	74 1b                	je     0x40f07e
40f063:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f066:	8b 70 0c             	mov    0xc(%eax),%esi
40f069:	3b fe                	cmp    %esi,%edi
40f06b:	72 09                	jb     0x40f076
40f06d:	8b 48 08             	mov    0x8(%eax),%ecx
40f070:	03 ce                	add    %esi,%ecx
40f072:	3b f9                	cmp    %ecx,%edi
40f074:	72 0a                	jb     0x40f080
40f076:	42                   	inc    %edx
40f077:	83 c0 28             	add    $0x28,%eax
40f07a:	3b d3                	cmp    %ebx,%edx
40f07c:	72 e8                	jb     0x40f066
40f07e:	33 c0                	xor    %eax,%eax
40f080:	5f                   	pop    %edi
40f081:	5e                   	pop    %esi
40f082:	5b                   	pop    %ebx
40f083:	5d                   	pop    %ebp
40f084:	c3                   	ret
40f085:	cc                   	int3
40f086:	cc                   	int3
40f087:	cc                   	int3
40f088:	cc                   	int3
40f089:	cc                   	int3
40f08a:	cc                   	int3
40f08b:	cc                   	int3
40f08c:	cc                   	int3
40f08d:	cc                   	int3
40f08e:	cc                   	int3
40f08f:	cc                   	int3
40f090:	8b ff                	mov    %edi,%edi
40f092:	55                   	push   %ebp
40f093:	8b ec                	mov    %esp,%ebp
40f095:	6a fe                	push   $0xfffffffe
40f097:	68 40 0e 41 00       	push   $0x410e40
40f09c:	68 a0 f2 40 00       	push   $0x40f2a0
40f0a1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f0a7:	50                   	push   %eax
40f0a8:	83 ec 08             	sub    $0x8,%esp
40f0ab:	53                   	push   %ebx
40f0ac:	56                   	push   %esi
40f0ad:	57                   	push   %edi
40f0ae:	a1 44 10 41 00       	mov    0x411044,%eax
40f0b3:	31 45 f8             	xor    %eax,-0x8(%ebp)
40f0b6:	33 c5                	xor    %ebp,%eax
40f0b8:	50                   	push   %eax
40f0b9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f0bc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f0c2:	89 65 e8             	mov    %esp,-0x18(%ebp)
40f0c5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40f0cc:	68 00 00 40 00       	push   $0x400000
40f0d1:	e8 7a 00 00 00       	call   0x40f150
40f0d6:	83 c4 04             	add    $0x4,%esp
40f0d9:	85 c0                	test   %eax,%eax
40f0db:	74 54                	je     0x40f131
40f0dd:	8b 45 08             	mov    0x8(%ebp),%eax
40f0e0:	2d 00 00 40 00       	sub    $0x400000,%eax
40f0e5:	50                   	push   %eax
40f0e6:	68 00 00 40 00       	push   $0x400000
40f0eb:	e8 50 ff ff ff       	call   0x40f040
40f0f0:	83 c4 08             	add    $0x8,%esp
40f0f3:	85 c0                	test   %eax,%eax
40f0f5:	74 3a                	je     0x40f131
40f0f7:	8b 40 24             	mov    0x24(%eax),%eax
40f0fa:	c1 e8 1f             	shr    $0x1f,%eax
40f0fd:	f7 d0                	not    %eax
40f0ff:	83 e0 01             	and    $0x1,%eax
40f102:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f109:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f10c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f113:	59                   	pop    %ecx
40f114:	5f                   	pop    %edi
40f115:	5e                   	pop    %esi
40f116:	5b                   	pop    %ebx
40f117:	8b e5                	mov    %ebp,%esp
40f119:	5d                   	pop    %ebp
40f11a:	c3                   	ret
40f11b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f11e:	8b 00                	mov    (%eax),%eax
40f120:	33 c9                	xor    %ecx,%ecx
40f122:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
40f128:	0f 94 c1             	sete   %cl
40f12b:	8b c1                	mov    %ecx,%eax
40f12d:	c3                   	ret
40f12e:	8b 65 e8             	mov    -0x18(%ebp),%esp
40f131:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f138:	33 c0                	xor    %eax,%eax
40f13a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f13d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f144:	59                   	pop    %ecx
40f145:	5f                   	pop    %edi
40f146:	5e                   	pop    %esi
40f147:	5b                   	pop    %ebx
40f148:	8b e5                	mov    %ebp,%esp
40f14a:	5d                   	pop    %ebp
40f14b:	c3                   	ret
40f14c:	cc                   	int3
40f14d:	cc                   	int3
40f14e:	cc                   	int3
40f14f:	cc                   	int3
40f150:	8b ff                	mov    %edi,%edi
40f152:	55                   	push   %ebp
40f153:	8b ec                	mov    %esp,%ebp
40f155:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f158:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40f15d:	66 39 01             	cmp    %ax,(%ecx)
40f160:	75 1f                	jne    0x40f181
40f162:	8b 41 3c             	mov    0x3c(%ecx),%eax
40f165:	03 c1                	add    %ecx,%eax
40f167:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40f16d:	75 12                	jne    0x40f181
40f16f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40f174:	66 39 48 18          	cmp    %cx,0x18(%eax)
40f178:	75 07                	jne    0x40f181
40f17a:	b8 01 00 00 00       	mov    $0x1,%eax
40f17f:	5d                   	pop    %ebp
40f180:	c3                   	ret
40f181:	33 c0                	xor    %eax,%eax
40f183:	5d                   	pop    %ebp
40f184:	c3                   	ret
40f185:	8b ff                	mov    %edi,%edi
40f187:	55                   	push   %ebp
40f188:	8b ec                	mov    %esp,%ebp
40f18a:	83 ec 14             	sub    $0x14,%esp
40f18d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40f191:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40f195:	a1 44 10 41 00       	mov    0x411044,%eax
40f19a:	56                   	push   %esi
40f19b:	57                   	push   %edi
40f19c:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40f1a1:	be 00 00 ff ff       	mov    $0xffff0000,%esi
40f1a6:	3b c7                	cmp    %edi,%eax
40f1a8:	74 04                	je     0x40f1ae
40f1aa:	85 c6                	test   %eax,%esi
40f1ac:	75 64                	jne    0x40f212
40f1ae:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f1b1:	50                   	push   %eax
40f1b2:	ff 15 e4 20 41 00    	call   *0x4120e4
40f1b8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f1bb:	33 45 f4             	xor    -0xc(%ebp),%eax
40f1be:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f1c1:	ff 15 d8 20 41 00    	call   *0x4120d8
40f1c7:	31 45 fc             	xor    %eax,-0x4(%ebp)
40f1ca:	ff 15 50 20 41 00    	call   *0x412050
40f1d0:	31 45 fc             	xor    %eax,-0x4(%ebp)
40f1d3:	ff 15 fc 20 41 00    	call   *0x4120fc
40f1d9:	33 45 fc             	xor    -0x4(%ebp),%eax
40f1dc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40f1df:	33 c1                	xor    %ecx,%eax
40f1e1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f1e4:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f1e7:	50                   	push   %eax
40f1e8:	ff 15 6c 20 41 00    	call   *0x41206c
40f1ee:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f1f1:	33 45 ec             	xor    -0x14(%ebp),%eax
40f1f4:	33 45 fc             	xor    -0x4(%ebp),%eax
40f1f7:	8b c8                	mov    %eax,%ecx
40f1f9:	3b c7                	cmp    %edi,%eax
40f1fb:	74 08                	je     0x40f205
40f1fd:	85 35 44 10 41 00    	test   %esi,0x411044
40f203:	75 07                	jne    0x40f20c
40f205:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
40f20a:	8b c8                	mov    %eax,%ecx
40f20c:	89 0d 44 10 41 00    	mov    %ecx,0x411044
40f212:	f7 d0                	not    %eax
40f214:	5f                   	pop    %edi
40f215:	a3 48 10 41 00       	mov    %eax,0x411048
40f21a:	5e                   	pop    %esi
40f21b:	c9                   	leave
40f21c:	c3                   	ret
40f21d:	68 00 00 03 00       	push   $0x30000
40f222:	68 00 00 01 00       	push   $0x10000
40f227:	ff 15 78 22 41 00    	call   *0x412278
40f22d:	59                   	pop    %ecx
40f22e:	59                   	pop    %ecx
40f22f:	c3                   	ret
40f230:	ff 25 84 22 41 00    	jmp    *0x412284
40f236:	cc                   	int3
40f237:	cc                   	int3
40f238:	68 a0 f2 40 00       	push   $0x40f2a0
40f23d:	64 ff 35 00 00 00 00 	push   %fs:0x0
40f244:	8b 44 24 10          	mov    0x10(%esp),%eax
40f248:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40f24c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40f250:	2b e0                	sub    %eax,%esp
40f252:	53                   	push   %ebx
40f253:	56                   	push   %esi
40f254:	57                   	push   %edi
40f255:	a1 44 10 41 00       	mov    0x411044,%eax
40f25a:	31 45 fc             	xor    %eax,-0x4(%ebp)
40f25d:	33 c5                	xor    %ebp,%eax
40f25f:	50                   	push   %eax
40f260:	89 65 e8             	mov    %esp,-0x18(%ebp)
40f263:	ff 75 f8             	push   -0x8(%ebp)
40f266:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f269:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f270:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f273:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f276:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f27c:	c3                   	ret
40f27d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f280:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f287:	59                   	pop    %ecx
40f288:	5f                   	pop    %edi
40f289:	5f                   	pop    %edi
40f28a:	5e                   	pop    %esi
40f28b:	5b                   	pop    %ebx
40f28c:	8b e5                	mov    %ebp,%esp
40f28e:	5d                   	pop    %ebp
40f28f:	51                   	push   %ecx
40f290:	c3                   	ret
40f291:	cc                   	int3
40f292:	cc                   	int3
40f293:	cc                   	int3
40f294:	cc                   	int3
40f295:	cc                   	int3
40f296:	cc                   	int3
40f297:	cc                   	int3
40f298:	cc                   	int3
40f299:	cc                   	int3
40f29a:	cc                   	int3
40f29b:	cc                   	int3
40f29c:	cc                   	int3
40f29d:	cc                   	int3
40f29e:	cc                   	int3
40f29f:	cc                   	int3
40f2a0:	8b ff                	mov    %edi,%edi
40f2a2:	55                   	push   %ebp
40f2a3:	8b ec                	mov    %esp,%ebp
40f2a5:	ff 75 14             	push   0x14(%ebp)
40f2a8:	ff 75 10             	push   0x10(%ebp)
40f2ab:	ff 75 0c             	push   0xc(%ebp)
40f2ae:	ff 75 08             	push   0x8(%ebp)
40f2b1:	68 d0 ec 40 00       	push   $0x40ecd0
40f2b6:	68 44 10 41 00       	push   $0x411044
40f2bb:	e8 13 00 00 00       	call   0x40f2d3
40f2c0:	83 c4 18             	add    $0x18,%esp
40f2c3:	5d                   	pop    %ebp
40f2c4:	c3                   	ret
40f2c5:	cc                   	int3
40f2c6:	cc                   	int3
40f2c7:	cc                   	int3
40f2c8:	cc                   	int3
40f2c9:	cc                   	int3
40f2ca:	cc                   	int3
40f2cb:	cc                   	int3
40f2cc:	cc                   	int3
40f2cd:	cc                   	int3
40f2ce:	cc                   	int3
40f2cf:	cc                   	int3
40f2d0:	c2 00 00             	ret    $0x0
40f2d3:	ff 25 74 22 41 00    	jmp    *0x412274
40f2d9:	8b ff                	mov    %edi,%edi
40f2db:	55                   	push   %ebp
40f2dc:	8b ec                	mov    %esp,%ebp
40f2de:	e8 0a 00 00 00       	call   0x40f2ed
40f2e3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f2e6:	c1 e1 05             	shl    $0x5,%ecx
40f2e9:	03 c1                	add    %ecx,%eax
40f2eb:	5d                   	pop    %ebp
40f2ec:	c3                   	ret
40f2ed:	ff 25 d0 22 41 00    	jmp    *0x4122d0
40f2f3:	ff 25 50 22 41 00    	jmp    *0x412250
40f2f9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f2fc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f303:	59                   	pop    %ecx