41edaf:	84 c0                	test   %al,%al
41edb1:	74 09                	je     0x41edbc
41edb3:	8b 34 b5 e8 77 43 00 	mov    0x4377e8(,%esi,4),%esi
41edba:	eb 07                	jmp    0x41edc3
41edbc:	8b 34 b5 b4 77 43 00 	mov    0x4377b4(,%esi,4),%esi
41edc3:	03 75 20             	add    0x20(%ebp),%esi
41edc6:	6b 45 24 3c          	imul   $0x3c,0x24(%ebp),%eax
41edca:	03 45 28             	add    0x28(%ebp),%eax
41edcd:	6b c0 3c             	imul   $0x3c,%eax,%eax
41edd0:	03 45 2c             	add    0x2c(%ebp),%eax
41edd3:	69 c8 e8 03 00 00    	imul   $0x3e8,%eax,%ecx
41edd9:	8b 45 30             	mov    0x30(%ebp),%eax
41eddc:	03 c1                	add    %ecx,%eax
41edde:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41ede2:	75 15                	jne    0x41edf9
41ede4:	89 35 a4 d4 43 00    	mov    %esi,0x43d4a4
41edea:	a3 a8 d4 43 00       	mov    %eax,0x43d4a8
41edef:	89 1d a0 d4 43 00    	mov    %ebx,0x43d4a0
41edf5:	5e                   	pop    %esi
41edf6:	5b                   	pop    %ebx
41edf7:	c9                   	leave
41edf8:	c3                   	ret
41edf9:	a3 b4 d4 43 00       	mov    %eax,0x43d4b4
41edfe:	8d 45 f8             	lea    -0x8(%ebp),%eax
41ee01:	50                   	push   %eax
41ee02:	89 35 b0 d4 43 00    	mov    %esi,0x43d4b0
41ee08:	e8 16 fa ff ff       	call   0x41e823
41ee0d:	59                   	pop    %ecx
41ee0e:	85 c0                	test   %eax,%eax
41ee10:	75 41                	jne    0x41ee53
41ee12:	69 4d f8 e8 03 00 00 	imul   $0x3e8,-0x8(%ebp),%ecx
41ee19:	a1 b4 d4 43 00       	mov    0x43d4b4,%eax
41ee1e:	03 c1                	add    %ecx,%eax
41ee20:	a3 b4 d4 43 00       	mov    %eax,0x43d4b4
41ee25:	79 0d                	jns    0x41ee34
41ee27:	05 00 5c 26 05       	add    $0x5265c00,%eax
41ee2c:	ff 0d b0 d4 43 00    	decl   0x43d4b0
41ee32:	eb 12                	jmp    0x41ee46
41ee34:	3d 00 5c 26 05       	cmp    $0x5265c00,%eax
41ee39:	7c 10                	jl     0x41ee4b
41ee3b:	05 00 a4 d9 fa       	add    $0xfad9a400,%eax
41ee40:	ff 05 b0 d4 43 00    	incl   0x43d4b0
41ee46:	a3 b4 d4 43 00       	mov    %eax,0x43d4b4
41ee4b:	89 1d ac d4 43 00    	mov    %ebx,0x43d4ac
41ee51:	eb a2                	jmp    0x41edf5
41ee53:	6a 00                	push   $0x0
41ee55:	6a 00                	push   $0x0
41ee57:	6a 00                	push   $0x0
41ee59:	6a 00                	push   $0x0
41ee5b:	6a 00                	push   $0x0
41ee5d:	e8 b9 e5 fe ff       	call   0x40d41b
41ee62:	cc                   	int3
41ee63:	8b ff                	mov    %edi,%edi
41ee65:	55                   	push   %ebp
41ee66:	8b ec                	mov    %esp,%ebp
41ee68:	51                   	push   %ecx
41ee69:	51                   	push   %ecx
41ee6a:	57                   	push   %edi
41ee6b:	bf d8 48 43 00       	mov    $0x4348d8,%edi
41ee70:	8d 45 fc             	lea    -0x4(%ebp),%eax
41ee73:	57                   	push   %edi
41ee74:	68 00 01 00 00       	push   $0x100
41ee79:	ff 75 08             	push   0x8(%ebp)
41ee7c:	50                   	push   %eax
41ee7d:	e8 75 96 00 00       	call   0x4284f7
41ee82:	83 c4 10             	add    $0x10,%esp
41ee85:	85 c0                	test   %eax,%eax
41ee87:	75 05                	jne    0x41ee8e
41ee89:	8b 45 08             	mov    0x8(%ebp),%eax
41ee8c:	eb 49                	jmp    0x41eed7
41ee8e:	83 f8 22             	cmp    $0x22,%eax
41ee91:	74 04                	je     0x41ee97
41ee93:	33 c0                	xor    %eax,%eax
41ee95:	eb 40                	jmp    0x41eed7
41ee97:	8b 45 fc             	mov    -0x4(%ebp),%eax
41ee9a:	03 c0                	add    %eax,%eax
41ee9c:	56                   	push   %esi
41ee9d:	50                   	push   %eax
41ee9e:	e8 8d 7d fe ff       	call   0x406c30
41eea3:	8b f0                	mov    %eax,%esi
41eea5:	59                   	pop    %ecx
41eea6:	85 f6                	test   %esi,%esi
41eea8:	75 0a                	jne    0x41eeb4
41eeaa:	50                   	push   %eax
41eeab:	e8 60 7d fe ff       	call   0x406c10
41eeb0:	33 c0                	xor    %eax,%eax
41eeb2:	eb 21                	jmp    0x41eed5
41eeb4:	57                   	push   %edi
41eeb5:	ff 75 fc             	push   -0x4(%ebp)
41eeb8:	8d 45 f8             	lea    -0x8(%ebp),%eax
41eebb:	56                   	push   %esi
41eebc:	50                   	push   %eax
41eebd:	e8 35 96 00 00       	call   0x4284f7
41eec2:	83 c4 10             	add    $0x10,%esp
41eec5:	85 c0                	test   %eax,%eax
41eec7:	74 03                	je     0x41eecc
41eec9:	56                   	push   %esi
41eeca:	eb df                	jmp    0x41eeab
41eecc:	6a 00                	push   $0x0
41eece:	e8 3d 7d fe ff       	call   0x406c10
41eed3:	8b c6                	mov    %esi,%eax
41eed5:	59                   	pop    %ecx
41eed6:	5e                   	pop    %esi
41eed7:	5f                   	pop    %edi
41eed8:	c9                   	leave
41eed9:	c3                   	ret
41eeda:	8b ff                	mov    %edi,%edi
41eedc:	55                   	push   %ebp
41eedd:	8b ec                	mov    %esp,%ebp
41eedf:	ff 75 14             	push   0x14(%ebp)
41eee2:	ff 75 08             	push   0x8(%ebp)
41eee5:	6a 40                	push   $0x40
41eee7:	ff 75 0c             	push   0xc(%ebp)
41eeea:	e8 de 2e 00 00       	call   0x421dcd
41eeef:	83 c4 10             	add    $0x10,%esp
41eef2:	85 c0                	test   %eax,%eax
41eef4:	75 1e                	jne    0x41ef14
41eef6:	50                   	push   %eax
41eef7:	50                   	push   %eax
41eef8:	6a 3f                	push   $0x3f
41eefa:	ff 75 10             	push   0x10(%ebp)
41eefd:	ff 75 14             	push   0x14(%ebp)
41ef00:	ff 75 0c             	push   0xc(%ebp)
41ef03:	50                   	push   %eax
41ef04:	e8 bf 96 ff ff       	call   0x4185c8
41ef09:	50                   	push   %eax
41ef0a:	e8 db 3e 00 00       	call   0x422dea
41ef0f:	83 c4 20             	add    $0x20,%esp
41ef12:	5d                   	pop    %ebp
41ef13:	c3                   	ret
41ef14:	33 c0                	xor    %eax,%eax
41ef16:	50                   	push   %eax
41ef17:	50                   	push   %eax
41ef18:	50                   	push   %eax
41ef19:	50                   	push   %eax
41ef1a:	50                   	push   %eax
41ef1b:	e8 fb e4 fe ff       	call   0x40d41b
41ef20:	cc                   	int3
41ef21:	8b ff                	mov    %edi,%edi
41ef23:	55                   	push   %ebp
41ef24:	8b ec                	mov    %esp,%ebp
41ef26:	83 ec 1c             	sub    $0x1c,%esp
41ef29:	53                   	push   %ebx
41ef2a:	56                   	push   %esi
41ef2b:	57                   	push   %edi
41ef2c:	e8 ba f8 ff ff       	call   0x41e7eb
41ef31:	8b d8                	mov    %eax,%ebx
41ef33:	89 5d f0             	mov    %ebx,-0x10(%ebp)
41ef36:	e8 b6 f8 ff ff       	call   0x41e7f1
41ef3b:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ef3e:	33 f6                	xor    %esi,%esi
41ef40:	8d 45 fc             	lea    -0x4(%ebp),%eax
41ef43:	89 75 e8             	mov    %esi,-0x18(%ebp)
41ef46:	50                   	push   %eax
41ef47:	89 75 fc             	mov    %esi,-0x4(%ebp)
41ef4a:	89 75 f8             	mov    %esi,-0x8(%ebp)
41ef4d:	e8 fd f8 ff ff       	call   0x41e84f
41ef52:	59                   	pop    %ecx
41ef53:	85 c0                	test   %eax,%eax
41ef55:	0f 85 4d 02 00 00    	jne    0x41f1a8
41ef5b:	8d 45 f8             	lea    -0x8(%ebp),%eax
41ef5e:	50                   	push   %eax
41ef5f:	e8 93 f8 ff ff       	call   0x41e7f7
41ef64:	59                   	pop    %ecx
41ef65:	85 c0                	test   %eax,%eax
41ef67:	0f 85 3b 02 00 00    	jne    0x41f1a8
41ef6d:	a1 04 fb 43 00       	mov    0x43fb04,%eax
41ef72:	8b 7d 08             	mov    0x8(%ebp),%edi
41ef75:	85 c0                	test   %eax,%eax
41ef77:	74 31                	je     0x41efaa
41ef79:	8b cf                	mov    %edi,%ecx
41ef7b:	66 8b 11             	mov    (%ecx),%dx
41ef7e:	66 3b 10             	cmp    (%eax),%dx
41ef81:	75 1e                	jne    0x41efa1
41ef83:	66 85 d2             	test   %dx,%dx
41ef86:	74 15                	je     0x41ef9d
41ef88:	66 8b 51 02          	mov    0x2(%ecx),%dx
41ef8c:	66 3b 50 02          	cmp    0x2(%eax),%dx
41ef90:	75 0f                	jne    0x41efa1
41ef92:	83 c1 04             	add    $0x4,%ecx
41ef95:	83 c0 04             	add    $0x4,%eax
41ef98:	66 85 d2             	test   %dx,%dx
41ef9b:	75 de                	jne    0x41ef7b
41ef9d:	8b c6                	mov    %esi,%eax
41ef9f:	eb 05                	jmp    0x41efa6
41efa1:	1b c0                	sbb    %eax,%eax
41efa3:	83 c8 01             	or     $0x1,%eax
41efa6:	85 c0                	test   %eax,%eax
41efa8:	74 31                	je     0x41efdb
41efaa:	8b cf                	mov    %edi,%ecx
41efac:	8d 51 02             	lea    0x2(%ecx),%edx
41efaf:	66 8b 01             	mov    (%ecx),%ax
41efb2:	83 c1 02             	add    $0x2,%ecx
41efb5:	66 3b c6             	cmp    %si,%ax
41efb8:	75 f5                	jne    0x41efaf
41efba:	2b ca                	sub    %edx,%ecx
41efbc:	d1 f9                	sar    $1,%ecx
41efbe:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
41efc5:	50                   	push   %eax
41efc6:	e8 65 7c fe ff       	call   0x406c30
41efcb:	8b f0                	mov    %eax,%esi
41efcd:	59                   	pop    %ecx
41efce:	85 f6                	test   %esi,%esi
41efd0:	75 0e                	jne    0x41efe0
41efd2:	33 c0                	xor    %eax,%eax
41efd4:	50                   	push   %eax
41efd5:	e8 36 7c fe ff       	call   0x406c10
41efda:	59                   	pop    %ecx
41efdb:	5f                   	pop    %edi
41efdc:	5e                   	pop    %esi
41efdd:	5b                   	pop    %ebx
41efde:	c9                   	leave
41efdf:	c3                   	ret
41efe0:	ff 35 04 fb 43 00    	push   0x43fb04
41efe6:	e8 25 7c fe ff       	call   0x406c10
41efeb:	59                   	pop    %ecx
41efec:	8b cf                	mov    %edi,%ecx
41efee:	89 35 04 fb 43 00    	mov    %esi,0x43fb04
41eff4:	8d 51 02             	lea    0x2(%ecx),%edx
41eff7:	66 8b 01             	mov    (%ecx),%ax
41effa:	83 c1 02             	add    $0x2,%ecx
41effd:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
41f001:	75 f4                	jne    0x41eff7
41f003:	2b ca                	sub    %edx,%ecx
41f005:	d1 f9                	sar    $1,%ecx
41f007:	57                   	push   %edi
41f008:	8d 41 01             	lea    0x1(%ecx),%eax
41f00b:	50                   	push   %eax
41f00c:	56                   	push   %esi
41f00d:	e8 76 3a ff ff       	call   0x412a88
41f012:	83 c4 0c             	add    $0xc,%esp
41f015:	85 c0                	test   %eax,%eax
41f017:	0f 85 89 01 00 00    	jne    0x41f1a6
41f01d:	8b 75 ec             	mov    -0x14(%ebp),%esi
41f020:	68 80 00 00 00       	push   $0x80
41f025:	50                   	push   %eax
41f026:	ff 36                	push   (%esi)
41f028:	e8 93 c3 fe ff       	call   0x40b3c0
41f02d:	68 80 00 00 00       	push   $0x80
41f032:	33 c0                	xor    %eax,%eax
41f034:	50                   	push   %eax
41f035:	ff 76 04             	push   0x4(%esi)
41f038:	e8 83 c3 fe ff       	call   0x40b3c0
41f03d:	6a 40                	push   $0x40
41f03f:	33 c0                	xor    %eax,%eax
41f041:	50                   	push   %eax
41f042:	ff 33                	push   (%ebx)
41f044:	e8 77 c3 fe ff       	call   0x40b3c0
41f049:	6a 40                	push   $0x40
41f04b:	33 c0                	xor    %eax,%eax
41f04d:	50                   	push   %eax
41f04e:	ff 73 04             	push   0x4(%ebx)
41f051:	e8 6a c3 fe ff       	call   0x40b3c0
41f056:	6a 03                	push   $0x3
41f058:	ff 33                	push   (%ebx)
41f05a:	ff 36                	push   (%esi)
41f05c:	57                   	push   %edi
41f05d:	e8 78 fe ff ff       	call   0x41eeda
41f062:	83 c4 40             	add    $0x40,%esp
41f065:	33 c9                	xor    %ecx,%ecx
41f067:	6a 03                	push   $0x3
41f069:	58                   	pop    %eax
41f06a:	66 39 0f             	cmp    %cx,(%edi)
41f06d:	74 03                	je     0x41f072
41f06f:	83 c7 02             	add    $0x2,%edi
41f072:	83 e8 01             	sub    $0x1,%eax
41f075:	75 f3                	jne    0x41f06a
41f077:	0f b7 07             	movzwl (%edi),%eax
41f07a:	8b c8                	mov    %eax,%ecx
41f07c:	6a 2d                	push   $0x2d
41f07e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41f081:	59                   	pop    %ecx
41f082:	66 3b c1             	cmp    %cx,%ax
41f085:	75 03                	jne    0x41f08a
41f087:	83 c7 02             	add    $0x2,%edi
41f08a:	6a 0a                	push   $0xa
41f08c:	8d 45 f4             	lea    -0xc(%ebp),%eax
41f08f:	50                   	push   %eax
41f090:	57                   	push   %edi
41f091:	e8 2f a3 ff ff       	call   0x4193c5
41f096:	83 c4 0c             	add    $0xc,%esp
41f099:	69 f0 10 0e 00 00    	imul   $0xe10,%eax,%esi
41f09f:	89 75 fc             	mov    %esi,-0x4(%ebp)
41f0a2:	0f b7 0f             	movzwl (%edi),%ecx
41f0a5:	83 f9 2b             	cmp    $0x2b,%ecx
41f0a8:	74 09                	je     0x41f0b3
41f0aa:	8d 41 d0             	lea    -0x30(%ecx),%eax
41f0ad:	66 83 f8 09          	cmp    $0x9,%ax
41f0b1:	77 05                	ja     0x41f0b8
41f0b3:	83 c7 02             	add    $0x2,%edi
41f0b6:	eb ea                	jmp    0x41f0a2
41f0b8:	6a 3a                	push   $0x3a
41f0ba:	58                   	pop    %eax
41f0bb:	66 3b c8             	cmp    %ax,%cx
41f0be:	0f 85 94 00 00 00    	jne    0x41f158
41f0c4:	6a 0a                	push   $0xa
41f0c6:	8d 45 f4             	lea    -0xc(%ebp),%eax
41f0c9:	83 c7 02             	add    $0x2,%edi
41f0cc:	50                   	push   %eax
41f0cd:	57                   	push   %edi
41f0ce:	e8 f2 a2 ff ff       	call   0x4193c5
41f0d3:	8b 75 fc             	mov    -0x4(%ebp),%esi
41f0d6:	83 c4 0c             	add    $0xc,%esp
41f0d9:	6b c0 3c             	imul   $0x3c,%eax,%eax
41f0dc:	6a 30                	push   $0x30
41f0de:	59                   	pop    %ecx
41f0df:	03 f0                	add    %eax,%esi
41f0e1:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41f0e4:	0f b7 07             	movzwl (%edi),%eax
41f0e7:	89 75 fc             	mov    %esi,-0x4(%ebp)
41f0ea:	8b d0                	mov    %eax,%edx
41f0ec:	66 3b c1             	cmp    %cx,%ax
41f0ef:	72 20                	jb     0x41f111
41f0f1:	6a 39                	push   $0x39
41f0f3:	8b c8                	mov    %eax,%ecx
41f0f5:	5b                   	pop    %ebx
41f0f6:	0f b7 d1             	movzwl %cx,%edx
41f0f9:	66 3b cb             	cmp    %bx,%cx
41f0fc:	77 10                	ja     0x41f10e
41f0fe:	83 c7 02             	add    $0x2,%edi
41f101:	0f b7 07             	movzwl (%edi),%eax
41f104:	8b c8                	mov    %eax,%ecx
41f106:	8b d0                	mov    %eax,%edx
41f108:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
41f10c:	73 e8                	jae    0x41f0f6
41f10e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41f111:	6a 3a                	push   $0x3a
41f113:	58                   	pop    %eax
41f114:	66 3b d0             	cmp    %ax,%dx
41f117:	75 3f                	jne    0x41f158
41f119:	6a 0a                	push   $0xa
41f11b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41f11e:	83 c7 02             	add    $0x2,%edi
41f121:	50                   	push   %eax
41f122:	57                   	push   %edi
41f123:	e8 9d a2 ff ff       	call   0x4193c5
41f128:	8b 75 fc             	mov    -0x4(%ebp),%esi
41f12b:	83 c4 0c             	add    $0xc,%esp
41f12e:	03 f0                	add    %eax,%esi
41f130:	0f b7 07             	movzwl (%edi),%eax
41f133:	89 75 fc             	mov    %esi,-0x4(%ebp)
41f136:	6a 30                	push   $0x30
41f138:	5a                   	pop    %edx
41f139:	66 3b c2             	cmp    %dx,%ax
41f13c:	72 1a                	jb     0x41f158
41f13e:	6a 39                	push   $0x39
41f140:	8b c8                	mov    %eax,%ecx
41f142:	5b                   	pop    %ebx
41f143:	66 3b cb             	cmp    %bx,%cx
41f146:	77 0d                	ja     0x41f155