401f93:	8b 7d 0c             	mov    0xc(%ebp),%edi
401f96:	8b 70 0c             	mov    0xc(%eax),%esi
401f99:	3b fe                	cmp    %esi,%edi
401f9b:	72 09                	jb     0x401fa6
401f9d:	8b 48 08             	mov    0x8(%eax),%ecx
401fa0:	03 ce                	add    %esi,%ecx
401fa2:	3b f9                	cmp    %ecx,%edi
401fa4:	72 0a                	jb     0x401fb0
401fa6:	42                   	inc    %edx
401fa7:	83 c0 28             	add    $0x28,%eax
401faa:	3b d3                	cmp    %ebx,%edx
401fac:	72 e8                	jb     0x401f96
401fae:	33 c0                	xor    %eax,%eax
401fb0:	5f                   	pop    %edi
401fb1:	5e                   	pop    %esi
401fb2:	5b                   	pop    %ebx
401fb3:	5d                   	pop    %ebp
401fb4:	c3                   	ret
401fb5:	cc                   	int3
401fb6:	cc                   	int3
401fb7:	cc                   	int3
401fb8:	cc                   	int3
401fb9:	cc                   	int3
401fba:	cc                   	int3
401fbb:	cc                   	int3
401fbc:	cc                   	int3
401fbd:	cc                   	int3
401fbe:	cc                   	int3
401fbf:	cc                   	int3
401fc0:	cc                   	int3
401fc1:	cc                   	int3
401fc2:	cc                   	int3
401fc3:	cc                   	int3
401fc4:	cc                   	int3
401fc5:	cc                   	int3
401fc6:	cc                   	int3
401fc7:	cc                   	int3
401fc8:	cc                   	int3
401fc9:	cc                   	int3
401fca:	cc                   	int3
401fcb:	cc                   	int3
401fcc:	cc                   	int3
401fcd:	cc                   	int3
401fce:	cc                   	int3
401fcf:	cc                   	int3
401fd0:	8b ff                	mov    %edi,%edi
401fd2:	55                   	push   %ebp
401fd3:	8b ec                	mov    %esp,%ebp
401fd5:	6a fe                	push   $0xfffffffe
401fd7:	68 50 24 40 00       	push   $0x402450
401fdc:	68 e0 21 40 00       	push   $0x4021e0
401fe1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401fe7:	50                   	push   %eax
401fe8:	83 ec 08             	sub    $0x8,%esp
401feb:	53                   	push   %ebx
401fec:	56                   	push   %esi
401fed:	57                   	push   %edi
401fee:	a1 04 30 40 00       	mov    0x403004,%eax
401ff3:	31 45 f8             	xor    %eax,-0x8(%ebp)
401ff6:	33 c5                	xor    %ebp,%eax
401ff8:	50                   	push   %eax
401ff9:	8d 45 f0             	lea    -0x10(%ebp),%eax
401ffc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402002:	89 65 e8             	mov    %esp,-0x18(%ebp)
402005:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40200c:	68 00 00 40 00       	push   $0x400000
402011:	e8 7a 00 00 00       	call   0x402090
402016:	83 c4 04             	add    $0x4,%esp
402019:	85 c0                	test   %eax,%eax
40201b:	74 54                	je     0x402071
40201d:	8b 45 08             	mov    0x8(%ebp),%eax
402020:	2d 00 00 40 00       	sub    $0x400000,%eax
402025:	50                   	push   %eax
402026:	68 00 00 40 00       	push   $0x400000
40202b:	e8 40 ff ff ff       	call   0x401f70
402030:	83 c4 08             	add    $0x8,%esp
402033:	85 c0                	test   %eax,%eax
402035:	74 3a                	je     0x402071
402037:	8b 40 24             	mov    0x24(%eax),%eax
40203a:	c1 e8 1f             	shr    $0x1f,%eax
40203d:	f7 d0                	not    %eax
40203f:	83 e0 01             	and    $0x1,%eax
402042:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402049:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40204c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402053:	59                   	pop    %ecx
402054:	5f                   	pop    %edi
402055:	5e                   	pop    %esi
402056:	5b                   	pop    %ebx
402057:	8b e5                	mov    %ebp,%esp
402059:	5d                   	pop    %ebp
40205a:	c3                   	ret
40205b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40205e:	8b 00                	mov    (%eax),%eax
402060:	33 c9                	xor    %ecx,%ecx
402062:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
402068:	0f 94 c1             	sete   %cl
40206b:	8b c1                	mov    %ecx,%eax
40206d:	c3                   	ret
40206e:	8b 65 e8             	mov    -0x18(%ebp),%esp
402071:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402078:	33 c0                	xor    %eax,%eax
40207a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40207d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402084:	59                   	pop    %ecx
402085:	5f                   	pop    %edi
402086:	5e                   	pop    %esi
402087:	5b                   	pop    %ebx
402088:	8b e5                	mov    %ebp,%esp
40208a:	5d                   	pop    %ebp
40208b:	c3                   	ret
40208c:	cc                   	int3
40208d:	cc                   	int3
40208e:	cc                   	int3
40208f:	cc                   	int3
402090:	8b ff                	mov    %edi,%edi
402092:	55                   	push   %ebp
402093:	8b ec                	mov    %esp,%ebp
402095:	8b 4d 08             	mov    0x8(%ebp),%ecx
402098:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40209d:	66 39 01             	cmp    %ax,(%ecx)
4020a0:	75 1f                	jne    0x4020c1
4020a2:	8b 41 3c             	mov    0x3c(%ecx),%eax
4020a5:	03 c1                	add    %ecx,%eax
4020a7:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
4020ad:	75 12                	jne    0x4020c1
4020af:	b9 0b 01 00 00       	mov    $0x10b,%ecx
4020b4:	66 39 48 18          	cmp    %cx,0x18(%eax)
4020b8:	75 07                	jne    0x4020c1
4020ba:	b8 01 00 00 00       	mov    $0x1,%eax
4020bf:	5d                   	pop    %ebp
4020c0:	c3                   	ret
4020c1:	33 c0                	xor    %eax,%eax
4020c3:	5d                   	pop    %ebp
4020c4:	c3                   	ret
4020c5:	8b ff                	mov    %edi,%edi
4020c7:	55                   	push   %ebp
4020c8:	8b ec                	mov    %esp,%ebp
4020ca:	83 ec 14             	sub    $0x14,%esp
4020cd:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4020d1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4020d5:	a1 04 30 40 00       	mov    0x403004,%eax
4020da:	56                   	push   %esi
4020db:	57                   	push   %edi
4020dc:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
4020e1:	be 00 00 ff ff       	mov    $0xffff0000,%esi
4020e6:	3b c7                	cmp    %edi,%eax
4020e8:	74 04                	je     0x4020ee
4020ea:	85 c6                	test   %eax,%esi
4020ec:	75 64                	jne    0x402152
4020ee:	8d 45 f4             	lea    -0xc(%ebp),%eax
4020f1:	50                   	push   %eax
4020f2:	ff 15 38 40 40 00    	call   *0x404038
4020f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4020fb:	33 45 f4             	xor    -0xc(%ebp),%eax
4020fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
402101:	ff 15 40 40 40 00    	call   *0x404040
402107:	31 45 fc             	xor    %eax,-0x4(%ebp)
40210a:	ff 15 3c 40 40 00    	call   *0x40403c
402110:	31 45 fc             	xor    %eax,-0x4(%ebp)
402113:	ff 15 34 40 40 00    	call   *0x404034
402119:	33 45 fc             	xor    -0x4(%ebp),%eax
40211c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40211f:	33 c1                	xor    %ecx,%eax
402121:	89 45 fc             	mov    %eax,-0x4(%ebp)
402124:	8d 45 ec             	lea    -0x14(%ebp),%eax
402127:	50                   	push   %eax
402128:	ff 15 44 40 40 00    	call   *0x404044
40212e:	8b 45 f0             	mov    -0x10(%ebp),%eax
402131:	33 45 ec             	xor    -0x14(%ebp),%eax
402134:	33 45 fc             	xor    -0x4(%ebp),%eax
402137:	8b c8                	mov    %eax,%ecx
402139:	3b c7                	cmp    %edi,%eax
40213b:	74 08                	je     0x402145
40213d:	85 35 04 30 40 00    	test   %esi,0x403004
402143:	75 07                	jne    0x40214c
402145:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
40214a:	8b c8                	mov    %eax,%ecx
40214c:	89 0d 04 30 40 00    	mov    %ecx,0x403004
402152:	f7 d0                	not    %eax
402154:	5f                   	pop    %edi
402155:	a3 08 30 40 00       	mov    %eax,0x403008
40215a:	5e                   	pop    %esi
40215b:	c9                   	leave
40215c:	c3                   	ret
40215d:	68 00 00 03 00       	push   $0x30000
402162:	68 00 00 01 00       	push   $0x10000
402167:	ff 15 6c 40 40 00    	call   *0x40406c
40216d:	59                   	pop    %ecx
40216e:	59                   	pop    %ecx
40216f:	c3                   	ret
402170:	ff 25 80 40 40 00    	jmp    *0x404080
402176:	cc                   	int3
402177:	cc                   	int3
402178:	68 e0 21 40 00       	push   $0x4021e0
40217d:	64 ff 35 00 00 00 00 	push   %fs:0x0
402184:	8b 44 24 10          	mov    0x10(%esp),%eax
402188:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40218c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
402190:	2b e0                	sub    %eax,%esp
402192:	53                   	push   %ebx
402193:	56                   	push   %esi
402194:	57                   	push   %edi
402195:	a1 04 30 40 00       	mov    0x403004,%eax
40219a:	31 45 fc             	xor    %eax,-0x4(%ebp)
40219d:	33 c5                	xor    %ebp,%eax
40219f:	50                   	push   %eax
4021a0:	89 65 e8             	mov    %esp,-0x18(%ebp)
4021a3:	ff 75 f8             	push   -0x8(%ebp)
4021a6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4021a9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4021b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4021b3:	8d 45 f0             	lea    -0x10(%ebp),%eax
4021b6:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4021bc:	c3                   	ret
4021bd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4021c0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4021c7:	59                   	pop    %ecx
4021c8:	5f                   	pop    %edi
4021c9:	5f                   	pop    %edi
4021ca:	5e                   	pop    %esi
4021cb:	5b                   	pop    %ebx
4021cc:	8b e5                	mov    %ebp,%esp
4021ce:	5d                   	pop    %ebp
4021cf:	51                   	push   %ecx
4021d0:	c3                   	ret
4021d1:	cc                   	int3
4021d2:	cc                   	int3
4021d3:	cc                   	int3
4021d4:	cc                   	int3
4021d5:	cc                   	int3
4021d6:	cc                   	int3
4021d7:	cc                   	int3
4021d8:	cc                   	int3
4021d9:	cc                   	int3
4021da:	cc                   	int3
4021db:	cc                   	int3
4021dc:	cc                   	int3
4021dd:	cc                   	int3
4021de:	cc                   	int3
4021df:	cc                   	int3
4021e0:	8b ff                	mov    %edi,%edi
4021e2:	55                   	push   %ebp
4021e3:	8b ec                	mov    %esp,%ebp
4021e5:	ff 75 14             	push   0x14(%ebp)
4021e8:	ff 75 10             	push   0x10(%ebp)
4021eb:	ff 75 0c             	push   0xc(%ebp)
4021ee:	ff 75 08             	push   0x8(%ebp)
4021f1:	68 30 1e 40 00       	push   $0x401e30
4021f6:	68 04 30 40 00       	push   $0x403004
4021fb:	e8 4b 01 00 00       	call   0x40234b
402200:	83 c4 18             	add    $0x18,%esp
402203:	5d                   	pop    %ebp
402204:	c3                   	ret
402205:	cc                   	int3
402206:	cc                   	int3
402207:	cc                   	int3
402208:	cc                   	int3
402209:	cc                   	int3
40220a:	cc                   	int3
40220b:	cc                   	int3
40220c:	cc                   	int3
40220d:	cc                   	int3
40220e:	cc                   	int3
40220f:	cc                   	int3
402210:	c2 00 00             	ret    $0x0
402213:	8b ff                	mov    %edi,%edi
402215:	55                   	push   %ebp
402216:	8b ec                	mov    %esp,%ebp
402218:	6a 00                	push   $0x0
40221a:	ff 15 4c 40 40 00    	call   *0x40404c
402220:	ff 75 08             	push   0x8(%ebp)
402223:	ff 15 30 40 40 00    	call   *0x404030
402229:	68 09 04 00 c0       	push   $0xc0000409
40222e:	ff 15 2c 40 40 00    	call   *0x40402c
402234:	50                   	push   %eax
402235:	ff 15 60 40 40 00    	call   *0x404060
40223b:	5d                   	pop    %ebp
40223c:	c3                   	ret
40223d:	8b ff                	mov    %edi,%edi
40223f:	55                   	push   %ebp
402240:	8b ec                	mov    %esp,%ebp
402242:	81 ec 24 03 00 00    	sub    $0x324,%esp
402248:	a3 40 31 40 00       	mov    %eax,0x403140
40224d:	89 0d 3c 31 40 00    	mov    %ecx,0x40313c
402253:	89 15 38 31 40 00    	mov    %edx,0x403138
402259:	89 1d 34 31 40 00    	mov    %ebx,0x403134
40225f:	89 35 30 31 40 00    	mov    %esi,0x403130
402265:	89 3d 2c 31 40 00    	mov    %edi,0x40312c
40226b:	66 8c 15 58 31 40 00 	data16 mov %ss,0x403158
402272:	66 8c 0d 4c 31 40 00 	data16 mov %cs,0x40314c
402279:	66 8c 1d 28 31 40 00 	data16 mov %ds,0x403128
402280:	66 8c 05 24 31 40 00 	data16 mov %es,0x403124
402287:	66 8c 25 20 31 40 00 	data16 mov %fs,0x403120
40228e:	66 8c 2d 1c 31 40 00 	data16 mov %gs,0x40311c
402295:	9c                   	pushf
402296:	8f 05 50 31 40 00    	pop    0x403150
40229c:	8b 45 00             	mov    0x0(%ebp),%eax
40229f:	a3 44 31 40 00       	mov    %eax,0x403144
4022a4:	8b 45 04             	mov    0x4(%ebp),%eax
4022a7:	a3 48 31 40 00       	mov    %eax,0x403148
4022ac:	8d 45 08             	lea    0x8(%ebp),%eax
4022af:	a3 54 31 40 00       	mov    %eax,0x403154
4022b4:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
4022ba:	c7 05 90 30 40 00 01 	movl   $0x10001,0x403090
4022c1:	00 01 00
4022c4:	a1 48 31 40 00       	mov    0x403148,%eax
4022c9:	a3 4c 30 40 00       	mov    %eax,0x40304c
4022ce:	c7 05 40 30 40 00 09 	movl   $0xc0000409,0x403040
4022d5:	04 00 c0
4022d8:	c7 05 44 30 40 00 01 	movl   $0x1,0x403044
4022df:	00 00 00
4022e2:	c7 05 50 30 40 00 03 	movl   $0x3,0x403050
4022e9:	00 00 00
4022ec:	6a 04                	push   $0x4
4022ee:	58                   	pop    %eax
4022ef:	6b c0 00             	imul   $0x0,%eax,%eax
4022f2:	c7 80 54 30 40 00 02 	movl   $0x2,0x403054(%eax)
4022f9:	00 00 00
4022fc:	6a 04                	push   $0x4
4022fe:	58                   	pop    %eax
4022ff:	c1 e0 00             	shl    $0x0,%eax
402302:	8b 0d 04 30 40 00    	mov    0x403004,%ecx
402308:	89 88 54 30 40 00    	mov    %ecx,0x403054(%eax)
40230e:	6a 04                	push   $0x4
402310:	58                   	pop    %eax
402311:	d1 e0                	shl    $1,%eax
402313:	8b 0d 08 30 40 00    	mov    0x403008,%ecx
402319:	89 88 54 30 40 00    	mov    %ecx,0x403054(%eax)
40231f:	6a 04                	push   $0x4
402321:	58                   	pop    %eax
402322:	6b c0 00             	imul   $0x0,%eax,%eax
402325:	8b 0d 04 30 40 00    	mov    0x403004,%ecx
40232b:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40232f:	6a 04                	push   $0x4
402331:	58                   	pop    %eax
402332:	c1 e0 00             	shl    $0x0,%eax
402335:	8b 0d 08 30 40 00    	mov    0x403008,%ecx
40233b:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40233f:	68 00 10 40 00       	push   $0x401000
402344:	e8 ca fe ff ff       	call   0x402213
402349:	c9                   	leave
40234a:	c3                   	ret
40234b:	ff 25 68 40 40 00    	jmp    *0x404068
402351:	50                   	push   %eax
402352:	64 ff 35 00 00 00 00 	push   %fs:0x0
402359:	8d 44 24 0c          	lea    0xc(%esp),%eax
40235d:	2b 64 24 0c          	sub    0xc(%esp),%esp
402361:	53                   	push   %ebx
402362:	56                   	push   %esi