4051c5:	df e0                	fnstsw %ax
4051c7:	f6 c4 41             	test   $0x41,%ah
4051ca:	75 11                	jne    0x4051dd
4051cc:	d9 cb                	fxch   %st(3)
4051ce:	d8 d1                	fcom   %st(1)
4051d0:	df e0                	fnstsw %ax
4051d2:	f6 c4 41             	test   $0x41,%ah
4051d5:	0f 84 3b 8c 03 00    	je     0x43de16
4051db:	d9 cb                	fxch   %st(3)
4051dd:	d8 db                	fcomp  %st(3)
4051df:	df e0                	fnstsw %ax
4051e1:	dd da                	fstp   %st(2)
4051e3:	f6 c4 41             	test   $0x41,%ah
4051e6:	75 22                	jne    0x40520a
4051e8:	de d9                	fcompp
4051ea:	df e0                	fnstsw %ax
4051ec:	f6 c4 41             	test   $0x41,%ah
4051ef:	74 14                	je     0x405205
4051f1:	33 c0                	xor    %eax,%eax
4051f3:	8b e5                	mov    %ebp,%esp
4051f5:	5d                   	pop    %ebp
4051f6:	c2 08 00             	ret    $0x8
4051f9:	47                   	inc    %edi
4051fa:	e9 45 ff ff ff       	jmp    0x405144
4051ff:	40                   	inc    %eax
405200:	e9 5a ff ff ff       	jmp    0x40515f
405205:	6a 08                	push   $0x8
405207:	58                   	pop    %eax
405208:	eb e9                	jmp    0x4051f3
40520a:	dd d9                	fstp   %st(1)
40520c:	dd d8                	fstp   %st(0)
40520e:	eb e1                	jmp    0x4051f1
405210:	55                   	push   %ebp
405211:	8b ec                	mov    %esp,%ebp
405213:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405216:	83 f9 02             	cmp    $0x2,%ecx
405219:	72 43                	jb     0x40525e
40521b:	53                   	push   %ebx
40521c:	56                   	push   %esi
40521d:	57                   	push   %edi
40521e:	6a 00                	push   $0x0
405220:	58                   	pop    %eax
405221:	8b f0                	mov    %eax,%esi
405223:	8b d0                	mov    %eax,%edx
405225:	49                   	dec    %ecx
405226:	74 2d                	je     0x405255
405228:	8b 7d 08             	mov    0x8(%ebp),%edi
40522b:	8a 3c 3a             	mov    (%edx,%edi,1),%bh
40522e:	8a 5c 3a 01          	mov    0x1(%edx,%edi,1),%bl
405232:	83 c2 02             	add    $0x2,%edx
405235:	84 ff                	test   %bh,%bh
405237:	0f 84 e8 8b 03 00    	je     0x43de25
40523d:	84 db                	test   %bl,%bl
40523f:	0f 84 f4 8b 03 00    	je     0x43de39
405245:	85 c0                	test   %eax,%eax
405247:	75 19                	jne    0x405262
405249:	3b d1                	cmp    %ecx,%edx
40524b:	72 de                	jb     0x40522b
40524d:	85 c0                	test   %eax,%eax
40524f:	75 17                	jne    0x405268
405251:	85 f6                	test   %esi,%esi
405253:	75 1a                	jne    0x40526f
405255:	33 c0                	xor    %eax,%eax
405257:	5f                   	pop    %edi
405258:	5e                   	pop    %esi
405259:	5b                   	pop    %ebx
40525a:	5d                   	pop    %ebp
40525b:	c2 08 00             	ret    $0x8
40525e:	33 c0                	xor    %eax,%eax
405260:	eb f8                	jmp    0x40525a
405262:	85 f6                	test   %esi,%esi
405264:	75 ef                	jne    0x405255
405266:	eb e1                	jmp    0x405249
405268:	6a 06                	push   $0x6
40526a:	e9 de 8b 03 00       	jmp    0x43de4d
40526f:	6a 08                	push   $0x8
405271:	e9 d7 8b 03 00       	jmp    0x43de4d
405276:	cc                   	int3
405277:	cc                   	int3
405278:	cc                   	int3
405279:	cc                   	int3
40527a:	cc                   	int3
40527b:	cc                   	int3
40527c:	cc                   	int3
40527d:	cc                   	int3
40527e:	cc                   	int3
40527f:	cc                   	int3
405280:	55                   	push   %ebp
405281:	8b ec                	mov    %esp,%ebp
405283:	51                   	push   %ecx
405284:	53                   	push   %ebx
405285:	56                   	push   %esi
405286:	8b 75 0c             	mov    0xc(%ebp),%esi
405289:	33 c0                	xor    %eax,%eax
40528b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40528e:	b3 01                	mov    $0x1,%bl
405290:	57                   	push   %edi
405291:	85 f6                	test   %esi,%esi
405293:	74 18                	je     0x4052ad
405295:	8b 7d 08             	mov    0x8(%ebp),%edi
405298:	8a 14 38             	mov    (%eax,%edi,1),%dl
40529b:	40                   	inc    %eax
40529c:	84 d2                	test   %dl,%dl
40529e:	74 3e                	je     0x4052de
4052a0:	80 fa 7f             	cmp    $0x7f,%dl
4052a3:	77 16                	ja     0x4052bb
4052a5:	3b c6                	cmp    %esi,%eax
4052a7:	72 ef                	jb     0x405298
4052a9:	84 db                	test   %bl,%bl
4052ab:	74 56                	je     0x405303
4052ad:	b8 02 00 00 00       	mov    $0x2,%eax
4052b2:	5f                   	pop    %edi
4052b3:	5e                   	pop    %esi
4052b4:	5b                   	pop    %ebx
4052b5:	8b e5                	mov    %ebp,%esp
4052b7:	5d                   	pop    %ebp
4052b8:	c2 08 00             	ret    $0x8
4052bb:	8d 4a 3e             	lea    0x3e(%edx),%ecx
4052be:	80 f9 1d             	cmp    $0x1d,%cl
4052c1:	76 22                	jbe    0x4052e5
4052c3:	8d 4a 20             	lea    0x20(%edx),%ecx
4052c6:	80 f9 0f             	cmp    $0xf,%cl
4052c9:	76 24                	jbe    0x4052ef
4052cb:	80 c2 10             	add    $0x10,%dl
4052ce:	80 fa 04             	cmp    $0x4,%dl
4052d1:	76 26                	jbe    0x4052f9
4052d3:	5f                   	pop    %edi
4052d4:	5e                   	pop    %esi
4052d5:	33 c0                	xor    %eax,%eax
4052d7:	5b                   	pop    %ebx
4052d8:	8b e5                	mov    %ebp,%esp
4052da:	5d                   	pop    %ebp
4052db:	c2 08 00             	ret    $0x8
4052de:	80 39 00             	cmpb   $0x0,(%ecx)
4052e1:	75 f0                	jne    0x4052d3
4052e3:	eb c0                	jmp    0x4052a5
4052e5:	ba 01 00 00 00       	mov    $0x1,%edx
4052ea:	e9 64 8b 03 00       	jmp    0x43de53
4052ef:	ba 02 00 00 00       	mov    $0x2,%edx
4052f4:	e9 5a 8b 03 00       	jmp    0x43de53
4052f9:	ba 03 00 00 00       	mov    $0x3,%edx
4052fe:	e9 50 8b 03 00       	jmp    0x43de53
405303:	b8 04 00 00 00       	mov    $0x4,%eax
405308:	eb a8                	jmp    0x4052b2
40530a:	55                   	push   %ebp
40530b:	8b ec                	mov    %esp,%ebp
40530d:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)
405311:	8b 45 08             	mov    0x8(%ebp),%eax
405314:	72 0c                	jb     0x405322
405316:	8a 08                	mov    (%eax),%cl
405318:	80 f9 ff             	cmp    $0xff,%cl
40531b:	74 1a                	je     0x405337
40531d:	80 f9 fe             	cmp    $0xfe,%cl
405320:	74 22                	je     0x405344
405322:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
405326:	72 09                	jb     0x405331
405328:	80 38 ef             	cmpb   $0xef,(%eax)
40532b:	0f 84 4f 8b 03 00    	je     0x43de80
405331:	33 c0                	xor    %eax,%eax
405333:	5d                   	pop    %ebp
405334:	c2 08 00             	ret    $0x8
405337:	80 78 01 fe          	cmpb   $0xfe,0x1(%eax)
40533b:	75 e0                	jne    0x40531d
40533d:	6a 05                	push   $0x5
40533f:	e9 36 8b 03 00       	jmp    0x43de7a
405344:	80 78 01 ff          	cmpb   $0xff,0x1(%eax)
405348:	75 d8                	jne    0x405322
40534a:	6a 07                	push   $0x7
40534c:	e9 29 8b 03 00       	jmp    0x43de7a
405351:	33 c0                	xor    %eax,%eax
405353:	83 f9 07             	cmp    $0x7,%ecx
405356:	74 12                	je     0x40536a
405358:	83 f9 05             	cmp    $0x5,%ecx
40535b:	74 0d                	je     0x40536a
40535d:	83 f9 03             	cmp    $0x3,%ecx
405360:	74 01                	je     0x405363
405362:	c3                   	ret
405363:	6a 03                	push   $0x3
405365:	e9 2c 8b 03 00       	jmp    0x43de96
40536a:	6a 02                	push   $0x2
40536c:	e9 25 8b 03 00       	jmp    0x43de96
405371:	56                   	push   %esi
405372:	8b f1                	mov    %ecx,%esi
405374:	8b 46 04             	mov    0x4(%esi),%eax
405377:	ff 08                	decl   (%eax)
405379:	75 11                	jne    0x40538c
40537b:	ff 76 04             	push   0x4(%esi)
40537e:	e8 e9 bc 01 00       	call   0x42106c
405383:	ff 36                	push   (%esi)
405385:	e8 e2 bc 01 00       	call   0x42106c
40538a:	59                   	pop    %ecx
40538b:	59                   	pop    %ecx
40538c:	5e                   	pop    %esi
40538d:	c3                   	ret
40538e:	55                   	push   %ebp
40538f:	8b ec                	mov    %esp,%ebp
405391:	8b 45 08             	mov    0x8(%ebp),%eax
405394:	56                   	push   %esi
405395:	8b f1                	mov    %ecx,%esi
405397:	6a 04                	push   $0x4
405399:	89 06                	mov    %eax,(%esi)
40539b:	e8 56 bc 01 00       	call   0x420ff6
4053a0:	59                   	pop    %ecx
4053a1:	85 c0                	test   %eax,%eax
4053a3:	74 10                	je     0x4053b5
4053a5:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4053ab:	89 46 04             	mov    %eax,0x4(%esi)
4053ae:	8b c6                	mov    %esi,%eax
4053b0:	5e                   	pop    %esi
4053b1:	5d                   	pop    %ebp
4053b2:	c2 04 00             	ret    $0x4
4053b5:	33 c0                	xor    %eax,%eax
4053b7:	eb f2                	jmp    0x4053ab
4053b9:	56                   	push   %esi
4053ba:	8b f1                	mov    %ecx,%esi
4053bc:	56                   	push   %esi
4053bd:	e8 98 e4 01 00       	call   0x42385a
4053c2:	59                   	pop    %ecx
4053c3:	85 c0                	test   %eax,%eax
4053c5:	74 0b                	je     0x4053d2
4053c7:	56                   	push   %esi
4053c8:	e8 b0 e4 01 00       	call   0x42387d
4053cd:	59                   	pop    %ecx
4053ce:	85 c0                	test   %eax,%eax
4053d0:	75 04                	jne    0x4053d6
4053d2:	33 c0                	xor    %eax,%eax
4053d4:	5e                   	pop    %esi
4053d5:	c3                   	ret
4053d6:	33 c0                	xor    %eax,%eax
4053d8:	40                   	inc    %eax
4053d9:	5e                   	pop    %esi
4053da:	c3                   	ret
4053db:	f7 41 28 00 80 00 00 	testl  $0x8000,0x28(%ecx)
4053e2:	74 0d                	je     0x4053f1
4053e4:	8b 41 30             	mov    0x30(%ecx),%eax
4053e7:	6a 00                	push   $0x0
4053e9:	99                   	cltd
4053ea:	52                   	push   %edx
4053eb:	50                   	push   %eax
4053ec:	e8 5d 08 00 00       	call   0x405c4e
4053f1:	c3                   	ret
4053f2:	cc                   	int3
4053f3:	cc                   	int3
4053f4:	cc                   	int3
4053f5:	cc                   	int3
4053f6:	cc                   	int3
4053f7:	cc                   	int3
4053f8:	cc                   	int3
4053f9:	cc                   	int3
4053fa:	cc                   	int3
4053fb:	cc                   	int3
4053fc:	cc                   	int3
4053fd:	cc                   	int3
4053fe:	cc                   	int3
4053ff:	cc                   	int3
405400:	55                   	push   %ebp
405401:	8b ec                	mov    %esp,%ebp
405403:	83 ec 10             	sub    $0x10,%esp
405406:	53                   	push   %ebx
405407:	8b 5d 08             	mov    0x8(%ebp),%ebx
40540a:	56                   	push   %esi
40540b:	57                   	push   %edi
40540c:	8b f9                	mov    %ecx,%edi
40540e:	8b cb                	mov    %ebx,%ecx
405410:	e8 1a 06 00 00       	call   0x405a2f
405415:	32 c0                	xor    %al,%al
405417:	88 45 ff             	mov    %al,-0x1(%ebp)
40541a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
405420:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
405424:	0f 84 6e 8a 03 00    	je     0x43de98
40542a:	33 f6                	xor    %esi,%esi
40542c:	8d 64 24 00          	lea    0x0(%esp),%esp
405430:	8b 47 0c             	mov    0xc(%edi),%eax
405433:	3b 47 08             	cmp    0x8(%edi),%eax
405436:	0f 84 dd 00 00 00    	je     0x405519
40543c:	8b 4f 0c             	mov    0xc(%edi),%ecx
40543f:	8b 47 04             	mov    0x4(%edi),%eax
405442:	8a 04 01             	mov    (%ecx,%eax,1),%al
405445:	88 44 35 0b          	mov    %al,0xb(%ebp,%esi,1)
405449:	46                   	inc    %esi
40544a:	8d 41 01             	lea    0x1(%ecx),%eax
40544d:	89 47 0c             	mov    %eax,0xc(%edi)
405450:	83 fe 01             	cmp    $0x1,%esi
405453:	72 db                	jb     0x405430
405455:	01 77 10             	add    %esi,0x10(%edi)
405458:	83 57 14 00          	adcl   $0x0,0x14(%edi)
40545c:	85 f6                	test   %esi,%esi
40545e:	0f 84 e3 00 00 00    	je     0x405547
405464:	8a 45 0b             	mov    0xb(%ebp),%al
405467:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40546b:	3c 0d                	cmp    $0xd,%al
40546d:	74 39                	je     0x4054a8
40546f:	3c 0a                	cmp    $0xa,%al
405471:	74 50                	je     0x4054c3
405473:	8b 4b 0c             	mov    0xc(%ebx),%ecx
405476:	8b 01                	mov    (%ecx),%eax
405478:	83 f8 01             	cmp    $0x1,%eax
40547b:	0f 8f 46 8a 03 00    	jg     0x43dec7
405481:	8b 43 04             	mov    0x4(%ebx),%eax
405484:	83 c0 02             	add    $0x2,%eax
405487:	39 43 08             	cmp    %eax,0x8(%ebx)
40548a:	72 42                	jb     0x4054ce
40548c:	8b 53 04             	mov    0x4(%ebx),%edx
40548f:	8b 0b                	mov    (%ebx),%ecx
405491:	8a 45 0b             	mov    0xb(%ebp),%al
405494:	88 04 0a             	mov    %al,(%edx,%ecx,1)
405497:	ff 43 04             	incl   0x4(%ebx)
40549a:	8b 4b 04             	mov    0x4(%ebx),%ecx
40549d:	8b 03                	mov    (%ebx),%eax
40549f:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
4054a3:	e9 78 ff ff ff       	jmp    0x405420
4054a8:	6a 01                	push   $0x1
4054aa:	8d 45 0b             	lea    0xb(%ebp),%eax
4054ad:	8b cf                	mov    %edi,%ecx
4054af:	50                   	push   %eax
4054b0:	e8 6b 08 00 00       	call   0x405d20
4054b5:	85 c0                	test   %eax,%eax
4054b7:	74 0a                	je     0x4054c3
4054b9:	80 7d 0b 0a          	cmpb   $0xa,0xb(%ebp)
4054bd:	0f 85 f9 8a 03 00    	jne    0x43dfbc
4054c3:	5f                   	pop    %edi
4054c4:	5e                   	pop    %esi
4054c5:	b0 01                	mov    $0x1,%al
4054c7:	5b                   	pop    %ebx
4054c8:	8b e5                	mov    %ebp,%esp
4054ca:	5d                   	pop    %ebp
4054cb:	c2 04 00             	ret    $0x4
4054ce:	3d c2 41 00 00       	cmp    $0x41c2,%eax
4054d3:	0f 83 21 8a 03 00    	jae    0x43defa
4054d9:	03 c0                	add    %eax,%eax
4054db:	89 43 08             	mov    %eax,0x8(%ebx)
4054de:	85 c0                	test   %eax,%eax
4054e0:	74 79                	je     0x40555b
4054e2:	83 c0 0f             	add    $0xf,%eax
4054e5:	83 e0 f0             	and    $0xfffffff0,%eax
4054e8:	50                   	push   %eax
4054e9:	89 43 08             	mov    %eax,0x8(%ebx)
4054ec:	e8 05 bb 01 00       	call   0x420ff6
4054f1:	8b f0                	mov    %eax,%esi
4054f3:	83 c4 04             	add    $0x4,%esp
4054f6:	8b 03                	mov    (%ebx),%eax
4054f8:	85 c0                	test   %eax,%eax
4054fa:	74 16                	je     0x405512
4054fc:	8b 4b 04             	mov    0x4(%ebx),%ecx
4054ff:	41                   	inc    %ecx
405500:	51                   	push   %ecx
405501:	50                   	push   %eax
405502:	56                   	push   %esi
405503:	e8 78 bb 01 00       	call   0x421080
405508:	ff 33                	push   (%ebx)