401f44:	e8 05 26 00 00       	call   0x40454e
401f49:	83 c4 1c             	add    $0x1c,%esp
401f4c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401f53:	e8 09 00 00 00       	call   0x401f61
401f58:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401f5b:	e8 55 22 00 00       	call   0x4041b5
401f60:	c3                   	ret
401f61:	ff 75 08             	push   0x8(%ebp)
401f64:	e8 64 04 00 00       	call   0x4023cd
401f69:	59                   	pop    %ecx
401f6a:	c3                   	ret
401f6b:	8b ff                	mov    %edi,%edi
401f6d:	55                   	push   %ebp
401f6e:	8b ec                	mov    %esp,%ebp
401f70:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401f74:	74 2d                	je     0x401fa3
401f76:	ff 75 08             	push   0x8(%ebp)
401f79:	6a 00                	push   $0x0
401f7b:	ff 35 24 32 41 00    	push   0x413224
401f81:	ff 15 6c f0 40 00    	call   *0x40f06c
401f87:	85 c0                	test   %eax,%eax
401f89:	75 18                	jne    0x401fa3
401f8b:	56                   	push   %esi
401f8c:	e8 96 21 00 00       	call   0x404127
401f91:	8b f0                	mov    %eax,%esi
401f93:	ff 15 44 f0 40 00    	call   *0x40f044
401f99:	50                   	push   %eax
401f9a:	e8 46 21 00 00       	call   0x4040e5
401f9f:	59                   	pop    %ecx
401fa0:	89 06                	mov    %eax,(%esi)
401fa2:	5e                   	pop    %esi
401fa3:	5d                   	pop    %ebp
401fa4:	c3                   	ret
401fa5:	8b ff                	mov    %edi,%edi
401fa7:	55                   	push   %ebp
401fa8:	8b ec                	mov    %esp,%ebp
401faa:	51                   	push   %ecx
401fab:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
401faf:	56                   	push   %esi
401fb0:	8d 45 fc             	lea    -0x4(%ebp),%eax
401fb3:	50                   	push   %eax
401fb4:	ff 75 0c             	push   0xc(%ebp)
401fb7:	ff 75 08             	push   0x8(%ebp)
401fba:	e8 d8 31 00 00       	call   0x405197
401fbf:	8b f0                	mov    %eax,%esi
401fc1:	83 c4 0c             	add    $0xc,%esp
401fc4:	85 f6                	test   %esi,%esi
401fc6:	75 18                	jne    0x401fe0
401fc8:	39 45 fc             	cmp    %eax,-0x4(%ebp)
401fcb:	74 13                	je     0x401fe0
401fcd:	e8 55 21 00 00       	call   0x404127
401fd2:	85 c0                	test   %eax,%eax
401fd4:	74 0a                	je     0x401fe0
401fd6:	e8 4c 21 00 00       	call   0x404127
401fdb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401fde:	89 08                	mov    %ecx,(%eax)
401fe0:	8b c6                	mov    %esi,%eax
401fe2:	5e                   	pop    %esi
401fe3:	c9                   	leave
401fe4:	c3                   	ret
401fe5:	8b ff                	mov    %edi,%edi
401fe7:	55                   	push   %ebp
401fe8:	8b ec                	mov    %esp,%ebp
401fea:	8b 45 08             	mov    0x8(%ebp),%eax
401fed:	56                   	push   %esi
401fee:	8b f1                	mov    %ecx,%esi
401ff0:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
401ff4:	85 c0                	test   %eax,%eax
401ff6:	75 63                	jne    0x40205b
401ff8:	e8 e9 3d 00 00       	call   0x405de6
401ffd:	89 46 08             	mov    %eax,0x8(%esi)
402000:	8b 48 6c             	mov    0x6c(%eax),%ecx
402003:	89 0e                	mov    %ecx,(%esi)
402005:	8b 48 68             	mov    0x68(%eax),%ecx
402008:	89 4e 04             	mov    %ecx,0x4(%esi)
40200b:	8b 0e                	mov    (%esi),%ecx
40200d:	3b 0d 68 2b 41 00    	cmp    0x412b68,%ecx
402013:	74 12                	je     0x402027
402015:	8b 0d 20 29 41 00    	mov    0x412920,%ecx
40201b:	85 48 70             	test   %ecx,0x70(%eax)
40201e:	75 07                	jne    0x402027
402020:	e8 98 3b 00 00       	call   0x405bbd
402025:	89 06                	mov    %eax,(%esi)
402027:	8b 46 04             	mov    0x4(%esi),%eax
40202a:	3b 05 28 28 41 00    	cmp    0x412828,%eax
402030:	74 16                	je     0x402048
402032:	8b 46 08             	mov    0x8(%esi),%eax
402035:	8b 0d 20 29 41 00    	mov    0x412920,%ecx
40203b:	85 48 70             	test   %ecx,0x70(%eax)
40203e:	75 08                	jne    0x402048
402040:	e8 f7 33 00 00       	call   0x40543c
402045:	89 46 04             	mov    %eax,0x4(%esi)
402048:	8b 46 08             	mov    0x8(%esi),%eax
40204b:	f6 40 70 02          	testb  $0x2,0x70(%eax)
40204f:	75 14                	jne    0x402065
402051:	83 48 70 02          	orl    $0x2,0x70(%eax)
402055:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
402059:	eb 0a                	jmp    0x402065
40205b:	8b 08                	mov    (%eax),%ecx
40205d:	89 0e                	mov    %ecx,(%esi)
40205f:	8b 40 04             	mov    0x4(%eax),%eax
402062:	89 46 04             	mov    %eax,0x4(%esi)
402065:	8b c6                	mov    %esi,%eax
402067:	5e                   	pop    %esi
402068:	5d                   	pop    %ebp
402069:	c2 04 00             	ret    $0x4
40206c:	8b ff                	mov    %edi,%edi
40206e:	55                   	push   %ebp
40206f:	8b ec                	mov    %esp,%ebp
402071:	83 ec 10             	sub    $0x10,%esp
402074:	33 c0                	xor    %eax,%eax
402076:	53                   	push   %ebx
402077:	57                   	push   %edi
402078:	39 45 10             	cmp    %eax,0x10(%ebp)
40207b:	0f 84 cc 00 00 00    	je     0x40214d
402081:	8b 5d 08             	mov    0x8(%ebp),%ebx
402084:	85 db                	test   %ebx,%ebx
402086:	75 1a                	jne    0x4020a2
402088:	e8 9a 20 00 00       	call   0x404127
40208d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
402093:	e8 ef 0b 00 00       	call   0x402c87
402098:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40209d:	e9 ab 00 00 00       	jmp    0x40214d
4020a2:	8b 7d 0c             	mov    0xc(%ebp),%edi
4020a5:	85 ff                	test   %edi,%edi
4020a7:	74 df                	je     0x402088
4020a9:	56                   	push   %esi
4020aa:	ff 75 14             	push   0x14(%ebp)
4020ad:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4020b0:	e8 30 ff ff ff       	call   0x401fe5
4020b5:	8b 45 f0             	mov    -0x10(%ebp),%eax
4020b8:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
4020bc:	75 41                	jne    0x4020ff
4020be:	2b df                	sub    %edi,%ebx
4020c0:	0f b7 04 3b          	movzwl (%ebx,%edi,1),%eax
4020c4:	83 f8 41             	cmp    $0x41,%eax
4020c7:	72 0d                	jb     0x4020d6
4020c9:	83 f8 5a             	cmp    $0x5a,%eax
4020cc:	77 08                	ja     0x4020d6
4020ce:	83 c0 20             	add    $0x20,%eax
4020d1:	0f b7 f0             	movzwl %ax,%esi
4020d4:	eb 02                	jmp    0x4020d8
4020d6:	8b f0                	mov    %eax,%esi
4020d8:	0f b7 07             	movzwl (%edi),%eax
4020db:	83 f8 41             	cmp    $0x41,%eax
4020de:	72 0b                	jb     0x4020eb
4020e0:	83 f8 5a             	cmp    $0x5a,%eax
4020e3:	77 06                	ja     0x4020eb
4020e5:	83 c0 20             	add    $0x20,%eax
4020e8:	0f b7 c0             	movzwl %ax,%eax
4020eb:	83 c7 02             	add    $0x2,%edi
4020ee:	ff 4d 10             	decl   0x10(%ebp)
4020f1:	74 44                	je     0x402137
4020f3:	66 85 f6             	test   %si,%si
4020f6:	74 3f                	je     0x402137
4020f8:	66 3b f0             	cmp    %ax,%si
4020fb:	74 c3                	je     0x4020c0
4020fd:	eb 38                	jmp    0x402137
4020ff:	8d 45 f0             	lea    -0x10(%ebp),%eax
402102:	50                   	push   %eax
402103:	0f b7 03             	movzwl (%ebx),%eax
402106:	50                   	push   %eax
402107:	e8 9e 3f 00 00       	call   0x4060aa
40210c:	0f b7 f0             	movzwl %ax,%esi
40210f:	8d 45 f0             	lea    -0x10(%ebp),%eax
402112:	50                   	push   %eax
402113:	0f b7 07             	movzwl (%edi),%eax
402116:	50                   	push   %eax
402117:	e8 8e 3f 00 00       	call   0x4060aa
40211c:	83 c4 10             	add    $0x10,%esp
40211f:	83 c3 02             	add    $0x2,%ebx
402122:	83 c7 02             	add    $0x2,%edi
402125:	ff 4d 10             	decl   0x10(%ebp)
402128:	0f b7 c0             	movzwl %ax,%eax
40212b:	74 0a                	je     0x402137
40212d:	66 85 f6             	test   %si,%si
402130:	74 05                	je     0x402137
402132:	66 3b f0             	cmp    %ax,%si
402135:	74 c8                	je     0x4020ff
402137:	0f b7 c8             	movzwl %ax,%ecx
40213a:	0f b7 c6             	movzwl %si,%eax
40213d:	2b c1                	sub    %ecx,%eax
40213f:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
402143:	5e                   	pop    %esi
402144:	74 07                	je     0x40214d
402146:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402149:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40214d:	5f                   	pop    %edi
40214e:	5b                   	pop    %ebx
40214f:	c9                   	leave
402150:	c3                   	ret
402151:	8b ff                	mov    %edi,%edi
402153:	55                   	push   %ebp
402154:	8b ec                	mov    %esp,%ebp
402156:	83 3d 54 32 41 00 00 	cmpl   $0x0,0x413254
40215d:	56                   	push   %esi
40215e:	75 79                	jne    0x4021d9
402160:	33 c0                	xor    %eax,%eax
402162:	39 45 10             	cmp    %eax,0x10(%ebp)
402165:	0f 84 81 00 00 00    	je     0x4021ec
40216b:	8b 75 08             	mov    0x8(%ebp),%esi
40216e:	85 f6                	test   %esi,%esi
402170:	75 17                	jne    0x402189
402172:	e8 b0 1f 00 00       	call   0x404127
402177:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40217d:	e8 05 0b 00 00       	call   0x402c87
402182:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402187:	eb 63                	jmp    0x4021ec
402189:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40218c:	85 c9                	test   %ecx,%ecx
40218e:	74 e2                	je     0x402172
402190:	2b f1                	sub    %ecx,%esi
402192:	0f b7 04 0e          	movzwl (%esi,%ecx,1),%eax
402196:	83 f8 41             	cmp    $0x41,%eax
402199:	72 0d                	jb     0x4021a8
40219b:	83 f8 5a             	cmp    $0x5a,%eax
40219e:	77 08                	ja     0x4021a8
4021a0:	83 c0 20             	add    $0x20,%eax
4021a3:	0f b7 d0             	movzwl %ax,%edx
4021a6:	eb 02                	jmp    0x4021aa
4021a8:	8b d0                	mov    %eax,%edx
4021aa:	0f b7 01             	movzwl (%ecx),%eax
4021ad:	83 f8 41             	cmp    $0x41,%eax
4021b0:	72 0b                	jb     0x4021bd
4021b2:	83 f8 5a             	cmp    $0x5a,%eax
4021b5:	77 06                	ja     0x4021bd
4021b7:	83 c0 20             	add    $0x20,%eax
4021ba:	0f b7 c0             	movzwl %ax,%eax
4021bd:	83 c1 02             	add    $0x2,%ecx
4021c0:	ff 4d 10             	decl   0x10(%ebp)
4021c3:	74 0a                	je     0x4021cf
4021c5:	66 85 d2             	test   %dx,%dx
4021c8:	74 05                	je     0x4021cf
4021ca:	66 3b d0             	cmp    %ax,%dx
4021cd:	74 c3                	je     0x402192
4021cf:	0f b7 c8             	movzwl %ax,%ecx
4021d2:	0f b7 c2             	movzwl %dx,%eax
4021d5:	2b c1                	sub    %ecx,%eax
4021d7:	eb 13                	jmp    0x4021ec
4021d9:	6a 00                	push   $0x0
4021db:	ff 75 10             	push   0x10(%ebp)
4021de:	ff 75 0c             	push   0xc(%ebp)
4021e1:	ff 75 08             	push   0x8(%ebp)
4021e4:	e8 83 fe ff ff       	call   0x40206c
4021e9:	83 c4 10             	add    $0x10,%esp
4021ec:	5e                   	pop    %esi
4021ed:	5d                   	pop    %ebp
4021ee:	c3                   	ret
4021ef:	8b ff                	mov    %edi,%edi
4021f1:	55                   	push   %ebp
4021f2:	8b ec                	mov    %esp,%ebp
4021f4:	53                   	push   %ebx
4021f5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4021f8:	83 fb e0             	cmp    $0xffffffe0,%ebx
4021fb:	77 6f                	ja     0x40226c
4021fd:	56                   	push   %esi
4021fe:	57                   	push   %edi
4021ff:	83 3d 24 32 41 00 00 	cmpl   $0x0,0x413224
402206:	75 18                	jne    0x402220
402208:	e8 fd 43 00 00       	call   0x40660a
40220d:	6a 1e                	push   $0x1e
40220f:	e8 47 42 00 00       	call   0x40645b
402214:	68 ff 00 00 00       	push   $0xff
402219:	e8 57 3f 00 00       	call   0x406175
40221e:	59                   	pop    %ecx
40221f:	59                   	pop    %ecx
402220:	85 db                	test   %ebx,%ebx
402222:	74 04                	je     0x402228
402224:	8b c3                	mov    %ebx,%eax
402226:	eb 03                	jmp    0x40222b
402228:	33 c0                	xor    %eax,%eax
40222a:	40                   	inc    %eax
40222b:	50                   	push   %eax
40222c:	6a 00                	push   $0x0
40222e:	ff 35 24 32 41 00    	push   0x413224
402234:	ff 15 70 f0 40 00    	call   *0x40f070
40223a:	8b f8                	mov    %eax,%edi
40223c:	85 ff                	test   %edi,%edi
40223e:	75 26                	jne    0x402266
402240:	6a 0c                	push   $0xc
402242:	5e                   	pop    %esi
402243:	39 05 bc 38 41 00    	cmp    %eax,0x4138bc
402249:	74 0d                	je     0x402258
40224b:	53                   	push   %ebx
40224c:	e8 01 44 00 00       	call   0x406652
402251:	59                   	pop    %ecx
402252:	85 c0                	test   %eax,%eax
402254:	75 a9                	jne    0x4021ff
402256:	eb 07                	jmp    0x40225f
402258:	e8 ca 1e 00 00       	call   0x404127
40225d:	89 30                	mov    %esi,(%eax)
40225f:	e8 c3 1e 00 00       	call   0x404127
402264:	89 30                	mov    %esi,(%eax)
402266:	8b c7                	mov    %edi,%eax
402268:	5f                   	pop    %edi
402269:	5e                   	pop    %esi
40226a:	eb 14                	jmp    0x402280
40226c:	53                   	push   %ebx
40226d:	e8 e0 43 00 00       	call   0x406652
402272:	59                   	pop    %ecx
402273:	e8 af 1e 00 00       	call   0x404127
402278:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40227e:	33 c0                	xor    %eax,%eax
402280:	5b                   	pop    %ebx
402281:	5d                   	pop    %ebp
402282:	c3                   	ret
402283:	b8 00 20 41 00       	mov    $0x412000,%eax
402288:	c3                   	ret
402289:	a1 60 57 41 00       	mov    0x415760,%eax
40228e:	56                   	push   %esi
40228f:	6a 14                	push   $0x14
402291:	5e                   	pop    %esi
402292:	85 c0                	test   %eax,%eax
402294:	75 07                	jne    0x40229d
402296:	b8 00 02 00 00       	mov    $0x200,%eax
40229b:	eb 06                	jmp    0x4022a3
40229d:	3b c6                	cmp    %esi,%eax
40229f:	7d 07                	jge    0x4022a8
4022a1:	8b c6                	mov    %esi,%eax
4022a3:	a3 60 57 41 00       	mov    %eax,0x415760
4022a8:	6a 04                	push   $0x4
4022aa:	50                   	push   %eax
4022ab:	e8 54 46 00 00       	call   0x406904
4022b0:	59                   	pop    %ecx
4022b1:	59                   	pop    %ecx
4022b2:	a3 44 47 41 00       	mov    %eax,0x414744
4022b7:	85 c0                	test   %eax,%eax
4022b9:	75 1e                	jne    0x4022d9
4022bb:	6a 04                	push   $0x4
4022bd:	56                   	push   %esi
4022be:	89 35 60 57 41 00    	mov    %esi,0x415760
4022c4:	e8 3b 46 00 00       	call   0x406904
4022c9:	59                   	pop    %ecx
4022ca:	59                   	pop    %ecx
4022cb:	a3 44 47 41 00       	mov    %eax,0x414744
4022d0:	85 c0                	test   %eax,%eax
4022d2:	75 05                	jne    0x4022d9
4022d4:	6a 1a                	push   $0x1a
4022d6:	58                   	pop    %eax
4022d7:	5e                   	pop    %esi
4022d8:	c3                   	ret
4022d9:	33 d2                	xor    %edx,%edx
4022db:	b9 00 20 41 00       	mov    $0x412000,%ecx
4022e0:	eb 05                	jmp    0x4022e7
4022e2:	a1 44 47 41 00       	mov    0x414744,%eax
4022e7:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
4022ea:	83 c1 20             	add    $0x20,%ecx
4022ed:	83 c2 04             	add    $0x4,%edx
4022f0:	81 f9 80 22 41 00    	cmp    $0x412280,%ecx
4022f6:	7c ea                	jl     0x4022e2