40eb44:	e8 c7 39 ff ff       	call   0x402510
40eb49:	83 7d e4 08          	cmpl   $0x8,-0x1c(%ebp)
40eb4d:	8d 45 d0             	lea    -0x30(%ebp),%eax
40eb50:	6a 00                	push   $0x0
40eb52:	0f 43 45 d0          	cmovae -0x30(%ebp),%eax
40eb56:	50                   	push   %eax
40eb57:	6a 00                	push   $0x0
40eb59:	ff 15 e4 f1 43 00    	call   *0x43f1e4
40eb5f:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40eb62:	83 f9 08             	cmp    $0x8,%ecx
40eb65:	72 32                	jb     0x40eb99
40eb67:	8b 55 d0             	mov    -0x30(%ebp),%edx
40eb6a:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40eb71:	8b c2                	mov    %edx,%eax
40eb73:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40eb79:	72 14                	jb     0x40eb8f
40eb7b:	8b 50 fc             	mov    -0x4(%eax),%edx
40eb7e:	83 c1 23             	add    $0x23,%ecx
40eb81:	2b c2                	sub    %edx,%eax
40eb83:	83 c0 fc             	add    $0xfffffffc,%eax
40eb86:	83 f8 1f             	cmp    $0x1f,%eax
40eb89:	0f 87 15 02 00 00    	ja     0x40eda4
40eb8f:	51                   	push   %ecx
40eb90:	52                   	push   %edx
40eb91:	e8 78 cd 00 00       	call   0x41b90e
40eb96:	83 c4 08             	add    $0x8,%esp
40eb99:	6a 07                	push   $0x7
40eb9b:	68 30 af 44 00       	push   $0x44af30
40eba0:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40eba3:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40ebaa:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40ebb1:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40ebb8:	e8 53 39 ff ff       	call   0x402510
40ebbd:	83 7d e4 08          	cmpl   $0x8,-0x1c(%ebp)
40ebc1:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ebc4:	0f 43 45 d0          	cmovae -0x30(%ebp),%eax
40ebc8:	50                   	push   %eax
40ebc9:	ff 15 08 f2 43 00    	call   *0x43f208
40ebcf:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ebd2:	83 f8 01             	cmp    $0x1,%eax
40ebd5:	0f 95 c3             	setne  %bl
40ebd8:	83 f9 08             	cmp    $0x8,%ecx
40ebdb:	72 32                	jb     0x40ec0f
40ebdd:	8b 55 d0             	mov    -0x30(%ebp),%edx
40ebe0:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40ebe7:	8b c2                	mov    %edx,%eax
40ebe9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ebef:	72 14                	jb     0x40ec05
40ebf1:	8b 50 fc             	mov    -0x4(%eax),%edx
40ebf4:	83 c1 23             	add    $0x23,%ecx
40ebf7:	2b c2                	sub    %edx,%eax
40ebf9:	83 c0 fc             	add    $0xfffffffc,%eax
40ebfc:	83 f8 1f             	cmp    $0x1f,%eax
40ebff:	0f 87 a4 01 00 00    	ja     0x40eda9
40ec05:	51                   	push   %ecx
40ec06:	52                   	push   %edx
40ec07:	e8 02 cd 00 00       	call   0x41b90e
40ec0c:	83 c4 08             	add    $0x8,%esp
40ec0f:	84 db                	test   %bl,%bl
40ec11:	0f 85 64 01 00 00    	jne    0x40ed7b
40ec17:	6a 07                	push   $0x7
40ec19:	68 30 af 44 00       	push   $0x44af30
40ec1e:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40ec21:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
40ec28:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40ec2f:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40ec36:	e8 d5 38 ff ff       	call   0x402510
40ec3b:	8d 55 b4             	lea    -0x4c(%ebp),%edx
40ec3e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40ec45:	8b ce                	mov    %esi,%ecx
40ec47:	e8 04 5d 00 00       	call   0x414950
40ec4c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40ec53:	8a d8                	mov    %al,%bl
40ec55:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40ec58:	83 f9 08             	cmp    $0x8,%ecx
40ec5b:	72 32                	jb     0x40ec8f
40ec5d:	8b 55 b4             	mov    -0x4c(%ebp),%edx
40ec60:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40ec67:	8b c2                	mov    %edx,%eax
40ec69:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ec6f:	72 14                	jb     0x40ec85
40ec71:	8b 50 fc             	mov    -0x4(%eax),%edx
40ec74:	83 c1 23             	add    $0x23,%ecx
40ec77:	2b c2                	sub    %edx,%eax
40ec79:	83 c0 fc             	add    $0xfffffffc,%eax
40ec7c:	83 f8 1f             	cmp    $0x1f,%eax
40ec7f:	0f 87 29 01 00 00    	ja     0x40edae
40ec85:	51                   	push   %ecx
40ec86:	52                   	push   %edx
40ec87:	e8 82 cc 00 00       	call   0x41b90e
40ec8c:	83 c4 08             	add    $0x8,%esp
40ec8f:	33 c0                	xor    %eax,%eax
40ec91:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40ec98:	c7 45 c8 07 00 00 00 	movl   $0x7,-0x38(%ebp)
40ec9f:	66 89 45 b4          	mov    %ax,-0x4c(%ebp)
40eca3:	84 db                	test   %bl,%bl
40eca5:	0f 84 d0 00 00 00    	je     0x40ed7b
40ecab:	8b 47 68             	mov    0x68(%edi),%eax
40ecae:	85 c0                	test   %eax,%eax
40ecb0:	74 0e                	je     0x40ecc0
40ecb2:	50                   	push   %eax
40ecb3:	ff 15 68 f0 43 00    	call   *0x43f068
40ecb9:	c7 47 68 00 00 00 00 	movl   $0x0,0x68(%edi)
40ecc0:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40ecc4:	8d 5f 34             	lea    0x34(%edi),%ebx
40ecc7:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40ecce:	72 02                	jb     0x40ecd2
40ecd0:	8b 36                	mov    (%esi),%esi
40ecd2:	56                   	push   %esi
40ecd3:	ff 15 f0 f1 43 00    	call   *0x43f1f0
40ecd9:	8b d0                	mov    %eax,%edx
40ecdb:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ecde:	8d 72 02             	lea    0x2(%edx),%esi
40ece1:	66 8b 0a             	mov    (%edx),%cx
40ece4:	83 c2 02             	add    $0x2,%edx
40ece7:	66 85 c9             	test   %cx,%cx
40ecea:	75 f5                	jne    0x40ece1
40ecec:	8b 4b 14             	mov    0x14(%ebx),%ecx
40ecef:	2b d6                	sub    %esi,%edx
40ecf1:	d1 fa                	sar    $1,%edx
40ecf3:	3b d1                	cmp    %ecx,%edx
40ecf5:	77 2d                	ja     0x40ed24
40ecf7:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40ecfa:	8b c3                	mov    %ebx,%eax
40ecfc:	83 f9 08             	cmp    $0x8,%ecx
40ecff:	72 05                	jb     0x40ed06
40ed01:	8b 03                	mov    (%ebx),%eax
40ed03:	89 45 cc             	mov    %eax,-0x34(%ebp)
40ed06:	8d 34 12             	lea    (%edx,%edx,1),%esi
40ed09:	89 53 10             	mov    %edx,0x10(%ebx)
40ed0c:	56                   	push   %esi
40ed0d:	ff 75 e8             	push   -0x18(%ebp)
40ed10:	50                   	push   %eax
40ed11:	e8 3a e7 00 00       	call   0x41d450
40ed16:	8b 45 cc             	mov    -0x34(%ebp),%eax
40ed19:	83 c4 0c             	add    $0xc,%esp
40ed1c:	33 c9                	xor    %ecx,%ecx
40ed1e:	66 89 0c 30          	mov    %cx,(%eax,%esi,1)
40ed22:	eb 10                	jmp    0x40ed34
40ed24:	50                   	push   %eax
40ed25:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
40ed29:	8b cb                	mov    %ebx,%ecx
40ed2b:	ff 75 e8             	push   -0x18(%ebp)
40ed2e:	52                   	push   %edx
40ed2f:	e8 dc 38 ff ff       	call   0x402610
40ed34:	80 7f 6d 00          	cmpb   $0x0,0x6d(%edi)
40ed38:	8b 07                	mov    (%edi),%eax
40ed3a:	8b 30                	mov    (%eax),%esi
40ed3c:	8b ce                	mov    %esi,%ecx
40ed3e:	74 13                	je     0x40ed53
40ed40:	8d 47 68             	lea    0x68(%edi),%eax
40ed43:	50                   	push   %eax
40ed44:	ff 15 3c f2 43 00    	call   *0x43f23c
40ed4a:	8b cf                	mov    %edi,%ecx
40ed4c:	ff d6                	call   *%esi
40ed4e:	88 47 6c             	mov    %al,0x6c(%edi)
40ed51:	eb 2e                	jmp    0x40ed81
40ed53:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ed56:	50                   	push   %eax
40ed57:	ff 15 3c f2 43 00    	call   *0x43f23c
40ed5d:	8b cf                	mov    %edi,%ecx
40ed5f:	ff d6                	call   *%esi
40ed61:	88 47 6c             	mov    %al,0x6c(%edi)
40ed64:	84 c0                	test   %al,%al
40ed66:	74 0e                	je     0x40ed76
40ed68:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ed6b:	85 c0                	test   %eax,%eax
40ed6d:	74 07                	je     0x40ed76
40ed6f:	50                   	push   %eax
40ed70:	ff 15 68 f0 43 00    	call   *0x43f068
40ed76:	8a 47 6c             	mov    0x6c(%edi),%al
40ed79:	eb 06                	jmp    0x40ed81
40ed7b:	c6 47 6c 00          	movb   $0x0,0x6c(%edi)
40ed7f:	32 c0                	xor    %al,%al
40ed81:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ed84:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ed8b:	59                   	pop    %ecx
40ed8c:	5f                   	pop    %edi
40ed8d:	5e                   	pop    %esi
40ed8e:	5b                   	pop    %ebx
40ed8f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ed92:	33 cd                	xor    %ebp,%ecx
40ed94:	e8 37 cb 00 00       	call   0x41b8d0
40ed99:	8b e5                	mov    %ebp,%esp
40ed9b:	5d                   	pop    %ebp
40ed9c:	c2 08 00             	ret    $0x8
40ed9f:	e8 db 1c 01 00       	call   0x420a7f
40eda4:	e8 d6 1c 01 00       	call   0x420a7f
40eda9:	e8 d1 1c 01 00       	call   0x420a7f
40edae:	e8 cc 1c 01 00       	call   0x420a7f
40edb3:	cc                   	int3
40edb4:	cc                   	int3
40edb5:	cc                   	int3
40edb6:	cc                   	int3
40edb7:	cc                   	int3
40edb8:	cc                   	int3
40edb9:	cc                   	int3
40edba:	cc                   	int3
40edbb:	cc                   	int3
40edbc:	cc                   	int3
40edbd:	cc                   	int3
40edbe:	cc                   	int3
40edbf:	cc                   	int3
40edc0:	55                   	push   %ebp
40edc1:	8b ec                	mov    %esp,%ebp
40edc3:	6a ff                	push   $0xffffffff
40edc5:	68 4c df 43 00       	push   $0x43df4c
40edca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40edd0:	50                   	push   %eax
40edd1:	83 ec 10             	sub    $0x10,%esp
40edd4:	53                   	push   %ebx
40edd5:	56                   	push   %esi
40edd6:	57                   	push   %edi
40edd7:	a1 14 40 45 00       	mov    0x454014,%eax
40eddc:	33 c5                	xor    %ebp,%eax
40edde:	50                   	push   %eax
40eddf:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ede2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ede8:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40edeb:	c7 01 68 de 44 00    	movl   $0x44de68,(%ecx)
40edf1:	8d 51 18             	lea    0x18(%ecx),%edx
40edf4:	89 55 e8             	mov    %edx,-0x18(%ebp)
40edf7:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40edfd:	33 d2                	xor    %edx,%edx
40edff:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
40ee06:	c7 41 1c 07 00 00 00 	movl   $0x7,0x1c(%ecx)
40ee0d:	66 89 51 08          	mov    %dx,0x8(%ecx)
40ee11:	8d 71 20             	lea    0x20(%ecx),%esi
40ee14:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ee17:	33 c0                	xor    %eax,%eax
40ee19:	89 16                	mov    %edx,(%esi)
40ee1b:	89 56 10             	mov    %edx,0x10(%esi)
40ee1e:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40ee25:	66 89 06             	mov    %ax,(%esi)
40ee28:	8d 59 38             	lea    0x38(%ecx),%ebx
40ee2b:	89 03                	mov    %eax,(%ebx)
40ee2d:	89 43 10             	mov    %eax,0x10(%ebx)
40ee30:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
40ee37:	66 89 03             	mov    %ax,(%ebx)
40ee3a:	8d 79 50             	lea    0x50(%ecx),%edi
40ee3d:	89 07                	mov    %eax,(%edi)
40ee3f:	8d 47 10             	lea    0x10(%edi),%eax
40ee42:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ee45:	89 10                	mov    %edx,(%eax)
40ee47:	33 c0                	xor    %eax,%eax
40ee49:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40ee50:	66 89 07             	mov    %ax,(%edi)
40ee53:	83 c1 68             	add    $0x68,%ecx
40ee56:	89 01                	mov    %eax,(%ecx)
40ee58:	89 41 10             	mov    %eax,0x10(%ecx)
40ee5b:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
40ee62:	66 89 01             	mov    %ax,(%ecx)
40ee65:	68 40 af 44 00       	push   $0x44af40
40ee6a:	88 45 ec             	mov    %al,-0x14(%ebp)
40ee6d:	ff 75 ec             	push   -0x14(%ebp)
40ee70:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40ee74:	6a 0e                	push   $0xe
40ee76:	e8 95 37 ff ff       	call   0x402610
40ee7b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ee7e:	83 79 1c 08          	cmpl   $0x8,0x1c(%ecx)
40ee82:	8d 41 08             	lea    0x8(%ecx),%eax
40ee85:	72 02                	jb     0x40ee89
40ee87:	8b 00                	mov    (%eax),%eax
40ee89:	8b 55 e8             	mov    -0x18(%ebp),%edx
40ee8c:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40ee92:	33 d2                	xor    %edx,%edx
40ee94:	66 89 10             	mov    %dx,(%eax)
40ee97:	83 7e 14 17          	cmpl   $0x17,0x14(%esi)
40ee9b:	72 21                	jb     0x40eebe
40ee9d:	8b 36                	mov    (%esi),%esi
40ee9f:	6a 2e                	push   $0x2e
40eea1:	68 60 af 44 00       	push   $0x44af60
40eea6:	56                   	push   %esi
40eea7:	c7 41 30 17 00 00 00 	movl   $0x17,0x30(%ecx)
40eeae:	e8 9d e5 00 00       	call   0x41d450
40eeb3:	83 c4 0c             	add    $0xc,%esp
40eeb6:	33 c0                	xor    %eax,%eax
40eeb8:	66 89 46 2e          	mov    %ax,0x2e(%esi)
40eebc:	eb 14                	jmp    0x40eed2
40eebe:	68 60 af 44 00       	push   $0x44af60
40eec3:	88 55 e8             	mov    %dl,-0x18(%ebp)
40eec6:	8b ce                	mov    %esi,%ecx
40eec8:	ff 75 e8             	push   -0x18(%ebp)
40eecb:	6a 17                	push   $0x17
40eecd:	e8 3e 37 ff ff       	call   0x402610
40eed2:	83 7b 14 0e          	cmpl   $0xe,0x14(%ebx)
40eed6:	72 21                	jb     0x40eef9
40eed8:	8b 33                	mov    (%ebx),%esi
40eeda:	6a 1c                	push   $0x1c
40eedc:	68 40 af 44 00       	push   $0x44af40
40eee1:	56                   	push   %esi
40eee2:	c7 43 10 0e 00 00 00 	movl   $0xe,0x10(%ebx)
40eee9:	e8 62 e5 00 00       	call   0x41d450
40eeee:	83 c4 0c             	add    $0xc,%esp
40eef1:	33 c0                	xor    %eax,%eax
40eef3:	66 89 46 1c          	mov    %ax,0x1c(%esi)
40eef7:	eb 15                	jmp    0x40ef0e
40eef9:	68 40 af 44 00       	push   $0x44af40
40eefe:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
40ef02:	8b cb                	mov    %ebx,%ecx
40ef04:	ff 75 e8             	push   -0x18(%ebp)
40ef07:	6a 0e                	push   $0xe
40ef09:	e8 02 37 ff ff       	call   0x402610
40ef0e:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40ef12:	72 02                	jb     0x40ef16
40ef14:	8b 3f                	mov    (%edi),%edi
40ef16:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ef19:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40ef1f:	33 c0                	xor    %eax,%eax
40ef21:	66 89 07             	mov    %ax,(%edi)
40ef24:	e8 b7 39 ff ff       	call   0x4028e0
40ef29:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ef2c:	89 41 04             	mov    %eax,0x4(%ecx)
40ef2f:	8b c1                	mov    %ecx,%eax
40ef31:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ef34:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ef3b:	59                   	pop    %ecx
40ef3c:	5f                   	pop    %edi
40ef3d:	5e                   	pop    %esi
40ef3e:	5b                   	pop    %ebx
40ef3f:	8b e5                	mov    %ebp,%esp
40ef41:	5d                   	pop    %ebp
40ef42:	c2 14 00             	ret    $0x14
40ef45:	cc                   	int3
40ef46:	cc                   	int3
40ef47:	cc                   	int3
40ef48:	cc                   	int3
40ef49:	cc                   	int3
40ef4a:	cc                   	int3
40ef4b:	cc                   	int3
40ef4c:	cc                   	int3
40ef4d:	cc                   	int3
40ef4e:	cc                   	int3
40ef4f:	cc                   	int3
40ef50:	55                   	push   %ebp
40ef51:	8b ec                	mov    %esp,%ebp
40ef53:	8b 45 0c             	mov    0xc(%ebp),%eax
40ef56:	57                   	push   %edi
40ef57:	8b 7d 08             	mov    0x8(%ebp),%edi
40ef5a:	85 c0                	test   %eax,%eax
40ef5c:	74 24                	je     0x40ef82
40ef5e:	56                   	push   %esi
40ef5f:	8b 37                	mov    (%edi),%esi
40ef61:	8d 4d 10             	lea    0x10(%ebp),%ecx
40ef64:	51                   	push   %ecx
40ef65:	50                   	push   %eax
40ef66:	68 2c af 44 00       	push   $0x44af2c
40ef6b:	8b 76 3c             	mov    0x3c(%esi),%esi
40ef6e:	8b ce                	mov    %esi,%ecx
40ef70:	68 2c af 44 00       	push   $0x44af2c