40314f:	e8 58 e1 ff ff       	call   0x4012ac
403154:	c3                   	ret
403155:	e9 66 08 00 00       	jmp    0x4039c0
40315a:	eb ef                	jmp    0x40314b
40315c:	66 a1 20 d0 45 00    	mov    0x45d020,%ax
403162:	66 25 c0 ff          	and    $0xffc0,%ax
403166:	66 8b 55 f8          	mov    -0x8(%ebp),%dx
40316a:	66 83 e2 3f          	and    $0x3f,%dx
40316e:	66 0b c2             	or     %dx,%ax
403171:	66 a3 20 d0 45 00    	mov    %ax,0x45d020
403177:	8b e5                	mov    %ebp,%esp
403179:	5d                   	pop    %ebp
40317a:	c3                   	ret
40317b:	00 53 4f             	add    %dl,0x4f(%ebx)
40317e:	46                   	inc    %esi
40317f:	54                   	push   %esp
403180:	57                   	push   %edi
403181:	41                   	inc    %ecx
403182:	52                   	push   %edx
403183:	45                   	inc    %ebp
403184:	5c                   	pop    %esp
403185:	42                   	inc    %edx
403186:	6f                   	outsl  %ds:(%esi),(%dx)
403187:	72 6c                	jb     0x4031f5
403189:	61                   	popa
40318a:	6e                   	outsb  %ds:(%esi),(%dx)
40318b:	64 5c                	fs pop %esp
40318d:	44                   	inc    %esp
40318e:	65 6c                	gs insb (%dx),%es:(%edi)
403190:	70 68                	jo     0x4031fa
403192:	69 5c 52 54 4c 00 46 	imul   $0x5046004c,0x54(%edx,%edx,2),%ebx
403199:	50
40319a:	55                   	push   %ebp
40319b:	4d                   	dec    %ebp
40319c:	61                   	popa
40319d:	73 6b                	jae    0x40320a
40319f:	56                   	push   %esi
4031a0:	61                   	popa
4031a1:	6c                   	insb   (%dx),%es:(%edi)
4031a2:	75 65                	jne    0x403209
4031a4:	00 00                	add    %al,(%eax)
4031a6:	00 00                	add    %al,(%eax)
4031a8:	db e3                	fninit
4031aa:	9b d9 2d 20 d0 45 00 	fldcw  0x45d020
4031b1:	c3                   	ret
4031b2:	8b c0                	mov    %eax,%eax
4031b4:	8b 00                	mov    (%eax),%eax
4031b6:	89 c2                	mov    %eax,%edx
4031b8:	8b c2                	mov    %edx,%eax
4031ba:	c3                   	ret
4031bb:	90                   	nop
4031bc:	56                   	push   %esi
4031bd:	57                   	push   %edi
4031be:	89 d7                	mov    %edx,%edi
4031c0:	8b 70 d4             	mov    -0x2c(%eax),%esi
4031c3:	31 c9                	xor    %ecx,%ecx
4031c5:	8a 0e                	mov    (%esi),%cl
4031c7:	41                   	inc    %ecx
4031c8:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4031ca:	5f                   	pop    %edi
4031cb:	5e                   	pop    %esi
4031cc:	c3                   	ret
4031cd:	8d 40 00             	lea    0x0(%eax),%eax
4031d0:	53                   	push   %ebx
4031d1:	31 db                	xor    %ebx,%ebx
4031d3:	09 d2                	or     %edx,%edx
4031d5:	74 1c                	je     0x4031f3
4031d7:	8b 40 d4             	mov    -0x2c(%eax),%eax
4031da:	31 c9                	xor    %ecx,%ecx
4031dc:	8a 08                	mov    (%eax),%cl
4031de:	3b 4a fc             	cmp    -0x4(%edx),%ecx
4031e1:	75 10                	jne    0x4031f3
4031e3:	4a                   	dec    %edx
4031e4:	8a 3c 01             	mov    (%ecx,%eax,1),%bh
4031e7:	32 3c 11             	xor    (%ecx,%edx,1),%bh
4031ea:	80 e7 df             	and    $0xdf,%bh
4031ed:	75 04                	jne    0x4031f3
4031ef:	49                   	dec    %ecx
4031f0:	75 f2                	jne    0x4031e4
4031f2:	43                   	inc    %ebx
4031f3:	88 d8                	mov    %bl,%al
4031f5:	5b                   	pop    %ebx
4031f6:	c3                   	ret
4031f7:	90                   	nop
4031f8:	8b 40 dc             	mov    -0x24(%eax),%eax
4031fb:	85 c0                	test   %eax,%eax
4031fd:	74 02                	je     0x403201
4031ff:	8b 00                	mov    (%eax),%eax
403201:	c3                   	ret
403202:	8b c0                	mov    %eax,%eax
403204:	53                   	push   %ebx
403205:	8b d8                	mov    %eax,%ebx
403207:	8b c3                	mov    %ebx,%eax
403209:	e8 26 00 00 00       	call   0x403234
40320e:	e8 a9 f4 ff ff       	call   0x4026bc
403213:	8b d0                	mov    %eax,%edx
403215:	8b c3                	mov    %ebx,%eax
403217:	e8 5c 00 00 00       	call   0x403278
40321c:	5b                   	pop    %ebx
40321d:	c3                   	ret
40321e:	8b c0                	mov    %eax,%eax
403220:	53                   	push   %ebx
403221:	8b d8                	mov    %eax,%ebx
403223:	8b c3                	mov    %ebx,%eax
403225:	e8 a6 00 00 00       	call   0x4032d0
40322a:	8b c3                	mov    %ebx,%eax
40322c:	e8 ab f4 ff ff       	call   0x4026dc
403231:	5b                   	pop    %ebx
403232:	c3                   	ret
403233:	90                   	nop
403234:	83 c0 d8             	add    $0xffffffd8,%eax
403237:	8b 00                	mov    (%eax),%eax
403239:	c3                   	ret
40323a:	8b c0                	mov    %eax,%eax
40323c:	84 d2                	test   %dl,%dl
40323e:	74 08                	je     0x403248
403240:	83 c4 f0             	add    $0xfffffff0,%esp
403243:	e8 48 03 00 00       	call   0x403590
403248:	84 d2                	test   %dl,%dl
40324a:	74 0f                	je     0x40325b
40324c:	e8 97 03 00 00       	call   0x4035e8
403251:	64 8f 05 00 00 00 00 	pop    %fs:0x0
403258:	83 c4 0c             	add    $0xc,%esp
40325b:	c3                   	ret
40325c:	e8 97 03 00 00       	call   0x4035f8
403261:	84 d2                	test   %dl,%dl
403263:	7e 05                	jle    0x40326a
403265:	e8 76 03 00 00       	call   0x4035e0
40326a:	c3                   	ret
40326b:	90                   	nop
40326c:	85 c0                	test   %eax,%eax
40326e:	74 07                	je     0x403277
403270:	b2 01                	mov    $0x1,%dl
403272:	8b 08                	mov    (%eax),%ecx
403274:	ff 51 fc             	call   *-0x4(%ecx)
403277:	c3                   	ret
403278:	53                   	push   %ebx
403279:	56                   	push   %esi
40327a:	57                   	push   %edi
40327b:	89 c3                	mov    %eax,%ebx
40327d:	89 d7                	mov    %edx,%edi
40327f:	ab                   	stos   %eax,%es:(%edi)
403280:	8b 4b d8             	mov    -0x28(%ebx),%ecx
403283:	31 c0                	xor    %eax,%eax
403285:	51                   	push   %ecx
403286:	c1 e9 02             	shr    $0x2,%ecx
403289:	49                   	dec    %ecx
40328a:	f3 ab                	rep stos %eax,%es:(%edi)
40328c:	59                   	pop    %ecx
40328d:	83 e1 03             	and    $0x3,%ecx
403290:	f3 aa                	rep stos %al,%es:(%edi)
403292:	89 d0                	mov    %edx,%eax
403294:	89 e2                	mov    %esp,%edx
403296:	8b 4b b8             	mov    -0x48(%ebx),%ecx
403299:	85 c9                	test   %ecx,%ecx
40329b:	74 01                	je     0x40329e
40329d:	51                   	push   %ecx
40329e:	8b 5b dc             	mov    -0x24(%ebx),%ebx
4032a1:	85 db                	test   %ebx,%ebx
4032a3:	74 04                	je     0x4032a9
4032a5:	8b 1b                	mov    (%ebx),%ebx
4032a7:	eb ed                	jmp    0x403296
4032a9:	39 d4                	cmp    %edx,%esp
4032ab:	74 1d                	je     0x4032ca
4032ad:	5b                   	pop    %ebx
4032ae:	8b 0b                	mov    (%ebx),%ecx
4032b0:	83 c3 04             	add    $0x4,%ebx
4032b3:	8b 73 10             	mov    0x10(%ebx),%esi
4032b6:	85 f6                	test   %esi,%esi
4032b8:	74 06                	je     0x4032c0
4032ba:	8b 7b 14             	mov    0x14(%ebx),%edi
4032bd:	89 34 07             	mov    %esi,(%edi,%eax,1)
4032c0:	83 c3 1c             	add    $0x1c,%ebx
4032c3:	49                   	dec    %ecx
4032c4:	75 ed                	jne    0x4032b3
4032c6:	39 d4                	cmp    %edx,%esp
4032c8:	75 e3                	jne    0x4032ad
4032ca:	5f                   	pop    %edi
4032cb:	5e                   	pop    %esi
4032cc:	5b                   	pop    %ebx
4032cd:	c3                   	ret
4032ce:	8b c0                	mov    %eax,%eax
4032d0:	53                   	push   %ebx
4032d1:	56                   	push   %esi
4032d2:	89 c3                	mov    %eax,%ebx
4032d4:	89 c6                	mov    %eax,%esi
4032d6:	8b 36                	mov    (%esi),%esi
4032d8:	8b 56 c0             	mov    -0x40(%esi),%edx
4032db:	8b 76 dc             	mov    -0x24(%esi),%esi
4032de:	85 d2                	test   %edx,%edx
4032e0:	74 07                	je     0x4032e9
4032e2:	e8 11 17 00 00       	call   0x4049f8
4032e7:	89 d8                	mov    %ebx,%eax
4032e9:	85 f6                	test   %esi,%esi
4032eb:	75 e9                	jne    0x4032d6
4032ed:	5e                   	pop    %esi
4032ee:	5b                   	pop    %ebx
4032ef:	c3                   	ret
4032f0:	87 d1                	xchg   %edx,%ecx
4032f2:	81 f9 00 00 00 ff    	cmp    $0xff000000,%ecx
4032f8:	73 11                	jae    0x40330b
4032fa:	81 f9 00 00 00 fe    	cmp    $0xfe000000,%ecx
403300:	72 07                	jb     0x403309
403302:	0f bf c9             	movswl %cx,%ecx
403305:	03 08                	add    (%eax),%ecx
403307:	ff 21                	jmp    *(%ecx)
403309:	ff e1                	jmp    *%ecx
40330b:	81 e1 ff ff ff 00    	and    $0xffffff,%ecx
403311:	01 c1                	add    %eax,%ecx
403313:	89 d0                	mov    %edx,%eax
403315:	8b 11                	mov    (%ecx),%edx
403317:	e9 58 23 00 00       	jmp    0x405674
40331c:	c3                   	ret
40331d:	8d 40 00             	lea    0x0(%eax),%eax
403320:	55                   	push   %ebp
403321:	8b ec                	mov    %esp,%ebp
403323:	83 c4 f8             	add    $0xfffffff8,%esp
403326:	53                   	push   %ebx
403327:	56                   	push   %esi
403328:	57                   	push   %edi
403329:	33 db                	xor    %ebx,%ebx
40332b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40332e:	8b f1                	mov    %ecx,%esi
403330:	89 55 fc             	mov    %edx,-0x4(%ebp)
403333:	8b f8                	mov    %eax,%edi
403335:	33 c0                	xor    %eax,%eax
403337:	55                   	push   %ebp
403338:	68 a4 33 40 00       	push   $0x4033a4
40333d:	64 ff 30             	push   %fs:(%eax)
403340:	64 89 20             	mov    %esp,%fs:(%eax)
403343:	33 c0                	xor    %eax,%eax
403345:	89 06                	mov    %eax,(%esi)
403347:	8b 55 fc             	mov    -0x4(%ebp),%edx
40334a:	8b 07                	mov    (%edi),%eax
40334c:	e8 63 00 00 00       	call   0x4033b4
403351:	8b d8                	mov    %eax,%ebx
403353:	85 db                	test   %ebx,%ebx
403355:	74 31                	je     0x403388
403357:	8b 43 14             	mov    0x14(%ebx),%eax
40335a:	85 c0                	test   %eax,%eax
40335c:	74 13                	je     0x403371
40335e:	03 f8                	add    %eax,%edi
403360:	89 3e                	mov    %edi,(%esi)
403362:	83 3e 00             	cmpl   $0x0,(%esi)
403365:	74 21                	je     0x403388
403367:	8b 06                	mov    (%esi),%eax
403369:	50                   	push   %eax
40336a:	8b 00                	mov    (%eax),%eax
40336c:	ff 50 04             	call   *0x4(%eax)
40336f:	eb 17                	jmp    0x403388
403371:	8d 4d f8             	lea    -0x8(%ebp),%ecx
403374:	8b 53 18             	mov    0x18(%ebx),%edx
403377:	8b c7                	mov    %edi,%eax
403379:	e8 72 ff ff ff       	call   0x4032f0
40337e:	8b 55 f8             	mov    -0x8(%ebp),%edx
403381:	8b c6                	mov    %esi,%eax
403383:	e8 ec 22 00 00       	call   0x405674
403388:	83 3e 00             	cmpl   $0x0,(%esi)
40338b:	0f 95 c3             	setne  %bl
40338e:	33 c0                	xor    %eax,%eax
403390:	5a                   	pop    %edx
403391:	59                   	pop    %ecx
403392:	59                   	pop    %ecx
403393:	64 89 10             	mov    %edx,%fs:(%eax)
403396:	68 ab 33 40 00       	push   $0x4033ab
40339b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40339e:	e8 b9 22 00 00       	call   0x40565c
4033a3:	c3                   	ret
4033a4:	e9 17 06 00 00       	jmp    0x4039c0
4033a9:	eb f0                	jmp    0x40339b
4033ab:	8b c3                	mov    %ebx,%eax
4033ad:	5f                   	pop    %edi
4033ae:	5e                   	pop    %esi
4033af:	5b                   	pop    %ebx
4033b0:	59                   	pop    %ecx
4033b1:	59                   	pop    %ecx
4033b2:	5d                   	pop    %ebp
4033b3:	c3                   	ret
4033b4:	53                   	push   %ebx
4033b5:	56                   	push   %esi
4033b6:	89 c3                	mov    %eax,%ebx
4033b8:	8b 43 b8             	mov    -0x48(%ebx),%eax
4033bb:	85 c0                	test   %eax,%eax
4033bd:	74 29                	je     0x4033e8
4033bf:	8b 08                	mov    (%eax),%ecx
4033c1:	83 c0 04             	add    $0x4,%eax
4033c4:	8b 32                	mov    (%edx),%esi
4033c6:	3b 30                	cmp    (%eax),%esi
4033c8:	75 18                	jne    0x4033e2
4033ca:	8b 72 04             	mov    0x4(%edx),%esi
4033cd:	3b 70 04             	cmp    0x4(%eax),%esi
4033d0:	75 10                	jne    0x4033e2
4033d2:	8b 72 08             	mov    0x8(%edx),%esi
4033d5:	3b 70 08             	cmp    0x8(%eax),%esi
4033d8:	75 08                	jne    0x4033e2
4033da:	8b 72 0c             	mov    0xc(%edx),%esi
4033dd:	3b 70 0c             	cmp    0xc(%eax),%esi
4033e0:	74 13                	je     0x4033f5
4033e2:	83 c0 1c             	add    $0x1c,%eax
4033e5:	49                   	dec    %ecx
4033e6:	75 dc                	jne    0x4033c4
4033e8:	8b 5b dc             	mov    -0x24(%ebx),%ebx
4033eb:	85 db                	test   %ebx,%ebx
4033ed:	74 04                	je     0x4033f3
4033ef:	8b 1b                	mov    (%ebx),%ebx
4033f1:	eb c5                	jmp    0x4033b8
4033f3:	31 c0                	xor    %eax,%eax
4033f5:	5e                   	pop    %esi
4033f6:	5b                   	pop    %ebx
4033f7:	c3                   	ret
4033f8:	53                   	push   %ebx
4033f9:	56                   	push   %esi
4033fa:	8b f2                	mov    %edx,%esi
4033fc:	8b d8                	mov    %eax,%ebx
4033fe:	85 db                	test   %ebx,%ebx
403400:	74 0d                	je     0x40340f
403402:	8b d6                	mov    %esi,%edx
403404:	8b 03                	mov    (%ebx),%eax
403406:	e8 8d 00 00 00       	call   0x403498
40340b:	84 c0                	test   %al,%al
40340d:	75 05                	jne    0x403414
40340f:	33 c0                	xor    %eax,%eax
403411:	5e                   	pop    %esi
403412:	5b                   	pop    %ebx
403413:	c3                   	ret
403414:	b0 01                	mov    $0x1,%al
403416:	5e                   	pop    %esi
403417:	5b                   	pop    %ebx
403418:	c3                   	ret
403419:	8d 40 00             	lea    0x0(%eax),%eax
40341c:	85 c0                	test   %eax,%eax
40341e:	74 16                	je     0x403436
403420:	89 c1                	mov    %eax,%ecx
403422:	8b 09                	mov    (%ecx),%ecx
403424:	39 d1                	cmp    %edx,%ecx
403426:	74 0e                	je     0x403436
403428:	8b 49 dc             	mov    -0x24(%ecx),%ecx
40342b:	85 c9                	test   %ecx,%ecx
40342d:	75 f3                	jne    0x403422
40342f:	b0 0a                	mov    $0xa,%al
403431:	e9 e2 f3 ff ff       	jmp    0x402818
403436:	c3                   	ret
403437:	90                   	nop
403438:	57                   	push   %edi
403439:	96                   	xchg   %eax,%esi
40343a:	eb 02                	jmp    0x40343e
40343c:	8b 36                	mov    (%esi),%esi
40343e:	8b 7e d0             	mov    -0x30(%esi),%edi
403441:	85 ff                	test   %edi,%edi
403443:	74 0d                	je     0x403452