40a037:	cc                   	int3
40a038:	cc                   	int3
40a039:	cc                   	int3
40a03a:	cc                   	int3
40a03b:	cc                   	int3
40a03c:	cc                   	int3
40a03d:	cc                   	int3
40a03e:	cc                   	int3
40a03f:	cc                   	int3
40a040:	8b ff                	mov    %edi,%edi
40a042:	55                   	push   %ebp
40a043:	8b ec                	mov    %esp,%ebp
40a045:	6a fe                	push   $0xfffffffe
40a047:	68 30 af 40 00       	push   $0x40af30
40a04c:	68 80 99 40 00       	push   $0x409980
40a051:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a057:	50                   	push   %eax
40a058:	83 ec 08             	sub    $0x8,%esp
40a05b:	53                   	push   %ebx
40a05c:	56                   	push   %esi
40a05d:	57                   	push   %edi
40a05e:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40a063:	31 45 f8             	xor    %eax,-0x8(%ebp)
40a066:	33 c5                	xor    %ebp,%eax
40a068:	50                   	push   %eax
40a069:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a06c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a072:	89 65 e8             	mov    %esp,-0x18(%ebp)
40a075:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a07c:	68 00 00 40 00       	push   $0x400000
40a081:	e8 7a 00 00 00       	call   0x40a100
40a086:	83 c4 04             	add    $0x4,%esp
40a089:	85 c0                	test   %eax,%eax
40a08b:	74 54                	je     0x40a0e1
40a08d:	8b 45 08             	mov    0x8(%ebp),%eax
40a090:	2d 00 00 40 00       	sub    $0x400000,%eax
40a095:	50                   	push   %eax
40a096:	68 00 00 40 00       	push   $0x400000
40a09b:	e8 50 ff ff ff       	call   0x409ff0
40a0a0:	83 c4 08             	add    $0x8,%esp
40a0a3:	85 c0                	test   %eax,%eax
40a0a5:	74 3a                	je     0x40a0e1
40a0a7:	8b 40 24             	mov    0x24(%eax),%eax
40a0aa:	c1 e8 1f             	shr    $0x1f,%eax
40a0ad:	f7 d0                	not    %eax
40a0af:	83 e0 01             	and    $0x1,%eax
40a0b2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a0b9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a0bc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a0c3:	59                   	pop    %ecx
40a0c4:	5f                   	pop    %edi
40a0c5:	5e                   	pop    %esi
40a0c6:	5b                   	pop    %ebx
40a0c7:	8b e5                	mov    %ebp,%esp
40a0c9:	5d                   	pop    %ebp
40a0ca:	c3                   	ret
40a0cb:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a0ce:	8b 00                	mov    (%eax),%eax
40a0d0:	33 c9                	xor    %ecx,%ecx
40a0d2:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
40a0d8:	0f 94 c1             	sete   %cl
40a0db:	8b c1                	mov    %ecx,%eax
40a0dd:	c3                   	ret
40a0de:	8b 65 e8             	mov    -0x18(%ebp),%esp
40a0e1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a0e8:	33 c0                	xor    %eax,%eax
40a0ea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a0ed:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a0f4:	59                   	pop    %ecx
40a0f5:	5f                   	pop    %edi
40a0f6:	5e                   	pop    %esi
40a0f7:	5b                   	pop    %ebx
40a0f8:	8b e5                	mov    %ebp,%esp
40a0fa:	5d                   	pop    %ebp
40a0fb:	c3                   	ret
40a0fc:	cc                   	int3
40a0fd:	cc                   	int3
40a0fe:	cc                   	int3
40a0ff:	cc                   	int3
40a100:	8b ff                	mov    %edi,%edi
40a102:	55                   	push   %ebp
40a103:	8b ec                	mov    %esp,%ebp
40a105:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a108:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40a10d:	66 39 01             	cmp    %ax,(%ecx)
40a110:	75 1f                	jne    0x40a131
40a112:	8b 41 3c             	mov    0x3c(%ecx),%eax
40a115:	03 c1                	add    %ecx,%eax
40a117:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40a11d:	75 12                	jne    0x40a131
40a11f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40a124:	66 39 48 18          	cmp    %cx,0x18(%eax)
40a128:	75 07                	jne    0x40a131
40a12a:	b8 01 00 00 00       	mov    $0x1,%eax
40a12f:	5d                   	pop    %ebp
40a130:	c3                   	ret
40a131:	33 c0                	xor    %eax,%eax
40a133:	5d                   	pop    %ebp
40a134:	c3                   	ret
40a135:	8b ff                	mov    %edi,%edi
40a137:	55                   	push   %ebp
40a138:	8b ec                	mov    %esp,%ebp
40a13a:	83 ec 14             	sub    $0x14,%esp
40a13d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40a141:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40a145:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40a14a:	56                   	push   %esi
40a14b:	57                   	push   %edi
40a14c:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40a151:	be 00 00 ff ff       	mov    $0xffff0000,%esi
40a156:	3b c7                	cmp    %edi,%eax
40a158:	74 04                	je     0x40a15e
40a15a:	85 c6                	test   %eax,%esi
40a15c:	75 64                	jne    0x40a1c2
40a15e:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a161:	50                   	push   %eax
40a162:	ff 15 60 f1 40 00    	call   *0x40f160
40a168:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a16b:	33 45 f4             	xor    -0xc(%ebp),%eax
40a16e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a171:	ff 15 48 f1 40 00    	call   *0x40f148
40a177:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a17a:	ff 15 54 f0 40 00    	call   *0x40f054
40a180:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a183:	ff 15 64 f1 40 00    	call   *0x40f164
40a189:	33 45 fc             	xor    -0x4(%ebp),%eax
40a18c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40a18f:	33 c1                	xor    %ecx,%eax
40a191:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a194:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a197:	50                   	push   %eax
40a198:	ff 15 58 f1 40 00    	call   *0x40f158
40a19e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a1a1:	33 45 ec             	xor    -0x14(%ebp),%eax
40a1a4:	33 45 fc             	xor    -0x4(%ebp),%eax
40a1a7:	8b c8                	mov    %eax,%ecx
40a1a9:	3b c7                	cmp    %edi,%eax
40a1ab:	74 08                	je     0x40a1b5
40a1ad:	85 35 e4 c1 40 00    	test   %esi,0x40c1e4
40a1b3:	75 07                	jne    0x40a1bc
40a1b5:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
40a1ba:	8b c8                	mov    %eax,%ecx
40a1bc:	89 0d e4 c1 40 00    	mov    %ecx,0x40c1e4
40a1c2:	f7 d0                	not    %eax
40a1c4:	5f                   	pop    %edi
40a1c5:	a3 e8 c1 40 00       	mov    %eax,0x40c1e8
40a1ca:	5e                   	pop    %esi
40a1cb:	c9                   	leave
40a1cc:	c3                   	ret
40a1cd:	68 00 00 03 00       	push   $0x30000
40a1d2:	68 00 00 01 00       	push   $0x10000
40a1d7:	ff 15 80 f1 40 00    	call   *0x40f180
40a1dd:	59                   	pop    %ecx
40a1de:	59                   	pop    %ecx
40a1df:	c3                   	ret
40a1e0:	ff 25 78 f1 40 00    	jmp    *0x40f178
40a1e6:	cc                   	int3
40a1e7:	cc                   	int3
40a1e8:	68 80 99 40 00       	push   $0x409980
40a1ed:	64 ff 35 00 00 00 00 	push   %fs:0x0
40a1f4:	8b 44 24 10          	mov    0x10(%esp),%eax
40a1f8:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40a1fc:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40a200:	2b e0                	sub    %eax,%esp
40a202:	53                   	push   %ebx
40a203:	56                   	push   %esi
40a204:	57                   	push   %edi
40a205:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40a20a:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a20d:	33 c5                	xor    %ebp,%eax
40a20f:	50                   	push   %eax
40a210:	89 65 e8             	mov    %esp,-0x18(%ebp)
40a213:	ff 75 f8             	push   -0x8(%ebp)
40a216:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a219:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a220:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a223:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a226:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a22c:	c3                   	ret
40a22d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a230:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a237:	59                   	pop    %ecx
40a238:	5f                   	pop    %edi
40a239:	5f                   	pop    %edi
40a23a:	5e                   	pop    %esi
40a23b:	5b                   	pop    %ebx
40a23c:	8b e5                	mov    %ebp,%esp
40a23e:	5d                   	pop    %ebp
40a23f:	51                   	push   %ecx
40a240:	c3                   	ret
40a241:	ff 25 98 f1 40 00    	jmp    *0x40f198
40a247:	ff 25 74 f1 40 00    	jmp    *0x40f174
40a24d:	e9 00 00 00 00       	jmp    0x40a252
40a252:	8b ff                	mov    %edi,%edi
40a254:	55                   	push   %ebp
40a255:	8b ec                	mov    %esp,%ebp
40a257:	81 ec d0 02 00 00    	sub    $0x2d0,%esp
40a25d:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40a262:	33 c5                	xor    %ebp,%eax
40a264:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a267:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40a26d:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40a273:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
40a279:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
40a27f:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40a285:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
40a28b:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
40a292:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
40a299:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
40a2a0:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
40a2a7:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
40a2ae:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
40a2b5:	9c                   	pushf
40a2b6:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
40a2bc:	8b 45 04             	mov    0x4(%ebp),%eax
40a2bf:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40a2c5:	8d 45 04             	lea    0x4(%ebp),%eax
40a2c8:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
40a2cf:	00 01 00
40a2d2:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40a2d8:	8b 40 fc             	mov    -0x4(%eax),%eax
40a2db:	68 f4 22 40 00       	push   $0x4022f4
40a2e0:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40a2e6:	ff 15 34 f1 40 00    	call   *0x40f134
40a2ec:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a2ef:	33 cd                	xor    %ebp,%ecx
40a2f1:	e8 6a f5 ff ff       	call   0x409860
40a2f6:	c9                   	leave
40a2f7:	c3                   	ret
40a2f8:	ff 25 08 f2 40 00    	jmp    *0x40f208
40a2fe:	ff 25 70 f1 40 00    	jmp    *0x40f170
40a304:	ff 25 8c f1 40 00    	jmp    *0x40f18c
40a30a:	ff 25 90 f1 40 00    	jmp    *0x40f190
40a310:	b8 00 00 41 00       	mov    $0x410000,%eax
40a315:	e9 00 00 00 00       	jmp    0x40a31a
40a31a:	51                   	push   %ecx
40a31b:	52                   	push   %edx
40a31c:	50                   	push   %eax
40a31d:	68 bc af 40 00       	push   $0x40afbc
40a322:	e8 f6 e9 ff ff       	call   0x408d1d
40a327:	5a                   	pop    %edx
40a328:	59                   	pop    %ecx
40a329:	ff e0                	jmp    *%eax
40a32b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a32e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a335:	59                   	pop    %ecx
40a336:	5f                   	pop    %edi
40a337:	5f                   	pop    %edi
40a338:	5e                   	pop    %esi
40a339:	8b e5                	mov    %ebp,%esp
40a33b:	5d                   	pop    %ebp
40a33c:	8b e3                	mov    %ebx,%esp
40a33e:	5b                   	pop    %ebx
40a33f:	51                   	push   %ecx
40a340:	c3                   	ret
40a341:	51                   	push   %ecx
40a342:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40a346:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40a34a:	8d 5c 24 0c          	lea    0xc(%esp),%ebx
40a34e:	50                   	push   %eax
40a34f:	8d 44 24 08          	lea    0x8(%esp),%eax
40a353:	f7 d9                	neg    %ecx
40a355:	23 c1                	and    %ecx,%eax
40a357:	8d 60 f8             	lea    -0x8(%eax),%esp
40a35a:	8b 43 f0             	mov    -0x10(%ebx),%eax
40a35d:	89 04 24             	mov    %eax,(%esp)
40a360:	8b 43 f8             	mov    -0x8(%ebx),%eax
40a363:	50                   	push   %eax
40a364:	8b 43 fc             	mov    -0x4(%ebx),%eax
40a367:	8b 4b f4             	mov    -0xc(%ebx),%ecx
40a36a:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
40a36e:	8d 6c 24 0c          	lea    0xc(%esp),%ebp
40a372:	c7 44 24 08 ff ff ff 	movl   $0xffffffff,0x8(%esp)
40a379:	ff
40a37a:	51                   	push   %ecx
40a37b:	53                   	push   %ebx
40a37c:	2b e0                	sub    %eax,%esp
40a37e:	56                   	push   %esi
40a37f:	57                   	push   %edi
40a380:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40a385:	33 c5                	xor    %ebp,%eax
40a387:	50                   	push   %eax
40a388:	89 65 f0             	mov    %esp,-0x10(%ebp)
40a38b:	8b 43 04             	mov    0x4(%ebx),%eax
40a38e:	89 45 04             	mov    %eax,0x4(%ebp)
40a391:	ff 75 f4             	push   -0xc(%ebp)
40a394:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a39a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a39d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a3a0:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a3a6:	c3                   	ret
40a3a7:	cc                   	int3
40a3a8:	cc                   	int3
40a3a9:	cc                   	int3
40a3aa:	cc                   	int3
40a3ab:	cc                   	int3
40a3ac:	cc                   	int3
40a3ad:	cc                   	int3
40a3ae:	cc                   	int3
40a3af:	cc                   	int3
40a3b0:	51                   	push   %ecx
40a3b1:	8d 4c 24 04          	lea    0x4(%esp),%ecx
40a3b5:	2b c8                	sub    %eax,%ecx
40a3b7:	1b c0                	sbb    %eax,%eax
40a3b9:	f7 d0                	not    %eax
40a3bb:	23 c8                	and    %eax,%ecx
40a3bd:	8b c4                	mov    %esp,%eax
40a3bf:	25 00 f0 ff ff       	and    $0xfffff000,%eax
40a3c4:	3b c8                	cmp    %eax,%ecx
40a3c6:	72 0a                	jb     0x40a3d2
40a3c8:	8b c1                	mov    %ecx,%eax
40a3ca:	59                   	pop    %ecx
40a3cb:	94                   	xchg   %eax,%esp
40a3cc:	8b 00                	mov    (%eax),%eax
40a3ce:	89 04 24             	mov    %eax,(%esp)
40a3d1:	c3                   	ret
40a3d2:	2d 00 10 00 00       	sub    $0x1000,%eax
40a3d7:	85 00                	test   %eax,(%eax)
40a3d9:	eb e9                	jmp    0x40a3c4
40a3db:	ff 25 14 f2 40 00    	jmp    *0x40f214
40a3e1:	ff 25 6c f1 40 00    	jmp    *0x40f16c
40a3e7:	8b 54 24 08          	mov    0x8(%esp),%edx
40a3eb:	8d 42 0c             	lea    0xc(%edx),%eax
40a3ee:	8b 4a e4             	mov    -0x1c(%edx),%ecx
40a3f1:	33 c8                	xor    %eax,%ecx
40a3f3:	e8 68 f4 ff ff       	call   0x409860
40a3f8:	b8 b0 a7 40 00       	mov    $0x40a7b0,%eax
40a3fd:	e9 4e f4 ff ff       	jmp    0x409850
40a402:	ff 75 e0             	push   -0x20(%ebp)
40a405:	ff 15 04 f2 40 00    	call   *0x40f204
40a40b:	59                   	pop    %ecx
40a40c:	c3                   	ret
40a40d:	8b 54 24 08          	mov    0x8(%esp),%edx
40a411:	8d 42 0c             	lea    0xc(%edx),%eax
40a414:	8b 4a dc             	mov    -0x24(%edx),%ecx
40a417:	33 c8                	xor    %eax,%ecx
40a419:	e8 42 f4 ff ff       	call   0x409860
40a41e:	b8 24 a8 40 00       	mov    $0x40a824,%eax
40a423:	e9 28 f4 ff ff       	jmp    0x409850
40a428:	ff 75 e0             	push   -0x20(%ebp)
40a42b:	ff 15 04 f2 40 00    	call   *0x40f204
40a431:	59                   	pop    %ecx
40a432:	c3                   	ret
40a433:	8b 54 24 08          	mov    0x8(%esp),%edx
40a437:	8d 42 0c             	lea    0xc(%edx),%eax
40a43a:	8b 4a dc             	mov    -0x24(%edx),%ecx
40a43d:	33 c8                	xor    %eax,%ecx
40a43f:	e8 1c f4 ff ff       	call   0x409860
40a444:	b8 84 a8 40 00       	mov    $0x40a884,%eax
40a449:	e9 02 f4 ff ff       	jmp    0x409850