404f93:	53                   	push   %ebx
404f94:	e8 e5 0e 00 00       	call   0x405e7e
404f99:	84 c0                	test   %al,%al
404f9b:	74 28                	je     0x404fc5
404f9d:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404fa1:	72 04                	jb     0x404fa7
404fa3:	8b 0e                	mov    (%esi),%ecx
404fa5:	eb 02                	jmp    0x404fa9
404fa7:	8b ce                	mov    %esi,%ecx
404fa9:	53                   	push   %ebx
404faa:	8b d7                	mov    %edi,%edx
404fac:	e8 07 eb ff ff       	call   0x403ab8
404fb1:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404fb5:	59                   	pop    %ecx
404fb6:	89 5e 10             	mov    %ebx,0x10(%esi)
404fb9:	72 04                	jb     0x404fbf
404fbb:	8b 06                	mov    (%esi),%eax
404fbd:	eb 02                	jmp    0x404fc1
404fbf:	8b c6                	mov    %esi,%eax
404fc1:	c6 04 18 00          	movb   $0x0,(%eax,%ebx,1)
404fc5:	5f                   	pop    %edi
404fc6:	8b c6                	mov    %esi,%eax
404fc8:	5e                   	pop    %esi
404fc9:	5b                   	pop    %ebx
404fca:	c2 04 00             	ret    $0x4
404fcd:	56                   	push   %esi
404fce:	8b f1                	mov    %ecx,%esi
404fd0:	33 c0                	xor    %eax,%eax
404fd2:	6a ff                	push   $0xffffffff
404fd4:	50                   	push   %eax
404fd5:	ff 74 24 10          	push   0x10(%esp)
404fd9:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
404fe0:	89 46 10             	mov    %eax,0x10(%esi)
404fe3:	88 06                	mov    %al,(%esi)
404fe5:	e8 48 0f 00 00       	call   0x405f32
404fea:	8b c6                	mov    %esi,%eax
404fec:	5e                   	pop    %esi
404fed:	c2 04 00             	ret    $0x4
404ff0:	56                   	push   %esi
404ff1:	8b f1                	mov    %ecx,%esi
404ff3:	8b 46 90             	mov    -0x70(%esi),%eax
404ff6:	8d 4e a0             	lea    -0x60(%esi),%ecx
404ff9:	8b 40 04             	mov    0x4(%eax),%eax
404ffc:	c7 44 30 90 a4 97 43 	movl   $0x4397a4,-0x70(%eax,%esi,1)
405003:	00
405004:	8b 46 90             	mov    -0x70(%esi),%eax
405007:	8b 50 04             	mov    0x4(%eax),%edx
40500a:	8d 42 90             	lea    -0x70(%edx),%eax
40500d:	89 44 32 8c          	mov    %eax,-0x74(%edx,%esi,1)
405011:	e8 15 08 00 00       	call   0x40582b
405016:	8b 46 90             	mov    -0x70(%esi),%eax
405019:	8b 40 04             	mov    0x4(%eax),%eax
40501c:	c7 44 30 90 68 97 43 	movl   $0x439768,-0x70(%eax,%esi,1)
405023:	00
405024:	8b 46 90             	mov    -0x70(%esi),%eax
405027:	8b 48 04             	mov    0x4(%eax),%ecx
40502a:	8d 41 e8             	lea    -0x18(%ecx),%eax
40502d:	89 44 31 8c          	mov    %eax,-0x74(%ecx,%esi,1)
405031:	5e                   	pop    %esi
405032:	c3                   	ret
405033:	51                   	push   %ecx
405034:	51                   	push   %ecx
405035:	53                   	push   %ebx
405036:	55                   	push   %ebp
405037:	56                   	push   %esi
405038:	57                   	push   %edi
405039:	8b f9                	mov    %ecx,%edi
40503b:	33 ed                	xor    %ebp,%ebp
40503d:	8d 77 10             	lea    0x10(%edi),%esi
405040:	39 6e 4c             	cmp    %ebp,0x4c(%esi)
405043:	75 5f                	jne    0x4050a4
405045:	6a 40                	push   $0x40
405047:	6a 21                	push   $0x21
405049:	ff 74 24 24          	push   0x24(%esp)
40504d:	e8 e6 85 02 00       	call   0x42d638
405052:	83 c4 0c             	add    $0xc,%esp
405055:	85 c0                	test   %eax,%eax
405057:	74 4b                	je     0x4050a4
405059:	6a 01                	push   $0x1
40505b:	50                   	push   %eax
40505c:	8b ce                	mov    %esi,%ecx
40505e:	e8 7f 11 00 00       	call   0x4061e2
405063:	8b 46 34             	mov    0x34(%esi),%eax
405066:	8b 48 04             	mov    0x4(%eax),%ecx
405069:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40506d:	8b 01                	mov    (%ecx),%eax
40506f:	ff 50 04             	call   *0x4(%eax)
405072:	8d 44 24 10          	lea    0x10(%esp),%eax
405076:	50                   	push   %eax
405077:	e8 86 16 00 00       	call   0x406702
40507c:	8b d8                	mov    %eax,%ebx
40507e:	59                   	pop    %ecx
40507f:	8b cb                	mov    %ebx,%ecx
405081:	8b 13                	mov    (%ebx),%edx
405083:	ff 52 0c             	call   *0xc(%edx)
405086:	84 c0                	test   %al,%al
405088:	74 05                	je     0x40508f
40508a:	89 6e 38             	mov    %ebp,0x38(%esi)
40508d:	eb 0a                	jmp    0x405099
40508f:	8b ce                	mov    %esi,%ecx
405091:	89 5e 38             	mov    %ebx,0x38(%esi)
405094:	e8 97 13 00 00       	call   0x406430
405099:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40509d:	e8 a8 eb ff ff       	call   0x403c4a
4050a2:	eb 02                	jmp    0x4050a6
4050a4:	8b f5                	mov    %ebp,%esi
4050a6:	8b 0f                	mov    (%edi),%ecx
4050a8:	6a 04                	push   $0x4
4050aa:	5a                   	pop    %edx
4050ab:	03 ca                	add    %edx,%ecx
4050ad:	85 f6                	test   %esi,%esi
4050af:	75 0e                	jne    0x4050bf
4050b1:	51                   	push   %ecx
4050b2:	8b 09                	mov    (%ecx),%ecx
4050b4:	6a 02                	push   $0x2
4050b6:	03 cf                	add    %edi,%ecx
4050b8:	e8 f7 11 00 00       	call   0x4062b4
4050bd:	eb 13                	jmp    0x4050d2
4050bf:	8b 09                	mov    (%ecx),%ecx
4050c1:	33 c0                	xor    %eax,%eax
4050c3:	03 cf                	add    %edi,%ecx
4050c5:	55                   	push   %ebp
4050c6:	39 69 38             	cmp    %ebp,0x38(%ecx)
4050c9:	0f 44 c2             	cmove  %edx,%eax
4050cc:	50                   	push   %eax
4050cd:	e8 78 f0 ff ff       	call   0x40414a
4050d2:	5f                   	pop    %edi
4050d3:	5e                   	pop    %esi
4050d4:	5d                   	pop    %ebp
4050d5:	5b                   	pop    %ebx
4050d6:	59                   	pop    %ecx
4050d7:	59                   	pop    %ecx
4050d8:	c2 0c 00             	ret    $0xc
4050db:	51                   	push   %ecx
4050dc:	53                   	push   %ebx
4050dd:	56                   	push   %esi
4050de:	57                   	push   %edi
4050df:	8b f9                	mov    %ecx,%edi
4050e1:	33 d2                	xor    %edx,%edx
4050e3:	c7 07 60 97 43 00    	movl   $0x439760,(%edi)
4050e9:	8d 77 10             	lea    0x10(%edi),%esi
4050ec:	c7 47 70 50 97 43 00 	movl   $0x439750,0x70(%edi)
4050f3:	a1 64 97 43 00       	mov    0x439764,%eax
4050f8:	c7 04 38 68 97 43 00 	movl   $0x439768,(%eax,%edi,1)
4050ff:	8b 07                	mov    (%edi),%eax
405101:	8b 48 04             	mov    0x4(%eax),%ecx
405104:	51                   	push   %ecx
405105:	56                   	push   %esi
405106:	8d 41 e8             	lea    -0x18(%ecx),%eax
405109:	89 44 39 fc          	mov    %eax,-0x4(%ecx,%edi,1)
40510d:	8b 07                	mov    (%edi),%eax
40510f:	89 57 08             	mov    %edx,0x8(%edi)
405112:	89 57 0c             	mov    %edx,0xc(%edi)
405115:	8b 48 04             	mov    0x4(%eax),%ecx
405118:	03 cf                	add    %edi,%ecx
40511a:	e8 4f 13 00 00       	call   0x40646e
40511f:	8b 07                	mov    (%edi),%eax
405121:	6a 08                	push   $0x8
405123:	8b 40 04             	mov    0x4(%eax),%eax
405126:	c7 04 07 a4 97 43 00 	movl   $0x4397a4,(%edi,%eax,1)
40512d:	8b 07                	mov    (%edi),%eax
40512f:	8b 48 04             	mov    0x4(%eax),%ecx
405132:	8d 41 90             	lea    -0x70(%ecx),%eax
405135:	89 44 39 fc          	mov    %eax,-0x4(%ecx,%edi,1)
405139:	c7 06 a4 96 43 00    	movl   $0x4396a4,(%esi)
40513f:	e8 7c 18 00 00       	call   0x4069c0
405144:	8b d8                	mov    %eax,%ebx
405146:	59                   	pop    %ecx
405147:	85 db                	test   %ebx,%ebx
405149:	74 0d                	je     0x405158
40514b:	6a 01                	push   $0x1
40514d:	e8 5f 81 02 00       	call   0x42d2b1
405152:	59                   	pop    %ecx
405153:	89 43 04             	mov    %eax,0x4(%ebx)
405156:	eb 02                	jmp    0x40515a
405158:	33 db                	xor    %ebx,%ebx
40515a:	8b ce                	mov    %esi,%ecx
40515c:	89 5e 34             	mov    %ebx,0x34(%esi)
40515f:	e8 cc 12 00 00       	call   0x406430
405164:	33 db                	xor    %ebx,%ebx
405166:	c7 06 14 97 43 00    	movl   $0x439714,(%esi)
40516c:	8b ce                	mov    %esi,%ecx
40516e:	88 5e 48             	mov    %bl,0x48(%esi)
405171:	88 5e 3d             	mov    %bl,0x3d(%esi)
405174:	e8 b7 12 00 00       	call   0x406430
405179:	a1 a4 ff 43 00       	mov    0x43ffa4,%eax
40517e:	8b 0d a8 ff 43 00    	mov    0x43ffa8,%ecx
405184:	89 46 40             	mov    %eax,0x40(%esi)
405187:	8b c7                	mov    %edi,%eax
405189:	5f                   	pop    %edi
40518a:	89 5e 4c             	mov    %ebx,0x4c(%esi)
40518d:	89 5e 38             	mov    %ebx,0x38(%esi)
405190:	89 4e 44             	mov    %ecx,0x44(%esi)
405193:	5e                   	pop    %esi
405194:	5b                   	pop    %ebx
405195:	59                   	pop    %ecx
405196:	c2 04 00             	ret    $0x4
405199:	56                   	push   %esi
40519a:	57                   	push   %edi
40519b:	ff 74 24 0c          	push   0xc(%esp)
40519f:	8b f1                	mov    %ecx,%esi
4051a1:	e8 5c 15 00 00       	call   0x406702
4051a6:	8b f8                	mov    %eax,%edi
4051a8:	59                   	pop    %ecx
4051a9:	8b cf                	mov    %edi,%ecx
4051ab:	8b 17                	mov    (%edi),%edx
4051ad:	ff 52 0c             	call   *0xc(%edx)
4051b0:	84 c0                	test   %al,%al
4051b2:	74 06                	je     0x4051ba
4051b4:	83 66 38 00          	andl   $0x0,0x38(%esi)
4051b8:	eb 0a                	jmp    0x4051c4
4051ba:	8b ce                	mov    %esi,%ecx
4051bc:	89 7e 38             	mov    %edi,0x38(%esi)
4051bf:	e8 6c 12 00 00       	call   0x406430
4051c4:	5f                   	pop    %edi
4051c5:	5e                   	pop    %esi
4051c6:	c2 04 00             	ret    $0x4
4051c9:	56                   	push   %esi
4051ca:	57                   	push   %edi
4051cb:	8b f9                	mov    %ecx,%edi
4051cd:	83 7f 4c 00          	cmpl   $0x0,0x4c(%edi)
4051d1:	74 1a                	je     0x4051ed
4051d3:	8b 07                	mov    (%edi),%eax
4051d5:	83 ce ff             	or     $0xffffffff,%esi
4051d8:	56                   	push   %esi
4051d9:	ff 50 0c             	call   *0xc(%eax)
4051dc:	3b c6                	cmp    %esi,%eax
4051de:	74 0d                	je     0x4051ed
4051e0:	ff 77 4c             	push   0x4c(%edi)
4051e3:	e8 93 ad 01 00       	call   0x41ff7b
4051e8:	59                   	pop    %ecx
4051e9:	85 c0                	test   %eax,%eax
4051eb:	78 02                	js     0x4051ef
4051ed:	33 f6                	xor    %esi,%esi
4051ef:	5f                   	pop    %edi
4051f0:	8b c6                	mov    %esi,%eax
4051f2:	5e                   	pop    %esi
4051f3:	c3                   	ret
4051f4:	55                   	push   %ebp
4051f5:	8b ec                	mov    %esp,%ebp
4051f7:	56                   	push   %esi
4051f8:	8b f1                	mov    %ecx,%esi
4051fa:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
4051fe:	74 3b                	je     0x40523b
405200:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405204:	75 0d                	jne    0x405213
405206:	8b 45 0c             	mov    0xc(%ebp),%eax
405209:	0b 45 10             	or     0x10(%ebp),%eax
40520c:	75 05                	jne    0x405213
40520e:	6a 04                	push   $0x4
405210:	58                   	pop    %eax
405211:	eb 02                	jmp    0x405215
405213:	33 c0                	xor    %eax,%eax
405215:	ff 75 0c             	push   0xc(%ebp)
405218:	50                   	push   %eax
405219:	ff 75 08             	push   0x8(%ebp)
40521c:	ff 76 4c             	push   0x4c(%esi)
40521f:	e8 4c a4 02 00       	call   0x42f670
405224:	83 c4 10             	add    $0x10,%esp
405227:	85 c0                	test   %eax,%eax
405229:	75 10                	jne    0x40523b
40522b:	6a 01                	push   $0x1
40522d:	ff 76 4c             	push   0x4c(%esi)
405230:	8b ce                	mov    %esi,%ecx
405232:	e8 ab 0f 00 00       	call   0x4061e2
405237:	8b c6                	mov    %esi,%eax
405239:	eb 02                	jmp    0x40523d
40523b:	33 c0                	xor    %eax,%eax
40523d:	5e                   	pop    %esi
40523e:	5d                   	pop    %ebp
40523f:	c2 0c 00             	ret    $0xc
405242:	55                   	push   %ebp
405243:	8b ec                	mov    %esp,%ebp
405245:	83 e4 f8             	and    $0xfffffff8,%esp
405248:	83 ec 0c             	sub    $0xc,%esp
40524b:	8b 45 14             	mov    0x14(%ebp),%eax
40524e:	8b 55 18             	mov    0x18(%ebp),%edx
405251:	53                   	push   %ebx
405252:	8b 5d 10             	mov    0x10(%ebp),%ebx
405255:	56                   	push   %esi
405256:	8b 75 0c             	mov    0xc(%ebp),%esi
405259:	57                   	push   %edi
40525a:	8b f9                	mov    %ecx,%edi
40525c:	89 44 24 10          	mov    %eax,0x10(%esp)
405260:	89 54 24 14          	mov    %edx,0x14(%esp)
405264:	83 7f 4c 00          	cmpl   $0x0,0x4c(%edi)
405268:	0f 84 81 00 00 00    	je     0x4052ef
40526e:	e8 53 0e 00 00       	call   0x4060c6
405273:	84 c0                	test   %al,%al
405275:	74 78                	je     0x4052ef
405277:	8d 44 24 10          	lea    0x10(%esp),%eax
40527b:	50                   	push   %eax
40527c:	ff 77 4c             	push   0x4c(%edi)
40527f:	e8 26 a4 02 00       	call   0x42f6aa
405284:	59                   	pop    %ecx
405285:	59                   	pop    %ecx
405286:	85 c0                	test   %eax,%eax
405288:	75 65                	jne    0x4052ef
40528a:	8b c6                	mov    %esi,%eax
40528c:	0b c3                	or     %ebx,%eax
40528e:	74 13                	je     0x4052a3
405290:	6a 01                	push   $0x1
405292:	53                   	push   %ebx
405293:	56                   	push   %esi
405294:	ff 77 4c             	push   0x4c(%edi)
405297:	e8 31 3a 01 00       	call   0x418ccd
40529c:	83 c4 10             	add    $0x10,%esp
40529f:	85 c0                	test   %eax,%eax
4052a1:	75 4c                	jne    0x4052ef
4052a3:	8d 44 24 10          	lea    0x10(%esp),%eax
4052a7:	50                   	push   %eax
4052a8:	ff 77 4c             	push   0x4c(%edi)
4052ab:	e8 a1 a1 02 00       	call   0x42f451
4052b0:	59                   	pop    %ecx
4052b1:	59                   	pop    %ecx
4052b2:	85 c0                	test   %eax,%eax
4052b4:	75 39                	jne    0x4052ef
4052b6:	8b 4d 20             	mov    0x20(%ebp),%ecx
4052b9:	8b 45 1c             	mov    0x1c(%ebp),%eax
4052bc:	89 4f 44             	mov    %ecx,0x44(%edi)
4052bf:	8b cf                	mov    %edi,%ecx
4052c1:	89 47 40             	mov    %eax,0x40(%edi)
4052c4:	e8 da 0d 00 00       	call   0x4060a3
4052c9:	8b 45 08             	mov    0x8(%ebp),%eax
4052cc:	8b 77 40             	mov    0x40(%edi),%esi
4052cf:	8b 7f 44             	mov    0x44(%edi),%edi
4052d2:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4052d6:	83 20 00             	andl   $0x0,(%eax)
4052d9:	8b 54 24 14          	mov    0x14(%esp),%edx
4052dd:	83 60 04 00          	andl   $0x0,0x4(%eax)
4052e1:	89 48 08             	mov    %ecx,0x8(%eax)
4052e4:	89 50 0c             	mov    %edx,0xc(%eax)
4052e7:	89 70 10             	mov    %esi,0x10(%eax)
4052ea:	89 78 14             	mov    %edi,0x14(%eax)
4052ed:	eb 0c                	jmp    0x4052fb
4052ef:	51                   	push   %ecx
4052f0:	51                   	push   %ecx
4052f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4052f4:	e8 e2 0f 00 00       	call   0x4062db
4052f9:	8b c1                	mov    %ecx,%eax
4052fb:	5f                   	pop    %edi
4052fc:	5e                   	pop    %esi
4052fd:	5b                   	pop    %ebx
4052fe:	8b e5                	mov    %ebp,%esp
405300:	5d                   	pop    %ebp
405301:	c2 20 00             	ret    $0x20
405304:	55                   	push   %ebp
405305:	8b ec                	mov    %esp,%ebp
405307:	83 e4 f8             	and    $0xfffffff8,%esp
40530a:	83 ec 0c             	sub    $0xc,%esp