40e925:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40e92b:	72 14                	jb     0x40e941
40e92d:	8b 50 fc             	mov    -0x4(%eax),%edx
40e930:	83 c1 23             	add    $0x23,%ecx
40e933:	2b c2                	sub    %edx,%eax
40e935:	83 c0 fc             	add    $0xfffffffc,%eax
40e938:	83 f8 1f             	cmp    $0x1f,%eax
40e93b:	0f 87 dc 00 00 00    	ja     0x40ea1d
40e941:	51                   	push   %ecx
40e942:	52                   	push   %edx
40e943:	e8 c6 cf 00 00       	call   0x41b90e
40e948:	83 c4 08             	add    $0x8,%esp
40e94b:	84 db                	test   %bl,%bl
40e94d:	74 1e                	je     0x40e96d
40e94f:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
40e953:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e956:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40e95a:	50                   	push   %eax
40e95b:	ff 15 ec f1 43 00    	call   *0x43f1ec
40e961:	83 f8 01             	cmp    $0x1,%eax
40e964:	75 07                	jne    0x40e96d
40e966:	c7 46 64 14 00 00 00 	movl   $0x14,0x64(%esi)
40e96d:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40e970:	83 f9 08             	cmp    $0x8,%ecx
40e973:	72 32                	jb     0x40e9a7
40e975:	8b 55 bc             	mov    -0x44(%ebp),%edx
40e978:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40e97f:	8b c2                	mov    %edx,%eax
40e981:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40e987:	72 14                	jb     0x40e99d
40e989:	8b 50 fc             	mov    -0x4(%eax),%edx
40e98c:	83 c1 23             	add    $0x23,%ecx
40e98f:	2b c2                	sub    %edx,%eax
40e991:	83 c0 fc             	add    $0xfffffffc,%eax
40e994:	83 f8 1f             	cmp    $0x1f,%eax
40e997:	0f 87 85 00 00 00    	ja     0x40ea22
40e99d:	51                   	push   %ecx
40e99e:	52                   	push   %edx
40e99f:	e8 6a cf 00 00       	call   0x41b90e
40e9a4:	83 c4 08             	add    $0x8,%esp
40e9a7:	33 c0                	xor    %eax,%eax
40e9a9:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
40e9b0:	c7 45 d0 07 00 00 00 	movl   $0x7,-0x30(%ebp)
40e9b7:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
40e9bb:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e9be:	83 f9 08             	cmp    $0x8,%ecx
40e9c1:	72 2e                	jb     0x40e9f1
40e9c3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40e9c6:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40e9cd:	8b c2                	mov    %edx,%eax
40e9cf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40e9d5:	72 10                	jb     0x40e9e7
40e9d7:	8b 50 fc             	mov    -0x4(%eax),%edx
40e9da:	83 c1 23             	add    $0x23,%ecx
40e9dd:	2b c2                	sub    %edx,%eax
40e9df:	83 c0 fc             	add    $0xfffffffc,%eax
40e9e2:	83 f8 1f             	cmp    $0x1f,%eax
40e9e5:	77 3b                	ja     0x40ea22
40e9e7:	51                   	push   %ecx
40e9e8:	52                   	push   %edx
40e9e9:	e8 20 cf 00 00       	call   0x41b90e
40e9ee:	83 c4 08             	add    $0x8,%esp
40e9f1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e9f4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e9fb:	59                   	pop    %ecx
40e9fc:	5e                   	pop    %esi
40e9fd:	5b                   	pop    %ebx
40e9fe:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40ea01:	33 cd                	xor    %ebp,%ecx
40ea03:	e8 c8 ce 00 00       	call   0x41b8d0
40ea08:	8b e5                	mov    %ebp,%esp
40ea0a:	5d                   	pop    %ebp
40ea0b:	c2 04 00             	ret    $0x4
40ea0e:	e8 6c 20 01 00       	call   0x420a7f
40ea13:	e8 67 20 01 00       	call   0x420a7f
40ea18:	e8 62 20 01 00       	call   0x420a7f
40ea1d:	e8 5d 20 01 00       	call   0x420a7f
40ea22:	e8 58 20 01 00       	call   0x420a7f
40ea27:	cc                   	int3
40ea28:	cc                   	int3
40ea29:	cc                   	int3
40ea2a:	cc                   	int3
40ea2b:	cc                   	int3
40ea2c:	cc                   	int3
40ea2d:	cc                   	int3
40ea2e:	cc                   	int3
40ea2f:	cc                   	int3
40ea30:	55                   	push   %ebp
40ea31:	8b ec                	mov    %esp,%ebp
40ea33:	6a ff                	push   $0xffffffff
40ea35:	68 dd de 43 00       	push   $0x43dedd
40ea3a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ea40:	50                   	push   %eax
40ea41:	83 ec 44             	sub    $0x44,%esp
40ea44:	a1 14 40 45 00       	mov    0x454014,%eax
40ea49:	33 c5                	xor    %ebp,%eax
40ea4b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40ea4e:	53                   	push   %ebx
40ea4f:	56                   	push   %esi
40ea50:	57                   	push   %edi
40ea51:	50                   	push   %eax
40ea52:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ea55:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ea5b:	8b f9                	mov    %ecx,%edi
40ea5d:	8d 77 4c             	lea    0x4c(%edi),%esi
40ea60:	8b ce                	mov    %esi,%ecx
40ea62:	e8 19 5e 00 00       	call   0x414880
40ea67:	68 20 de 44 00       	push   $0x44de20
40ea6c:	8b ce                	mov    %esi,%ecx
40ea6e:	e8 6d 37 ff ff       	call   0x4021e0
40ea73:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40ea77:	8b d6                	mov    %esi,%edx
40ea79:	72 02                	jb     0x40ea7d
40ea7b:	8b 16                	mov    (%esi),%edx
40ea7d:	8b ca                	mov    %edx,%ecx
40ea7f:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40ea86:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40ea8d:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40ea94:	8d 59 02             	lea    0x2(%ecx),%ebx
40ea97:	66 8b 01             	mov    (%ecx),%ax
40ea9a:	83 c1 02             	add    $0x2,%ecx
40ea9d:	66 85 c0             	test   %ax,%ax
40eaa0:	75 f5                	jne    0x40ea97
40eaa2:	2b cb                	sub    %ebx,%ecx
40eaa4:	d1 f9                	sar    $1,%ecx
40eaa6:	51                   	push   %ecx
40eaa7:	52                   	push   %edx
40eaa8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40eaab:	e8 60 3a ff ff       	call   0x402510
40eab0:	83 7d e4 08          	cmpl   $0x8,-0x1c(%ebp)
40eab4:	8d 45 d0             	lea    -0x30(%ebp),%eax
40eab7:	0f 43 45 d0          	cmovae -0x30(%ebp),%eax
40eabb:	50                   	push   %eax
40eabc:	ff 15 14 f2 43 00    	call   *0x43f214
40eac2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40eac5:	85 c0                	test   %eax,%eax
40eac7:	0f 94 c3             	sete   %bl
40eaca:	83 f9 08             	cmp    $0x8,%ecx
40eacd:	72 32                	jb     0x40eb01
40eacf:	8b 55 d0             	mov    -0x30(%ebp),%edx
40ead2:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40ead9:	8b c2                	mov    %edx,%eax
40eadb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40eae1:	72 14                	jb     0x40eaf7
40eae3:	8b 50 fc             	mov    -0x4(%eax),%edx
40eae6:	83 c1 23             	add    $0x23,%ecx
40eae9:	2b c2                	sub    %edx,%eax
40eaeb:	83 c0 fc             	add    $0xfffffffc,%eax
40eaee:	83 f8 1f             	cmp    $0x1f,%eax
40eaf1:	0f 87 a8 02 00 00    	ja     0x40ed9f
40eaf7:	51                   	push   %ecx
40eaf8:	52                   	push   %edx
40eaf9:	e8 10 ce 00 00       	call   0x41b90e
40eafe:	83 c4 08             	add    $0x8,%esp
40eb01:	84 db                	test   %bl,%bl
40eb03:	0f 84 90 00 00 00    	je     0x40eb99
40eb09:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40eb0d:	8b d6                	mov    %esi,%edx
40eb0f:	72 02                	jb     0x40eb13
40eb11:	8b 16                	mov    (%esi),%edx
40eb13:	8b ca                	mov    %edx,%ecx
40eb15:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40eb1c:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40eb23:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40eb2a:	8d 59 02             	lea    0x2(%ecx),%ebx
40eb2d:	0f 1f 00             	nopl   (%eax)
40eb30:	66 8b 01             	mov    (%ecx),%ax
40eb33:	83 c1 02             	add    $0x2,%ecx
40eb36:	66 85 c0             	test   %ax,%ax
40eb39:	75 f5                	jne    0x40eb30
40eb3b:	2b cb                	sub    %ebx,%ecx
40eb3d:	d1 f9                	sar    $1,%ecx
40eb3f:	51                   	push   %ecx
40eb40:	52                   	push   %edx
40eb41:	8d 4d d0             	lea    -0x30(%ebp),%ecx
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