403277:	8b c3                	mov    %ebx,%eax
403279:	e8 a6 00 00 00       	call   0x403324
40327e:	8b c3                	mov    %ebx,%eax
403280:	e8 8f f4 ff ff       	call   0x402714
403285:	5b                   	pop    %ebx
403286:	c3                   	ret
403287:	90                   	nop
403288:	83 c0 d8             	add    $0xffffffd8,%eax
40328b:	8b 00                	mov    (%eax),%eax
40328d:	c3                   	ret
40328e:	8b c0                	mov    %eax,%eax
403290:	84 d2                	test   %dl,%dl
403292:	74 08                	je     0x40329c
403294:	83 c4 f0             	add    $0xfffffff0,%esp
403297:	e8 88 03 00 00       	call   0x403624
40329c:	84 d2                	test   %dl,%dl
40329e:	74 0f                	je     0x4032af
4032a0:	e8 d7 03 00 00       	call   0x40367c
4032a5:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4032ac:	83 c4 0c             	add    $0xc,%esp
4032af:	c3                   	ret
4032b0:	e8 d7 03 00 00       	call   0x40368c
4032b5:	84 d2                	test   %dl,%dl
4032b7:	7e 05                	jle    0x4032be
4032b9:	e8 b6 03 00 00       	call   0x403674
4032be:	c3                   	ret
4032bf:	90                   	nop
4032c0:	85 c0                	test   %eax,%eax
4032c2:	74 07                	je     0x4032cb
4032c4:	b2 01                	mov    $0x1,%dl
4032c6:	8b 08                	mov    (%eax),%ecx
4032c8:	ff 51 fc             	call   *-0x4(%ecx)
4032cb:	c3                   	ret
4032cc:	53                   	push   %ebx
4032cd:	56                   	push   %esi
4032ce:	57                   	push   %edi
4032cf:	89 c3                	mov    %eax,%ebx
4032d1:	89 d7                	mov    %edx,%edi
4032d3:	ab                   	stos   %eax,%es:(%edi)
4032d4:	8b 4b d8             	mov    -0x28(%ebx),%ecx
4032d7:	31 c0                	xor    %eax,%eax
4032d9:	51                   	push   %ecx
4032da:	c1 e9 02             	shr    $0x2,%ecx
4032dd:	49                   	dec    %ecx
4032de:	f3 ab                	rep stos %eax,%es:(%edi)
4032e0:	59                   	pop    %ecx
4032e1:	83 e1 03             	and    $0x3,%ecx
4032e4:	f3 aa                	rep stos %al,%es:(%edi)
4032e6:	89 d0                	mov    %edx,%eax
4032e8:	89 e2                	mov    %esp,%edx
4032ea:	8b 4b b8             	mov    -0x48(%ebx),%ecx
4032ed:	85 c9                	test   %ecx,%ecx
4032ef:	74 01                	je     0x4032f2
4032f1:	51                   	push   %ecx
4032f2:	8b 5b dc             	mov    -0x24(%ebx),%ebx
4032f5:	85 db                	test   %ebx,%ebx
4032f7:	74 04                	je     0x4032fd
4032f9:	8b 1b                	mov    (%ebx),%ebx
4032fb:	eb ed                	jmp    0x4032ea
4032fd:	39 d4                	cmp    %edx,%esp
4032ff:	74 1d                	je     0x40331e
403301:	5b                   	pop    %ebx
403302:	8b 0b                	mov    (%ebx),%ecx
403304:	83 c3 04             	add    $0x4,%ebx
403307:	8b 73 10             	mov    0x10(%ebx),%esi
40330a:	85 f6                	test   %esi,%esi
40330c:	74 06                	je     0x403314
40330e:	8b 7b 14             	mov    0x14(%ebx),%edi
403311:	89 34 07             	mov    %esi,(%edi,%eax,1)
403314:	83 c3 1c             	add    $0x1c,%ebx
403317:	49                   	dec    %ecx
403318:	75 ed                	jne    0x403307
40331a:	39 d4                	cmp    %edx,%esp
40331c:	75 e3                	jne    0x403301
40331e:	5f                   	pop    %edi
40331f:	5e                   	pop    %esi
403320:	5b                   	pop    %ebx
403321:	c3                   	ret
403322:	8b c0                	mov    %eax,%eax
403324:	53                   	push   %ebx
403325:	56                   	push   %esi
403326:	89 c3                	mov    %eax,%ebx
403328:	89 c6                	mov    %eax,%esi
40332a:	8b 36                	mov    (%esi),%esi
40332c:	8b 56 c0             	mov    -0x40(%esi),%edx
40332f:	8b 76 dc             	mov    -0x24(%esi),%esi
403332:	85 d2                	test   %edx,%edx
403334:	74 07                	je     0x40333d
403336:	e8 51 17 00 00       	call   0x404a8c
40333b:	89 d8                	mov    %ebx,%eax
40333d:	85 f6                	test   %esi,%esi
40333f:	75 e9                	jne    0x40332a
403341:	5e                   	pop    %esi
403342:	5b                   	pop    %ebx
403343:	c3                   	ret
403344:	87 d1                	xchg   %edx,%ecx
403346:	81 f9 00 00 00 ff    	cmp    $0xff000000,%ecx
40334c:	73 11                	jae    0x40335f
40334e:	81 f9 00 00 00 fe    	cmp    $0xfe000000,%ecx
403354:	72 07                	jb     0x40335d
403356:	0f bf c9             	movswl %cx,%ecx
403359:	03 08                	add    (%eax),%ecx
40335b:	ff 21                	jmp    *(%ecx)
40335d:	ff e1                	jmp    *%ecx
40335f:	81 e1 ff ff ff 00    	and    $0xffffff,%ecx
403365:	01 c1                	add    %eax,%ecx
403367:	89 d0                	mov    %edx,%eax
403369:	8b 11                	mov    (%ecx),%edx
40336b:	e9 c8 25 00 00       	jmp    0x405938
403370:	c3                   	ret
403371:	8d 40 00             	lea    0x0(%eax),%eax
403374:	55                   	push   %ebp
403375:	8b ec                	mov    %esp,%ebp
403377:	83 c4 f8             	add    $0xfffffff8,%esp
40337a:	53                   	push   %ebx
40337b:	56                   	push   %esi
40337c:	57                   	push   %edi
40337d:	33 db                	xor    %ebx,%ebx
40337f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
403382:	8b f1                	mov    %ecx,%esi
403384:	89 55 fc             	mov    %edx,-0x4(%ebp)
403387:	8b f8                	mov    %eax,%edi
403389:	33 c0                	xor    %eax,%eax
40338b:	55                   	push   %ebp
40338c:	68 f8 33 40 00       	push   $0x4033f8
403391:	64 ff 30             	push   %fs:(%eax)
403394:	64 89 20             	mov    %esp,%fs:(%eax)
403397:	33 c0                	xor    %eax,%eax
403399:	89 06                	mov    %eax,(%esi)
40339b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40339e:	8b 07                	mov    (%edi),%eax
4033a0:	e8 63 00 00 00       	call   0x403408
4033a5:	8b d8                	mov    %eax,%ebx
4033a7:	85 db                	test   %ebx,%ebx
4033a9:	74 31                	je     0x4033dc
4033ab:	8b 43 14             	mov    0x14(%ebx),%eax
4033ae:	85 c0                	test   %eax,%eax
4033b0:	74 13                	je     0x4033c5
4033b2:	03 f8                	add    %eax,%edi
4033b4:	89 3e                	mov    %edi,(%esi)
4033b6:	83 3e 00             	cmpl   $0x0,(%esi)
4033b9:	74 21                	je     0x4033dc
4033bb:	8b 06                	mov    (%esi),%eax
4033bd:	50                   	push   %eax
4033be:	8b 00                	mov    (%eax),%eax
4033c0:	ff 50 04             	call   *0x4(%eax)
4033c3:	eb 17                	jmp    0x4033dc
4033c5:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4033c8:	8b 53 18             	mov    0x18(%ebx),%edx
4033cb:	8b c7                	mov    %edi,%eax
4033cd:	e8 72 ff ff ff       	call   0x403344
4033d2:	8b 55 f8             	mov    -0x8(%ebp),%edx
4033d5:	8b c6                	mov    %esi,%eax
4033d7:	e8 5c 25 00 00       	call   0x405938
4033dc:	83 3e 00             	cmpl   $0x0,(%esi)
4033df:	0f 95 c3             	setne  %bl
4033e2:	33 c0                	xor    %eax,%eax
4033e4:	5a                   	pop    %edx
4033e5:	59                   	pop    %ecx
4033e6:	59                   	pop    %ecx
4033e7:	64 89 10             	mov    %edx,%fs:(%eax)
4033ea:	68 ff 33 40 00       	push   $0x4033ff
4033ef:	8d 45 f8             	lea    -0x8(%ebp),%eax
4033f2:	e8 29 25 00 00       	call   0x405920
4033f7:	c3                   	ret
4033f8:	e9 57 06 00 00       	jmp    0x403a54
4033fd:	eb f0                	jmp    0x4033ef
4033ff:	8b c3                	mov    %ebx,%eax
403401:	5f                   	pop    %edi
403402:	5e                   	pop    %esi
403403:	5b                   	pop    %ebx
403404:	59                   	pop    %ecx
403405:	59                   	pop    %ecx
403406:	5d                   	pop    %ebp
403407:	c3                   	ret
403408:	53                   	push   %ebx
403409:	56                   	push   %esi
40340a:	89 c3                	mov    %eax,%ebx
40340c:	8b 43 b8             	mov    -0x48(%ebx),%eax
40340f:	85 c0                	test   %eax,%eax
403411:	74 29                	je     0x40343c
403413:	8b 08                	mov    (%eax),%ecx
403415:	83 c0 04             	add    $0x4,%eax
403418:	8b 32                	mov    (%edx),%esi
40341a:	3b 30                	cmp    (%eax),%esi
40341c:	75 18                	jne    0x403436
40341e:	8b 72 04             	mov    0x4(%edx),%esi
403421:	3b 70 04             	cmp    0x4(%eax),%esi
403424:	75 10                	jne    0x403436
403426:	8b 72 08             	mov    0x8(%edx),%esi
403429:	3b 70 08             	cmp    0x8(%eax),%esi
40342c:	75 08                	jne    0x403436
40342e:	8b 72 0c             	mov    0xc(%edx),%esi
403431:	3b 70 0c             	cmp    0xc(%eax),%esi
403434:	74 13                	je     0x403449
403436:	83 c0 1c             	add    $0x1c,%eax
403439:	49                   	dec    %ecx
40343a:	75 dc                	jne    0x403418
40343c:	8b 5b dc             	mov    -0x24(%ebx),%ebx
40343f:	85 db                	test   %ebx,%ebx
403441:	74 04                	je     0x403447
403443:	8b 1b                	mov    (%ebx),%ebx
403445:	eb c5                	jmp    0x40340c
403447:	31 c0                	xor    %eax,%eax
403449:	5e                   	pop    %esi
40344a:	5b                   	pop    %ebx
40344b:	c3                   	ret
40344c:	53                   	push   %ebx
40344d:	56                   	push   %esi
40344e:	8b f2                	mov    %edx,%esi
403450:	8b d8                	mov    %eax,%ebx
403452:	85 db                	test   %ebx,%ebx
403454:	74 0d                	je     0x403463
403456:	8b d6                	mov    %esi,%edx
403458:	8b 03                	mov    (%ebx),%eax
40345a:	e8 8d 00 00 00       	call   0x4034ec
40345f:	84 c0                	test   %al,%al
403461:	75 05                	jne    0x403468
403463:	33 c0                	xor    %eax,%eax
403465:	5e                   	pop    %esi
403466:	5b                   	pop    %ebx
403467:	c3                   	ret
403468:	b0 01                	mov    $0x1,%al
40346a:	5e                   	pop    %esi
40346b:	5b                   	pop    %ebx
40346c:	c3                   	ret
40346d:	8d 40 00             	lea    0x0(%eax),%eax
403470:	85 c0                	test   %eax,%eax
403472:	74 16                	je     0x40348a
403474:	89 c1                	mov    %eax,%ecx
403476:	8b 09                	mov    (%ecx),%ecx
403478:	39 d1                	cmp    %edx,%ecx
40347a:	74 0e                	je     0x40348a
40347c:	8b 49 dc             	mov    -0x24(%ecx),%ecx
40347f:	85 c9                	test   %ecx,%ecx
403481:	75 f3                	jne    0x403476
403483:	b0 0a                	mov    $0xa,%al
403485:	e9 c6 f3 ff ff       	jmp    0x402850
40348a:	c3                   	ret
40348b:	90                   	nop
40348c:	57                   	push   %edi
40348d:	96                   	xchg   %eax,%esi
40348e:	eb 02                	jmp    0x403492
403490:	8b 36                	mov    (%esi),%esi
403492:	8b 7e d0             	mov    -0x30(%esi),%edi
403495:	85 ff                	test   %edi,%edi
403497:	74 0d                	je     0x4034a6
403499:	0f b7 0f             	movzwl (%edi),%ecx
40349c:	51                   	push   %ecx
40349d:	83 c7 02             	add    $0x2,%edi
4034a0:	f2 66 af             	repnz scas %es:(%edi),%ax
4034a3:	74 0a                	je     0x4034af
4034a5:	59                   	pop    %ecx
4034a6:	8b 76 dc             	mov    -0x24(%esi),%esi
4034a9:	85 f6                	test   %esi,%esi
4034ab:	75 e3                	jne    0x403490
4034ad:	5f                   	pop    %edi
4034ae:	c3                   	ret
4034af:	58                   	pop    %eax
4034b0:	01 c0                	add    %eax,%eax
4034b2:	29 c8                	sub    %ecx,%eax
4034b4:	8b 74 47 fc          	mov    -0x4(%edi,%eax,2),%esi
4034b8:	5f                   	pop    %edi
4034b9:	c3                   	ret
4034ba:	8b c0                	mov    %eax,%eax
4034bc:	50                   	push   %eax
4034bd:	51                   	push   %ecx
4034be:	8b 00                	mov    (%eax),%eax
4034c0:	e8 c7 ff ff ff       	call   0x40348c
4034c5:	59                   	pop    %ecx
4034c6:	58                   	pop    %eax
4034c7:	74 02                	je     0x4034cb
4034c9:	ff e6                	jmp    *%esi
4034cb:	59                   	pop    %ecx
4034cc:	e9 23 f6 ff ff       	jmp    0x402af4
4034d1:	c3                   	ret
4034d2:	8b c0                	mov    %eax,%eax
4034d4:	56                   	push   %esi
4034d5:	89 d6                	mov    %edx,%esi
4034d7:	8b 00                	mov    (%eax),%eax
4034d9:	e8 ae ff ff ff       	call   0x40348c
4034de:	89 f0                	mov    %esi,%eax
4034e0:	5e                   	pop    %esi
4034e1:	75 06                	jne    0x4034e9
4034e3:	59                   	pop    %ecx
4034e4:	e9 0b f6 ff ff       	jmp    0x402af4
4034e9:	c3                   	ret
4034ea:	8b c0                	mov    %eax,%eax
4034ec:	eb 02                	jmp    0x4034f0
4034ee:	8b 00                	mov    (%eax),%eax
4034f0:	39 d0                	cmp    %edx,%eax
4034f2:	74 08                	je     0x4034fc
4034f4:	8b 40 dc             	mov    -0x24(%eax),%eax
4034f7:	85 c0                	test   %eax,%eax
4034f9:	75 f3                	jne    0x4034ee
4034fb:	c3                   	ret
4034fc:	b0 01                	mov    $0x1,%al
4034fe:	c3                   	ret
4034ff:	90                   	nop
403500:	83 c0 c4             	add    $0xffffffc4,%eax
403503:	8b 00                	mov    (%eax),%eax
403505:	c3                   	ret
403506:	8b c0                	mov    %eax,%eax
403508:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40350d:	c3                   	ret
40350e:	8b c0                	mov    %eax,%eax
403510:	c3                   	ret
403511:	8d 40 00             	lea    0x0(%eax),%eax
403514:	c3                   	ret
403515:	8d 40 00             	lea    0x0(%eax),%eax
403518:	c3                   	ret
403519:	8d 40 00             	lea    0x0(%eax),%eax
40351c:	56                   	push   %esi
40351d:	66 8b 32             	mov    (%edx),%si
403520:	66 09 f6             	or     %si,%si
403523:	74 17                	je     0x40353c
403525:	66 81 fe 00 c0       	cmp    $0xc000,%si
40352a:	73 10                	jae    0x40353c
40352c:	50                   	push   %eax
40352d:	8b 00                	mov    (%eax),%eax
40352f:	e8 58 ff ff ff       	call   0x40348c
403534:	58                   	pop    %eax
403535:	74 05                	je     0x40353c
403537:	89 f1                	mov    %esi,%ecx
403539:	5e                   	pop    %esi
40353a:	ff e1                	jmp    *%ecx
40353c:	5e                   	pop    %esi
40353d:	8b 08                	mov    (%eax),%ecx
40353f:	ff 61 f0             	jmp    *-0x10(%ecx)
403542:	c3                   	ret
403543:	90                   	nop
403544:	53                   	push   %ebx
403545:	56                   	push   %esi
403546:	57                   	push   %edi
403547:	31 c9                	xor    %ecx,%ecx
403549:	31 ff                	xor    %edi,%edi
40354b:	8a 1a                	mov    (%edx),%bl
40354d:	eb 02                	jmp    0x403551
40354f:	8b 00                	mov    (%eax),%eax
403551:	8b 70 cc             	mov    -0x34(%eax),%esi
403554:	85 f6                	test   %esi,%esi
403556:	74 15                	je     0x40356d
403558:	66 8b 3e             	mov    (%esi),%di
40355b:	83 c6 02             	add    $0x2,%esi
40355e:	8a 4e 06             	mov    0x6(%esi),%cl
403561:	38 d9                	cmp    %bl,%cl
403563:	74 15                	je     0x40357a
403565:	66 8b 0e             	mov    (%esi),%cx
403568:	01 ce                	add    %ecx,%esi
40356a:	4f                   	dec    %edi