402ddb:	8d 45 ec             	lea    -0x14(%ebp),%eax
402dde:	50                   	push   %eax
402ddf:	ff 75 ec             	push   -0x14(%ebp)
402de2:	56                   	push   %esi
402de3:	6a 01                	push   $0x1
402de5:	ff 75 08             	push   0x8(%ebp)
402de8:	ff 15 d0 d7 40 00    	call   *0x40d7d0
402dee:	3b c3                	cmp    %ebx,%eax
402df0:	75 1d                	jne    0x402e0f
402df2:	53                   	push   %ebx
402df3:	53                   	push   %ebx
402df4:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402dfa:	68 04 01 00 00       	push   $0x104
402dff:	50                   	push   %eax
402e00:	0f b7 06             	movzwl (%esi),%eax
402e03:	50                   	push   %eax
402e04:	ff 76 04             	push   0x4(%esi)
402e07:	53                   	push   %ebx
402e08:	53                   	push   %ebx
402e09:	ff 15 e4 a0 40 00    	call   *0x40a0e4
402e0f:	56                   	push   %esi
402e10:	ff 15 48 a1 40 00    	call   *0x40a148
402e16:	59                   	pop    %ecx
402e17:	38 9d 54 fe ff ff    	cmp    %bl,-0x1ac(%ebp)
402e1d:	74 27                	je     0x402e46
402e1f:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402e25:	8b 8f 60 02 00 00    	mov    0x260(%edi),%ecx
402e2b:	89 45 a8             	mov    %eax,-0x58(%ebp)
402e2e:	8d 45 94             	lea    -0x6c(%ebp),%eax
402e31:	50                   	push   %eax
402e32:	53                   	push   %ebx
402e33:	68 06 10 00 00       	push   $0x1006
402e38:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%ebp)
402e3f:	ff 37                	push   (%edi)
402e41:	e8 ac 53 00 00       	call   0x4081f2
402e46:	ff 45 e4             	incl   -0x1c(%ebp)
402e49:	e9 f0 fb ff ff       	jmp    0x402a3e
402e4e:	89 45 d0             	mov    %eax,-0x30(%ebp)
402e51:	8d 45 d0             	lea    -0x30(%ebp),%eax
402e54:	68 d8 a5 40 00       	push   $0x40a5d8
402e59:	50                   	push   %eax
402e5a:	e8 d7 60 00 00       	call   0x408f36
402e5f:	8d 45 d8             	lea    -0x28(%ebp),%eax
402e62:	68 d8 a5 40 00       	push   $0x40a5d8
402e67:	50                   	push   %eax
402e68:	89 5d d8             	mov    %ebx,-0x28(%ebp)
402e6b:	e8 c6 60 00 00       	call   0x408f36
402e70:	33 db                	xor    %ebx,%ebx
402e72:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
402e75:	74 09                	je     0x402e80
402e77:	ff 75 e0             	push   -0x20(%ebp)
402e7a:	ff 15 dc a0 40 00    	call   *0x40a0dc
402e80:	39 5d 08             	cmp    %ebx,0x8(%ebp)
402e83:	74 09                	je     0x402e8e
402e85:	ff 75 08             	push   0x8(%ebp)
402e88:	ff 15 dc a0 40 00    	call   *0x40a0dc
402e8e:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402e91:	74 0a                	je     0x402e9d
402e93:	ff 75 e8             	push   -0x18(%ebp)
402e96:	ff 15 48 a1 40 00    	call   *0x40a148
402e9c:	59                   	pop    %ecx
402e9d:	8b 75 bc             	mov    -0x44(%ebp),%esi
402ea0:	8b 45 98             	mov    -0x68(%ebp),%eax
402ea3:	3b 46 04             	cmp    0x4(%esi),%eax
402ea6:	7f 1c                	jg     0x402ec4
402ea8:	53                   	push   %ebx
402ea9:	ff 76 04             	push   0x4(%esi)
402eac:	68 08 10 00 00       	push   $0x1008
402eb1:	ff 36                	push   (%esi)
402eb3:	ff 15 dc a2 40 00    	call   *0x40a2dc
402eb9:	ff 4e 04             	decl   0x4(%esi)
402ebc:	8b 46 04             	mov    0x4(%esi),%eax
402ebf:	39 45 98             	cmp    %eax,-0x68(%ebp)
402ec2:	7e e4                	jle    0x402ea8
402ec4:	53                   	push   %ebx
402ec5:	6a 01                	push   $0x1
402ec7:	6a 0b                	push   $0xb
402ec9:	ff 36                	push   (%esi)
402ecb:	ff 15 dc a2 40 00    	call   *0x40a2dc
402ed1:	8b 45 98             	mov    -0x68(%ebp),%eax
402ed4:	89 46 04             	mov    %eax,0x4(%esi)
402ed7:	b8 dd 2e 40 00       	mov    $0x402edd,%eax
402edc:	c3                   	ret
402edd:	8b 45 90             	mov    -0x70(%ebp),%eax
402ee0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402ee3:	5f                   	pop    %edi
402ee4:	5e                   	pop    %esi
402ee5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402eec:	5b                   	pop    %ebx
402eed:	c9                   	leave
402eee:	c2 04 00             	ret    $0x4
402ef1:	8b 54 24 04          	mov    0x4(%esp),%edx
402ef5:	33 c0                	xor    %eax,%eax
402ef7:	8a 0a                	mov    (%edx),%cl
402ef9:	84 c9                	test   %cl,%cl
402efb:	74 21                	je     0x402f1e
402efd:	56                   	push   %esi
402efe:	8b f0                	mov    %eax,%esi
402f00:	c1 e6 13             	shl    $0x13,%esi
402f03:	c1 e8 0d             	shr    $0xd,%eax
402f06:	0b c6                	or     %esi,%eax
402f08:	80 f9 61             	cmp    $0x61,%cl
402f0b:	0f be c9             	movsbl %cl,%ecx
402f0e:	7c 03                	jl     0x402f13
402f10:	83 e9 20             	sub    $0x20,%ecx
402f13:	03 c1                	add    %ecx,%eax
402f15:	8a 4a 01             	mov    0x1(%edx),%cl
402f18:	42                   	inc    %edx
402f19:	84 c9                	test   %cl,%cl
402f1b:	75 e1                	jne    0x402efe
402f1d:	5e                   	pop    %esi
402f1e:	c3                   	ret
402f1f:	55                   	push   %ebp
402f20:	8b ec                	mov    %esp,%ebp
402f22:	81 ec 0c 01 00 00    	sub    $0x10c,%esp
402f28:	33 c9                	xor    %ecx,%ecx
402f2a:	39 4d 14             	cmp    %ecx,0x14(%ebp)
402f2d:	0f 86 12 01 00 00    	jbe    0x403045
402f33:	33 c0                	xor    %eax,%eax
402f35:	88 84 05 f4 fe ff ff 	mov    %al,-0x10c(%ebp,%eax,1)
402f3c:	40                   	inc    %eax
402f3d:	3d 00 01 00 00       	cmp    $0x100,%eax
402f42:	72 f1                	jb     0x402f35
402f44:	53                   	push   %ebx
402f45:	56                   	push   %esi
402f46:	8b 35 40 a1 40 00    	mov    0x40a140,%esi
402f4c:	57                   	push   %edi
402f4d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
402f50:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402f53:	bb ff 00 00 00       	mov    $0xff,%ebx
402f58:	bf b9 07 00 00       	mov    $0x7b9,%edi
402f5d:	8b 45 f4             	mov    -0xc(%ebp),%eax
402f60:	33 d2                	xor    %edx,%edx
402f62:	6a 41                	push   $0x41
402f64:	6a 61                	push   $0x61
402f66:	8a 8c 05 f4 fe ff ff 	mov    -0x10c(%ebp,%eax,1),%cl
402f6d:	68 d8 c3 40 00       	push   $0x40c3d8
402f72:	f7 75 0c             	divl   0xc(%ebp)
402f75:	8b 45 08             	mov    0x8(%ebp),%eax
402f78:	88 4d ff             	mov    %cl,-0x1(%ebp)
402f7b:	8a 04 02             	mov    (%edx,%eax,1),%al
402f7e:	8b 55 f8             	mov    -0x8(%ebp),%edx
402f81:	03 d1                	add    %ecx,%edx
402f83:	03 c2                	add    %edx,%eax
402f85:	23 c3                	and    %ebx,%eax
402f87:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f8a:	ff d6                	call   *%esi
402f8c:	68 10 eb 09 00       	push   $0x9eb10
402f91:	57                   	push   %edi
402f92:	68 c4 c3 40 00       	push   $0x40c3c4
402f97:	ff d6                	call   *%esi
402f99:	57                   	push   %edi
402f9a:	68 a4 c3 40 00       	push   $0x40c3a4
402f9f:	ff d6                	call   *%esi
402fa1:	57                   	push   %edi
402fa2:	68 84 c3 40 00       	push   $0x40c384
402fa7:	ff d6                	call   *%esi
402fa9:	8b 45 f8             	mov    -0x8(%ebp),%eax
402fac:	8b 55 f4             	mov    -0xc(%ebp),%edx
402faf:	83 c4 28             	add    $0x28,%esp
402fb2:	ff 45 f4             	incl   -0xc(%ebp)
402fb5:	8a 8c 05 f4 fe ff ff 	mov    -0x10c(%ebp,%eax,1),%cl
402fbc:	81 7d f4 00 01 00 00 	cmpl   $0x100,-0xc(%ebp)
402fc3:	8d 84 05 f4 fe ff ff 	lea    -0x10c(%ebp,%eax,1),%eax
402fca:	88 8c 15 f4 fe ff ff 	mov    %cl,-0x10c(%ebp,%edx,1)
402fd1:	8a 4d ff             	mov    -0x1(%ebp),%cl
402fd4:	88 08                	mov    %cl,(%eax)
402fd6:	72 85                	jb     0x402f5d
402fd8:	8b 45 14             	mov    0x14(%ebp),%eax
402fdb:	8b 4d 10             	mov    0x10(%ebp),%ecx
402fde:	33 ff                	xor    %edi,%edi
402fe0:	48                   	dec    %eax
402fe1:	40                   	inc    %eax
402fe2:	89 7d f8             	mov    %edi,-0x8(%ebp)
402fe5:	89 4d 14             	mov    %ecx,0x14(%ebp)
402fe8:	89 45 0c             	mov    %eax,0xc(%ebp)
402feb:	47                   	inc    %edi
402fec:	23 fb                	and    %ebx,%edi
402fee:	8a 8c 3d f4 fe ff ff 	mov    -0x10c(%ebp,%edi,1),%cl
402ff5:	8d 84 3d f4 fe ff ff 	lea    -0x10c(%ebp,%edi,1),%eax
402ffc:	8a d1                	mov    %cl,%dl
402ffe:	03 55 f8             	add    -0x8(%ebp),%edx
403001:	23 d3                	and    %ebx,%edx
403003:	89 55 f8             	mov    %edx,-0x8(%ebp)
403006:	8d b4 15 f4 fe ff ff 	lea    -0x10c(%ebp,%edx,1),%esi
40300d:	8a 94 15 f4 fe ff ff 	mov    -0x10c(%ebp,%edx,1),%dl
403014:	88 10                	mov    %dl,(%eax)
403016:	88 0e                	mov    %cl,(%esi)
403018:	0f b6 00             	movzbl (%eax),%eax
40301b:	0f b6 c9             	movzbl %cl,%ecx
40301e:	03 c1                	add    %ecx,%eax
403020:	b9 00 01 00 00       	mov    $0x100,%ecx
403025:	99                   	cltd
403026:	f7 f9                	idiv   %ecx
403028:	8b 45 14             	mov    0x14(%ebp),%eax
40302b:	8a 8c 15 f4 fe ff ff 	mov    -0x10c(%ebp,%edx,1),%cl
403032:	30 08                	xor    %cl,(%eax)
403034:	40                   	inc    %eax
403035:	ff 4d 0c             	decl   0xc(%ebp)
403038:	89 45 14             	mov    %eax,0x14(%ebp)
40303b:	75 ae                	jne    0x402feb
40303d:	8b 45 10             	mov    0x10(%ebp),%eax
403040:	5f                   	pop    %edi
403041:	5e                   	pop    %esi
403042:	5b                   	pop    %ebx
403043:	c9                   	leave
403044:	c3                   	ret
403045:	33 c0                	xor    %eax,%eax
403047:	c9                   	leave
403048:	c3                   	ret
403049:	55                   	push   %ebp
40304a:	8b ec                	mov    %esp,%ebp
40304c:	51                   	push   %ecx
40304d:	51                   	push   %ecx
40304e:	53                   	push   %ebx
40304f:	56                   	push   %esi
403050:	57                   	push   %edi
403051:	8b 7d 08             	mov    0x8(%ebp),%edi
403054:	83 65 08 00          	andl   $0x0,0x8(%ebp)
403058:	8b 47 3c             	mov    0x3c(%edi),%eax
40305b:	8b 74 38 78          	mov    0x78(%eax,%edi,1),%esi
40305f:	8b 44 3e 20          	mov    0x20(%esi,%edi,1),%eax
403063:	03 f7                	add    %edi,%esi
403065:	03 c7                	add    %edi,%eax
403067:	8b 5e 1c             	mov    0x1c(%esi),%ebx
40306a:	8b 4e 24             	mov    0x24(%esi),%ecx
40306d:	03 df                	add    %edi,%ebx
40306f:	03 cf                	add    %edi,%ecx
403071:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
403075:	89 4d f8             	mov    %ecx,-0x8(%ebp)
403078:	76 25                	jbe    0x40309f
40307a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40307d:	8b 45 fc             	mov    -0x4(%ebp),%eax
403080:	8b 00                	mov    (%eax),%eax
403082:	03 c7                	add    %edi,%eax
403084:	50                   	push   %eax
403085:	e8 67 fe ff ff       	call   0x402ef1
40308a:	3b 45 0c             	cmp    0xc(%ebp),%eax
40308d:	59                   	pop    %ecx
40308e:	74 16                	je     0x4030a6
403090:	ff 45 08             	incl   0x8(%ebp)
403093:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
403097:	8b 45 08             	mov    0x8(%ebp),%eax
40309a:	3b 46 18             	cmp    0x18(%esi),%eax
40309d:	72 de                	jb     0x40307d
40309f:	33 c0                	xor    %eax,%eax
4030a1:	5f                   	pop    %edi
4030a2:	5e                   	pop    %esi
4030a3:	5b                   	pop    %ebx
4030a4:	c9                   	leave
4030a5:	c3                   	ret
4030a6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4030a9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4030ac:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4030b0:	8b 04 83             	mov    (%ebx,%eax,4),%eax
4030b3:	03 c7                	add    %edi,%eax
4030b5:	eb ea                	jmp    0x4030a1
4030b7:	55                   	push   %ebp
4030b8:	8b ec                	mov    %esp,%ebp
4030ba:	83 ec 10             	sub    $0x10,%esp
4030bd:	53                   	push   %ebx
4030be:	8b 1d d4 a0 40 00    	mov    0x40a0d4,%ebx
4030c4:	56                   	push   %esi
4030c5:	33 f6                	xor    %esi,%esi
4030c7:	57                   	push   %edi
4030c8:	56                   	push   %esi
4030c9:	56                   	push   %esi
4030ca:	68 00 c4 40 00       	push   $0x40c400
4030cf:	ff d3                	call   *%ebx
4030d1:	56                   	push   %esi
4030d2:	56                   	push   %esi
4030d3:	68 ec c3 40 00       	push   $0x40c3ec
4030d8:	8b f8                	mov    %eax,%edi
4030da:	ff d3                	call   *%ebx
4030dc:	85 c0                	test   %eax,%eax
4030de:	0f 84 82 00 00 00    	je     0x403166
4030e4:	68 5f 56 de 16       	push   $0x16de565f
4030e9:	57                   	push   %edi
4030ea:	e8 5a ff ff ff       	call   0x403049
4030ef:	68 aa 89 4b 1a       	push   $0x1a4b89aa
4030f4:	57                   	push   %edi
4030f5:	89 45 f0             	mov    %eax,-0x10(%ebp)
4030f8:	e8 4c ff ff ff       	call   0x403049
4030fd:	68 3c 8e 0d fa       	push   $0xfa0d8e3c
403102:	57                   	push   %edi
403103:	89 45 f4             	mov    %eax,-0xc(%ebp)
403106:	e8 3e ff ff ff       	call   0x403049
40310b:	68 43 17 cb 31       	push   $0x31cb1743
403110:	57                   	push   %edi
403111:	8b d8                	mov    %eax,%ebx
403113:	e8 31 ff ff ff       	call   0x403049
403118:	68 d0 8b 67 dd       	push   $0xdd678bd0
40311d:	57                   	push   %edi
40311e:	89 45 fc             	mov    %eax,-0x4(%ebp)
403121:	e8 23 ff ff ff       	call   0x403049
403126:	83 c4 28             	add    $0x28,%esp
403129:	89 45 f8             	mov    %eax,-0x8(%ebp)
40312c:	6a 0a                	push   $0xa
40312e:	68 38 52 00 00       	push   $0x5238
403133:	56                   	push   %esi
403134:	ff d3                	call   *%ebx
403136:	8b f8                	mov    %eax,%edi
403138:	3b fe                	cmp    %esi,%edi
40313a:	74 2a                	je     0x403166
40313c:	57                   	push   %edi
40313d:	56                   	push   %esi
40313e:	ff 55 fc             	call   *-0x4(%ebp)
403141:	3b c6                	cmp    %esi,%eax
403143:	89 45 fc             	mov    %eax,-0x4(%ebp)
403146:	74 1e                	je     0x403166
403148:	57                   	push   %edi
403149:	56                   	push   %esi
40314a:	ff 55 f8             	call   *-0x8(%ebp)
40314d:	56                   	push   %esi
40314e:	8b d8                	mov    %eax,%ebx
403150:	6a 40                	push   $0x40
403152:	68 00 30 00 00       	push   $0x3000
403157:	53                   	push   %ebx
403158:	56                   	push   %esi
403159:	ff 55 f4             	call   *-0xc(%ebp)
40315c:	50                   	push   %eax
40315d:	ff 55 f0             	call   *-0x10(%ebp)
403160:	8b f8                	mov    %eax,%edi
403162:	3b fe                	cmp    %esi,%edi
403164:	75 04                	jne    0x40316a
403166:	32 c0                	xor    %al,%al
403168:	eb 1e                	jmp    0x403188
40316a:	53                   	push   %ebx
40316b:	ff 75 fc             	push   -0x4(%ebp)
40316e:	57                   	push   %edi
40316f:	e8 e0 5e 00 00       	call   0x409054
403174:	53                   	push   %ebx
403175:	57                   	push   %edi
403176:	ff 75 0c             	push   0xc(%ebp)
403179:	ff 75 08             	push   0x8(%ebp)
40317c:	e8 9e fd ff ff       	call   0x402f1f
403181:	83 c4 1c             	add    $0x1c,%esp
403184:	ff d7                	call   *%edi
403186:	b0 01                	mov    $0x1,%al
403188:	5f                   	pop    %edi
403189:	5e                   	pop    %esi
40318a:	5b                   	pop    %ebx
40318b:	c9                   	leave
40318c:	c3                   	ret
40318d:	e8 05 00 00 00       	call   0x403197
403192:	e9 0a 00 00 00       	jmp    0x4031a1
403197:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
40319c:	e9 93 45 00 00       	jmp    0x407734
4031a1:	68 ad 31 40 00       	push   $0x4031ad
4031a6:	e8 db 5e 00 00       	call   0x409086