405116:	74 51                	je     0x405169
405118:	8b 45 08             	mov    0x8(%ebp),%eax
40511b:	83 e0 01             	and    $0x1,%eax
40511e:	83 c8 00             	or     $0x0,%eax
405121:	74 1c                	je     0x40513f
405123:	85 db                	test   %ebx,%ebx
405125:	75 04                	jne    0x40512b
405127:	85 f6                	test   %esi,%esi
405129:	75 76                	jne    0x4051a1
40512b:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
405131:	3b c3                	cmp    %ebx,%eax
405133:	75 2e                	jne    0x405163
405135:	85 f6                	test   %esi,%esi
405137:	78 30                	js     0x405169
405139:	3b f3                	cmp    %ebx,%esi
40513b:	76 2c                	jbe    0x405169
40513d:	eb 62                	jmp    0x4051a1
40513f:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
405145:	83 c8 00             	or     $0x0,%eax
405148:	74 53                	je     0x40519d
40514a:	85 db                	test   %ebx,%ebx
40514c:	74 1b                	je     0x405169
40514e:	85 f6                	test   %esi,%esi
405150:	79 07                	jns    0x405159
405152:	33 c0                	xor    %eax,%eax
405154:	66 89 07             	mov    %ax,(%edi)
405157:	eb 10                	jmp    0x405169
405159:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40515f:	3b c3                	cmp    %ebx,%eax
405161:	74 50                	je     0x4051b3
405163:	33 c9                	xor    %ecx,%ecx
405165:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
405169:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
40516f:	e8 c0 05 00 00       	call   0x405734
405174:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
40517b:	74 0d                	je     0x40518a
40517d:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
405183:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40518a:	5f                   	pop    %edi
40518b:	8b c6                	mov    %esi,%eax
40518d:	5e                   	pop    %esi
40518e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405191:	33 cd                	xor    %ebp,%ecx
405193:	5b                   	pop    %ebx
405194:	e8 bd dd ff ff       	call   0x402f56
405199:	8b e5                	mov    %ebp,%esp
40519b:	5d                   	pop    %ebp
40519c:	c3                   	ret
40519d:	85 db                	test   %ebx,%ebx
40519f:	75 05                	jne    0x4051a6
4051a1:	83 ce ff             	or     $0xffffffff,%esi
4051a4:	eb c3                	jmp    0x405169
4051a6:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4051ac:	3b c3                	cmp    %ebx,%eax
4051ae:	75 b3                	jne    0x405163
4051b0:	6a fe                	push   $0xfffffffe
4051b2:	5e                   	pop    %esi
4051b3:	33 c0                	xor    %eax,%eax
4051b5:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
4051ba:	eb ad                	jmp    0x405169
4051bc:	8b ff                	mov    %edi,%edi
4051be:	55                   	push   %ebp
4051bf:	8b ec                	mov    %esp,%ebp
4051c1:	81 ec 84 04 00 00    	sub    $0x484,%esp
4051c7:	a1 0c 30 42 00       	mov    0x42300c,%eax
4051cc:	33 c5                	xor    %ebp,%eax
4051ce:	89 45 fc             	mov    %eax,-0x4(%ebp)
4051d1:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4051d5:	8b 45 10             	mov    0x10(%ebp),%eax
4051d8:	53                   	push   %ebx
4051d9:	8b 5d 14             	mov    0x14(%ebp),%ebx
4051dc:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4051e2:	75 18                	jne    0x4051fc
4051e4:	e8 1e 2b 00 00       	call   0x407d07
4051e9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4051ef:	e8 3a 2a 00 00       	call   0x407c2e
4051f4:	83 c8 ff             	or     $0xffffffff,%eax
4051f7:	e9 17 01 00 00       	jmp    0x405313
4051fc:	85 db                	test   %ebx,%ebx
4051fe:	74 04                	je     0x405204
405200:	85 c0                	test   %eax,%eax
405202:	74 e0                	je     0x4051e4
405204:	56                   	push   %esi
405205:	57                   	push   %edi
405206:	ff 75 1c             	push   0x1c(%ebp)
405209:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40520f:	e8 9d 04 00 00       	call   0x4056b1
405214:	8b 4d 08             	mov    0x8(%ebp),%ecx
405217:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40521d:	33 c0                	xor    %eax,%eax
40521f:	33 d2                	xor    %edx,%edx
405221:	ab                   	stos   %eax,%es:(%edi)
405222:	ab                   	stos   %eax,%es:(%edi)
405223:	ab                   	stos   %eax,%es:(%edi)
405224:	ab                   	stos   %eax,%es:(%edi)
405225:	8b c1                	mov    %ecx,%eax
405227:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
40522d:	83 e0 02             	and    $0x2,%eax
405230:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
405236:	0b c2                	or     %edx,%eax
405238:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40523e:	89 9d 94 fb ff ff    	mov    %ebx,-0x46c(%ebp)
405244:	89 95 98 fb ff ff    	mov    %edx,-0x468(%ebp)
40524a:	75 0a                	jne    0x405256
40524c:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
405252:	85 ff                	test   %edi,%edi
405254:	75 07                	jne    0x40525d
405256:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
40525d:	ff 75 20             	push   0x20(%ebp)
405260:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
405266:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40526c:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
405272:	50                   	push   %eax
405273:	ff 75 18             	push   0x18(%ebp)
405276:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40527c:	ff 75 0c             	push   0xc(%ebp)
40527f:	51                   	push   %ecx
405280:	50                   	push   %eax
405281:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
405287:	e8 f0 03 00 00       	call   0x40567c
40528c:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
405292:	e8 87 07 00 00       	call   0x405a1e
405297:	8b f0                	mov    %eax,%esi
405299:	85 ff                	test   %edi,%edi
40529b:	74 51                	je     0x4052ee
40529d:	8b 45 08             	mov    0x8(%ebp),%eax
4052a0:	83 e0 01             	and    $0x1,%eax
4052a3:	83 c8 00             	or     $0x0,%eax
4052a6:	74 1c                	je     0x4052c4
4052a8:	85 db                	test   %ebx,%ebx
4052aa:	75 04                	jne    0x4052b0
4052ac:	85 f6                	test   %esi,%esi
4052ae:	75 76                	jne    0x405326
4052b0:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4052b6:	3b c3                	cmp    %ebx,%eax
4052b8:	75 2e                	jne    0x4052e8
4052ba:	85 f6                	test   %esi,%esi
4052bc:	78 30                	js     0x4052ee
4052be:	3b f3                	cmp    %ebx,%esi
4052c0:	76 2c                	jbe    0x4052ee
4052c2:	eb 62                	jmp    0x405326
4052c4:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
4052ca:	83 c8 00             	or     $0x0,%eax
4052cd:	74 53                	je     0x405322
4052cf:	85 db                	test   %ebx,%ebx
4052d1:	74 1b                	je     0x4052ee
4052d3:	85 f6                	test   %esi,%esi
4052d5:	79 07                	jns    0x4052de
4052d7:	33 c0                	xor    %eax,%eax
4052d9:	66 89 07             	mov    %ax,(%edi)
4052dc:	eb 10                	jmp    0x4052ee
4052de:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4052e4:	3b c3                	cmp    %ebx,%eax
4052e6:	74 50                	je     0x405338
4052e8:	33 c9                	xor    %ecx,%ecx
4052ea:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4052ee:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
4052f4:	e8 3b 04 00 00       	call   0x405734
4052f9:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
405300:	74 0d                	je     0x40530f
405302:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
405308:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40530f:	5f                   	pop    %edi
405310:	8b c6                	mov    %esi,%eax
405312:	5e                   	pop    %esi
405313:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405316:	33 cd                	xor    %ebp,%ecx
405318:	5b                   	pop    %ebx
405319:	e8 38 dc ff ff       	call   0x402f56
40531e:	8b e5                	mov    %ebp,%esp
405320:	5d                   	pop    %ebp
405321:	c3                   	ret
405322:	85 db                	test   %ebx,%ebx
405324:	75 05                	jne    0x40532b
405326:	83 ce ff             	or     $0xffffffff,%esi
405329:	eb c3                	jmp    0x4052ee
40532b:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
405331:	3b c3                	cmp    %ebx,%eax
405333:	75 b3                	jne    0x4052e8
405335:	6a fe                	push   $0xfffffffe
405337:	5e                   	pop    %esi
405338:	33 c0                	xor    %eax,%eax
40533a:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
40533f:	eb ad                	jmp    0x4052ee
405341:	8b ff                	mov    %edi,%edi
405343:	55                   	push   %ebp
405344:	8b ec                	mov    %esp,%ebp
405346:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40534a:	75 15                	jne    0x405361
40534c:	e8 b6 29 00 00       	call   0x407d07
405351:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405357:	e8 d2 28 00 00       	call   0x407c2e
40535c:	83 c8 ff             	or     $0xffffffff,%eax
40535f:	5d                   	pop    %ebp
405360:	c3                   	ret
405361:	56                   	push   %esi
405362:	8b 75 10             	mov    0x10(%ebp),%esi
405365:	85 f6                	test   %esi,%esi
405367:	74 3c                	je     0x4053a5
405369:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40536d:	76 36                	jbe    0x4053a5
40536f:	ff 75 20             	push   0x20(%ebp)
405372:	ff 75 1c             	push   0x1c(%ebp)
405375:	ff 75 18             	push   0x18(%ebp)
405378:	ff 75 14             	push   0x14(%ebp)
40537b:	56                   	push   %esi
40537c:	ff 75 0c             	push   0xc(%ebp)
40537f:	ff 75 08             	push   0x8(%ebp)
405382:	e8 b0 fc ff ff       	call   0x405037
405387:	83 c4 1c             	add    $0x1c,%esp
40538a:	85 c0                	test   %eax,%eax
40538c:	79 05                	jns    0x405393
40538e:	33 c9                	xor    %ecx,%ecx
405390:	66 89 0e             	mov    %cx,(%esi)
405393:	83 f8 fe             	cmp    $0xfffffffe,%eax
405396:	75 20                	jne    0x4053b8
405398:	e8 6a 29 00 00       	call   0x407d07
40539d:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4053a3:	eb 0b                	jmp    0x4053b0
4053a5:	e8 5d 29 00 00       	call   0x407d07
4053aa:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4053b0:	e8 79 28 00 00       	call   0x407c2e
4053b5:	83 c8 ff             	or     $0xffffffff,%eax
4053b8:	5e                   	pop    %esi
4053b9:	5d                   	pop    %ebp
4053ba:	c3                   	ret
4053bb:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
4053c2:	75 06                	jne    0x4053ca
4053c4:	b8 00 02 00 00       	mov    $0x200,%eax
4053c9:	c3                   	ret
4053ca:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
4053d0:	d1 e8                	shr    $1,%eax
4053d2:	c3                   	ret
4053d3:	8b ff                	mov    %edi,%edi
4053d5:	55                   	push   %ebp
4053d6:	8b ec                	mov    %esp,%ebp
4053d8:	51                   	push   %ecx
4053d9:	83 c8 ff             	or     $0xffffffff,%eax
4053dc:	33 d2                	xor    %edx,%edx
4053de:	56                   	push   %esi
4053df:	8b 75 08             	mov    0x8(%ebp),%esi
4053e2:	f7 f6                	div    %esi
4053e4:	57                   	push   %edi
4053e5:	83 e0 fe             	and    $0xfffffffe,%eax
4053e8:	8b f9                	mov    %ecx,%edi
4053ea:	83 f8 02             	cmp    $0x2,%eax
4053ed:	73 0f                	jae    0x4053fe
4053ef:	e8 13 29 00 00       	call   0x407d07
4053f4:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4053fa:	32 c0                	xor    %al,%al
4053fc:	eb 53                	jmp    0x405451
4053fe:	53                   	push   %ebx
4053ff:	33 db                	xor    %ebx,%ebx
405401:	03 f6                	add    %esi,%esi
405403:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
405409:	75 08                	jne    0x405413
40540b:	81 fe 00 04 00 00    	cmp    $0x400,%esi
405411:	76 08                	jbe    0x40541b
405413:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
405419:	77 04                	ja     0x40541f
40541b:	b0 01                	mov    $0x1,%al
40541d:	eb 31                	jmp    0x405450
40541f:	56                   	push   %esi
405420:	e8 39 44 00 00       	call   0x40985e
405425:	89 45 fc             	mov    %eax,-0x4(%ebp)
405428:	59                   	pop    %ecx
405429:	85 c0                	test   %eax,%eax
40542b:	74 1a                	je     0x405447
40542d:	8d 45 fc             	lea    -0x4(%ebp),%eax
405430:	50                   	push   %eax
405431:	8d 8f 04 04 00 00    	lea    0x404(%edi),%ecx
405437:	e8 12 03 00 00       	call   0x40574e
40543c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40543f:	b3 01                	mov    $0x1,%bl
405441:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
405447:	50                   	push   %eax
405448:	e8 d7 43 00 00       	call   0x409824
40544d:	59                   	pop    %ecx
40544e:	8a c3                	mov    %bl,%al
405450:	5b                   	pop    %ebx
405451:	5f                   	pop    %edi
405452:	5e                   	pop    %esi
405453:	8b e5                	mov    %ebp,%esp
405455:	5d                   	pop    %ebp
405456:	c2 04 00             	ret    $0x4
405459:	8b ff                	mov    %edi,%edi
40545b:	55                   	push   %ebp
40545c:	8b ec                	mov    %esp,%ebp
40545e:	8b 45 14             	mov    0x14(%ebp),%eax
405461:	48                   	dec    %eax
405462:	83 e8 01             	sub    $0x1,%eax
405465:	74 3d                	je     0x4054a4
405467:	83 e8 01             	sub    $0x1,%eax
40546a:	74 34                	je     0x4054a0
40546c:	83 e8 09             	sub    $0x9,%eax
40546f:	74 2f                	je     0x4054a0
405471:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
405475:	74 29                	je     0x4054a0
405477:	8b 45 08             	mov    0x8(%ebp),%eax
40547a:	33 c9                	xor    %ecx,%ecx
40547c:	83 e0 04             	and    $0x4,%eax
40547f:	b2 01                	mov    $0x1,%dl
405481:	0b c1                	or     %ecx,%eax
405483:	75 02                	jne    0x405487
405485:	8a d1                	mov    %cl,%dl
405487:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
40548c:	74 07                	je     0x405495
40548e:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
405493:	75 02                	jne    0x405497
405495:	b1 01                	mov    $0x1,%cl
405497:	33 c0                	xor    %eax,%eax
405499:	3a d1                	cmp    %cl,%dl
40549b:	0f 94 c0             	sete   %al
40549e:	5d                   	pop    %ebp
40549f:	c3                   	ret
4054a0:	b0 01                	mov    $0x1,%al
4054a2:	5d                   	pop    %ebp
4054a3:	c3                   	ret
4054a4:	32 c0                	xor    %al,%al
4054a6:	5d                   	pop    %ebp
4054a7:	c3                   	ret
4054a8:	8b ff                	mov    %edi,%edi
4054aa:	56                   	push   %esi
4054ab:	8b f1                	mov    %ecx,%esi
4054ad:	57                   	push   %edi
4054ae:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
4054b4:	e8 02 ff ff ff       	call   0x4053bb
4054b9:	85 ff                	test   %edi,%edi
4054bb:	75 04                	jne    0x4054c1
4054bd:	03 c6                	add    %esi,%eax
4054bf:	eb 02                	jmp    0x4054c3
4054c1:	03 c7                	add    %edi,%eax
4054c3:	5f                   	pop    %edi
4054c4:	5e                   	pop    %esi
4054c5:	c3                   	ret
4054c6:	8b ff                	mov    %edi,%edi
4054c8:	55                   	push   %ebp
4054c9:	8b ec                	mov    %esp,%ebp
4054cb:	53                   	push   %ebx
4054cc:	56                   	push   %esi
4054cd:	8b f1                	mov    %ecx,%esi
4054cf:	57                   	push   %edi
4054d0:	8d 4e 40             	lea    0x40(%esi),%ecx
4054d3:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
4054d9:	85 ff                	test   %edi,%edi
4054db:	75 02                	jne    0x4054df
4054dd:	8b f9                	mov    %ecx,%edi
4054df:	e8 d7 fe ff ff       	call   0x4053bb
4054e4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4054e7:	48                   	dec    %eax