404e97:	88 0e                	mov    %cl,(%esi)
404e99:	4e                   	dec    %esi
404e9a:	eb bd                	jmp    0x404e59
404e9c:	8d 85 fb fd ff ff    	lea    -0x205(%ebp),%eax
404ea2:	2b c6                	sub    %esi,%eax
404ea4:	46                   	inc    %esi
404ea5:	f7 85 f8 fb ff ff 00 	testl  $0x200,-0x408(%ebp)
404eac:	02 00 00
404eaf:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
404eb5:	89 b5 f0 fb ff ff    	mov    %esi,-0x410(%ebp)
404ebb:	74 5f                	je     0x404f1c
404ebd:	85 c0                	test   %eax,%eax
404ebf:	74 07                	je     0x404ec8
404ec1:	8b c6                	mov    %esi,%eax
404ec3:	80 38 30             	cmpb   $0x30,(%eax)
404ec6:	74 54                	je     0x404f1c
404ec8:	ff 8d f0 fb ff ff    	decl   -0x410(%ebp)
404ece:	8b 85 f0 fb ff ff    	mov    -0x410(%ebp),%eax
404ed4:	ff 85 ec fb ff ff    	incl   -0x414(%ebp)
404eda:	c6 00 30             	movb   $0x30,(%eax)
404edd:	eb 3d                	jmp    0x404f1c
404edf:	85 ff                	test   %edi,%edi
404ee1:	75 0b                	jne    0x404eee
404ee3:	a1 e4 2d 41 00       	mov    0x412de4,%eax
404ee8:	89 85 f0 fb ff ff    	mov    %eax,-0x410(%ebp)
404eee:	8b 85 f0 fb ff ff    	mov    -0x410(%ebp),%eax
404ef4:	c7 85 d4 fb ff ff 01 	movl   $0x1,-0x42c(%ebp)
404efb:	00 00 00
404efe:	eb 0a                	jmp    0x404f0a
404f00:	4b                   	dec    %ebx
404f01:	66 83 38 00          	cmpw   $0x0,(%eax)
404f05:	74 07                	je     0x404f0e
404f07:	83 c0 02             	add    $0x2,%eax
404f0a:	85 db                	test   %ebx,%ebx
404f0c:	75 f2                	jne    0x404f00
404f0e:	2b 85 f0 fb ff ff    	sub    -0x410(%ebp),%eax
404f14:	d1 f8                	sar    $1,%eax
404f16:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
404f1c:	83 bd b8 fb ff ff 00 	cmpl   $0x0,-0x448(%ebp)
404f23:	0f 85 a8 01 00 00    	jne    0x4050d1
404f29:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
404f2f:	a8 40                	test   $0x40,%al
404f31:	74 2b                	je     0x404f5e
404f33:	a9 00 01 00 00       	test   $0x100,%eax
404f38:	74 04                	je     0x404f3e
404f3a:	6a 2d                	push   $0x2d
404f3c:	eb 0e                	jmp    0x404f4c
404f3e:	a8 01                	test   $0x1,%al
404f40:	74 04                	je     0x404f46
404f42:	6a 2b                	push   $0x2b
404f44:	eb 06                	jmp    0x404f4c
404f46:	a8 02                	test   $0x2,%al
404f48:	74 14                	je     0x404f5e
404f4a:	6a 20                	push   $0x20
404f4c:	59                   	pop    %ecx
404f4d:	66 89 8d cc fb ff ff 	mov    %cx,-0x434(%ebp)
404f54:	c7 85 d8 fb ff ff 01 	movl   $0x1,-0x428(%ebp)
404f5b:	00 00 00
404f5e:	8b bd d0 fb ff ff    	mov    -0x430(%ebp),%edi
404f64:	2b bd ec fb ff ff    	sub    -0x414(%ebp),%edi
404f6a:	2b bd d8 fb ff ff    	sub    -0x428(%ebp),%edi
404f70:	89 bd e4 fb ff ff    	mov    %edi,-0x41c(%ebp)
404f76:	a8 0c                	test   $0xc,%al
404f78:	75 24                	jne    0x404f9e
404f7a:	eb 1e                	jmp    0x404f9a
404f7c:	8b 85 dc fb ff ff    	mov    -0x424(%ebp),%eax
404f82:	6a 20                	push   $0x20
404f84:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
404f8a:	4f                   	dec    %edi
404f8b:	e8 f2 f5 ff ff       	call   0x404582
404f90:	83 bd e8 fb ff ff ff 	cmpl   $0xffffffff,-0x418(%ebp)
404f97:	59                   	pop    %ecx
404f98:	74 04                	je     0x404f9e
404f9a:	85 ff                	test   %edi,%edi
404f9c:	7f de                	jg     0x404f7c
404f9e:	ff b5 d8 fb ff ff    	push   -0x428(%ebp)
404fa4:	8b bd 9c fb ff ff    	mov    -0x464(%ebp),%edi
404faa:	8b 9d dc fb ff ff    	mov    -0x424(%ebp),%ebx
404fb0:	8d 85 cc fb ff ff    	lea    -0x434(%ebp),%eax
404fb6:	50                   	push   %eax
404fb7:	8d 85 e8 fb ff ff    	lea    -0x418(%ebp),%eax
404fbd:	e8 53 38 00 00       	call   0x408815
404fc2:	f6 85 f8 fb ff ff 08 	testb  $0x8,-0x408(%ebp)
404fc9:	59                   	pop    %ecx
404fca:	59                   	pop    %ecx
404fcb:	74 2f                	je     0x404ffc
404fcd:	f6 85 f8 fb ff ff 04 	testb  $0x4,-0x408(%ebp)
404fd4:	75 26                	jne    0x404ffc
404fd6:	8b bd e4 fb ff ff    	mov    -0x41c(%ebp),%edi
404fdc:	eb 1a                	jmp    0x404ff8
404fde:	6a 30                	push   $0x30
404fe0:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
404fe6:	8b c3                	mov    %ebx,%eax
404fe8:	4f                   	dec    %edi
404fe9:	e8 94 f5 ff ff       	call   0x404582
404fee:	83 bd e8 fb ff ff ff 	cmpl   $0xffffffff,-0x418(%ebp)
404ff5:	59                   	pop    %ecx
404ff6:	74 04                	je     0x404ffc
404ff8:	85 ff                	test   %edi,%edi
404ffa:	7f e2                	jg     0x404fde
404ffc:	83 bd d4 fb ff ff 00 	cmpl   $0x0,-0x42c(%ebp)
405003:	75 6b                	jne    0x405070
405005:	8b 9d ec fb ff ff    	mov    -0x414(%ebp),%ebx
40500b:	85 db                	test   %ebx,%ebx
40500d:	7e 61                	jle    0x405070
40500f:	8b bd f0 fb ff ff    	mov    -0x410(%ebp),%edi
405015:	8d 85 a8 fb ff ff    	lea    -0x458(%ebp),%eax
40501b:	50                   	push   %eax
40501c:	8b 85 a8 fb ff ff    	mov    -0x458(%ebp),%eax
405022:	ff b0 ac 00 00 00    	push   0xac(%eax)
405028:	8d 85 a4 fb ff ff    	lea    -0x45c(%ebp),%eax
40502e:	57                   	push   %edi
40502f:	50                   	push   %eax
405030:	4b                   	dec    %ebx
405031:	e8 b5 5b 00 00       	call   0x40abeb
405036:	83 c4 10             	add    $0x10,%esp
405039:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40503f:	85 c0                	test   %eax,%eax
405041:	7e 24                	jle    0x405067
405043:	ff b5 a4 fb ff ff    	push   -0x45c(%ebp)
405049:	8b 85 dc fb ff ff    	mov    -0x424(%ebp),%eax
40504f:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
405055:	e8 28 f5 ff ff       	call   0x404582
40505a:	03 bd 8c fb ff ff    	add    -0x474(%ebp),%edi
405060:	59                   	pop    %ecx
405061:	85 db                	test   %ebx,%ebx
405063:	7f b0                	jg     0x405015
405065:	eb 2e                	jmp    0x405095
405067:	83 8d e8 fb ff ff ff 	orl    $0xffffffff,-0x418(%ebp)
40506e:	eb 25                	jmp    0x405095
405070:	ff b5 ec fb ff ff    	push   -0x414(%ebp)
405076:	8b bd 9c fb ff ff    	mov    -0x464(%ebp),%edi
40507c:	ff b5 f0 fb ff ff    	push   -0x410(%ebp)
405082:	8b 9d dc fb ff ff    	mov    -0x424(%ebp),%ebx
405088:	8d 85 e8 fb ff ff    	lea    -0x418(%ebp),%eax
40508e:	e8 82 37 00 00       	call   0x408815
405093:	59                   	pop    %ecx
405094:	59                   	pop    %ecx
405095:	83 bd e8 fb ff ff 00 	cmpl   $0x0,-0x418(%ebp)
40509c:	7c 33                	jl     0x4050d1
40509e:	f6 85 f8 fb ff ff 04 	testb  $0x4,-0x408(%ebp)
4050a5:	74 2a                	je     0x4050d1
4050a7:	8b bd e4 fb ff ff    	mov    -0x41c(%ebp),%edi
4050ad:	eb 1e                	jmp    0x4050cd
4050af:	8b 85 dc fb ff ff    	mov    -0x424(%ebp),%eax
4050b5:	6a 20                	push   $0x20
4050b7:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
4050bd:	4f                   	dec    %edi
4050be:	e8 bf f4 ff ff       	call   0x404582
4050c3:	83 bd e8 fb ff ff ff 	cmpl   $0xffffffff,-0x418(%ebp)
4050ca:	59                   	pop    %ecx
4050cb:	74 04                	je     0x4050d1
4050cd:	85 ff                	test   %edi,%edi
4050cf:	7f de                	jg     0x4050af
4050d1:	83 bd c4 fb ff ff 00 	cmpl   $0x0,-0x43c(%ebp)
4050d8:	74 13                	je     0x4050ed
4050da:	ff b5 c4 fb ff ff    	push   -0x43c(%ebp)
4050e0:	e8 86 ce ff ff       	call   0x401f6b
4050e5:	83 a5 c4 fb ff ff 00 	andl   $0x0,-0x43c(%ebp)
4050ec:	59                   	pop    %ecx
4050ed:	8b b5 c0 fb ff ff    	mov    -0x440(%ebp),%esi
4050f3:	0f b7 06             	movzwl (%esi),%eax
4050f6:	89 85 e4 fb ff ff    	mov    %eax,-0x41c(%ebp)
4050fc:	66 85 c0             	test   %ax,%ax
4050ff:	74 2f                	je     0x405130
405101:	8b 95 a0 fb ff ff    	mov    -0x460(%ebp),%edx
405107:	8b bd e0 fb ff ff    	mov    -0x420(%ebp),%edi
40510d:	8b c8                	mov    %eax,%ecx
40510f:	e9 6b f5 ff ff       	jmp    0x40467f
405114:	e8 0e f0 ff ff       	call   0x404127
405119:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40511f:	e8 63 db ff ff       	call   0x402c87
405124:	80 bd b4 fb ff ff 00 	cmpb   $0x0,-0x44c(%ebp)
40512b:	e9 11 f5 ff ff       	jmp    0x404641
405130:	80 bd b4 fb ff ff 00 	cmpb   $0x0,-0x44c(%ebp)
405137:	74 0a                	je     0x405143
405139:	8b 85 b0 fb ff ff    	mov    -0x450(%ebp),%eax
40513f:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
405143:	8b 85 e8 fb ff ff    	mov    -0x418(%ebp),%eax
405149:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40514c:	5f                   	pop    %edi
40514d:	5e                   	pop    %esi
40514e:	33 cd                	xor    %ebp,%ecx
405150:	5b                   	pop    %ebx
405151:	e8 4e cc ff ff       	call   0x401da4
405156:	c9                   	leave
405157:	c3                   	ret
405158:	90                   	nop
405159:	ea 48 40 00 d4 46 40 	ljmp   $0x4046,$0xd4004048
405160:	00 06                	add    %al,(%esi)
405162:	47                   	inc    %edi
405163:	40                   	inc    %eax
405164:	00 63 47             	add    %ah,0x47(%ebx)
405167:	40                   	inc    %eax
405168:	00 b0 47 40 00 bc    	add    %dh,-0x43ffbfb9(%eax)
40516e:	47                   	inc    %edi
40516f:	40                   	inc    %eax
405170:	00 03                	add    %al,(%ebx)
405172:	48                   	dec    %eax
405173:	40                   	inc    %eax
405174:	00 0b                	add    %cl,(%ebx)
405176:	49                   	dec    %ecx
405177:	40                   	inc    %eax
405178:	00 6a 00             	add    %ch,0x0(%edx)
40517b:	68 00 10 00 00       	push   $0x1000
405180:	6a 00                	push   $0x0
405182:	ff 15 ac f0 40 00    	call   *0x40f0ac
405188:	33 c9                	xor    %ecx,%ecx
40518a:	85 c0                	test   %eax,%eax
40518c:	0f 95 c1             	setne  %cl
40518f:	a3 24 32 41 00       	mov    %eax,0x413224
405194:	8b c1                	mov    %ecx,%eax
405196:	c3                   	ret
405197:	8b ff                	mov    %edi,%edi
405199:	55                   	push   %ebp
40519a:	8b ec                	mov    %esp,%ebp
40519c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40519f:	85 c9                	test   %ecx,%ecx
4051a1:	74 1b                	je     0x4051be
4051a3:	6a e0                	push   $0xffffffe0
4051a5:	33 d2                	xor    %edx,%edx
4051a7:	58                   	pop    %eax
4051a8:	f7 f1                	div    %ecx
4051aa:	3b 45 0c             	cmp    0xc(%ebp),%eax
4051ad:	73 0f                	jae    0x4051be
4051af:	e8 73 ef ff ff       	call   0x404127
4051b4:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4051ba:	33 c0                	xor    %eax,%eax
4051bc:	5d                   	pop    %ebp
4051bd:	c3                   	ret
4051be:	0f af 4d 0c          	imul   0xc(%ebp),%ecx
4051c2:	56                   	push   %esi
4051c3:	8b f1                	mov    %ecx,%esi
4051c5:	85 f6                	test   %esi,%esi
4051c7:	75 01                	jne    0x4051ca
4051c9:	46                   	inc    %esi
4051ca:	33 c0                	xor    %eax,%eax
4051cc:	83 fe e0             	cmp    $0xffffffe0,%esi
4051cf:	77 13                	ja     0x4051e4
4051d1:	56                   	push   %esi
4051d2:	6a 08                	push   $0x8
4051d4:	ff 35 24 32 41 00    	push   0x413224
4051da:	ff 15 70 f0 40 00    	call   *0x40f070
4051e0:	85 c0                	test   %eax,%eax
4051e2:	75 32                	jne    0x405216
4051e4:	83 3d bc 38 41 00 00 	cmpl   $0x0,0x4138bc
4051eb:	74 1c                	je     0x405209
4051ed:	56                   	push   %esi
4051ee:	e8 5f 14 00 00       	call   0x406652
4051f3:	59                   	pop    %ecx
4051f4:	85 c0                	test   %eax,%eax
4051f6:	75 d2                	jne    0x4051ca
4051f8:	8b 45 10             	mov    0x10(%ebp),%eax
4051fb:	85 c0                	test   %eax,%eax
4051fd:	74 06                	je     0x405205
4051ff:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
405205:	33 c0                	xor    %eax,%eax
405207:	eb 0d                	jmp    0x405216
405209:	8b 4d 10             	mov    0x10(%ebp),%ecx
40520c:	85 c9                	test   %ecx,%ecx
40520e:	74 06                	je     0x405216
405210:	c7 01 0c 00 00 00    	movl   $0xc,(%ecx)
405216:	5e                   	pop    %esi
405217:	5d                   	pop    %ebp
405218:	c3                   	ret
405219:	2d a4 03 00 00       	sub    $0x3a4,%eax
40521e:	74 22                	je     0x405242
405220:	83 e8 04             	sub    $0x4,%eax
405223:	74 17                	je     0x40523c
405225:	83 e8 0d             	sub    $0xd,%eax
405228:	74 0c                	je     0x405236
40522a:	48                   	dec    %eax
40522b:	74 03                	je     0x405230
40522d:	33 c0                	xor    %eax,%eax
40522f:	c3                   	ret
405230:	b8 04 04 00 00       	mov    $0x404,%eax
405235:	c3                   	ret
405236:	b8 12 04 00 00       	mov    $0x412,%eax
40523b:	c3                   	ret
40523c:	b8 04 08 00 00       	mov    $0x804,%eax
405241:	c3                   	ret
405242:	b8 11 04 00 00       	mov    $0x411,%eax
405247:	c3                   	ret
405248:	8b ff                	mov    %edi,%edi
40524a:	56                   	push   %esi
40524b:	57                   	push   %edi
40524c:	8b f0                	mov    %eax,%esi
40524e:	68 01 01 00 00       	push   $0x101
405253:	33 ff                	xor    %edi,%edi
405255:	8d 46 1c             	lea    0x1c(%esi),%eax
405258:	57                   	push   %edi
405259:	50                   	push   %eax
40525a:	e8 81 27 00 00       	call   0x4079e0
40525f:	33 c0                	xor    %eax,%eax
405261:	0f b7 c8             	movzwl %ax,%ecx
405264:	8b c1                	mov    %ecx,%eax
405266:	89 7e 04             	mov    %edi,0x4(%esi)
405269:	89 7e 08             	mov    %edi,0x8(%esi)
40526c:	89 7e 0c             	mov    %edi,0xc(%esi)
40526f:	c1 e1 10             	shl    $0x10,%ecx
405272:	0b c1                	or     %ecx,%eax
405274:	8d 7e 10             	lea    0x10(%esi),%edi
405277:	ab                   	stos   %eax,%es:(%edi)
405278:	ab                   	stos   %eax,%es:(%edi)
405279:	ab                   	stos   %eax,%es:(%edi)
40527a:	b9 00 24 41 00       	mov    $0x412400,%ecx
40527f:	83 c4 0c             	add    $0xc,%esp
405282:	8d 46 1c             	lea    0x1c(%esi),%eax
405285:	2b ce                	sub    %esi,%ecx
405287:	bf 01 01 00 00       	mov    $0x101,%edi
40528c:	8a 14 01             	mov    (%ecx,%eax,1),%dl
40528f:	88 10                	mov    %dl,(%eax)
405291:	40                   	inc    %eax
405292:	4f                   	dec    %edi
405293:	75 f7                	jne    0x40528c
405295:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
40529b:	be 00 01 00 00       	mov    $0x100,%esi
4052a0:	8a 14 08             	mov    (%eax,%ecx,1),%dl
4052a3:	88 10                	mov    %dl,(%eax)
4052a5:	40                   	inc    %eax
4052a6:	4e                   	dec    %esi
4052a7:	75 f7                	jne    0x4052a0
4052a9:	5f                   	pop    %edi
4052aa:	5e                   	pop    %esi
4052ab:	c3                   	ret
4052ac:	8b ff                	mov    %edi,%edi
4052ae:	55                   	push   %ebp
4052af:	8b ec                	mov    %esp,%ebp
4052b1:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
4052b7:	a1 84 22 41 00       	mov    0x412284,%eax
4052bc:	33 c5                	xor    %ebp,%eax
4052be:	89 45 fc             	mov    %eax,-0x4(%ebp)
4052c1:	53                   	push   %ebx
4052c2:	57                   	push   %edi
4052c3:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
4052c9:	50                   	push   %eax
4052ca:	ff 76 04             	push   0x4(%esi)
4052cd:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4052d3:	bf 00 01 00 00       	mov    $0x100,%edi
4052d8:	85 c0                	test   %eax,%eax
4052da:	0f 84 fc 00 00 00    	je     0x4053dc
4052e0:	33 c0                	xor    %eax,%eax
4052e2:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
4052e9:	40                   	inc    %eax
4052ea:	3b c7                	cmp    %edi,%eax
4052ec:	72 f4                	jb     0x4052e2
4052ee:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
4052f4:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
4052fb:	84 c0                	test   %al,%al
4052fd:	74 30                	je     0x40532f