40ee7a:	6a 00                	push   $0x0
40ee7c:	6a 00                	push   $0x0
40ee7e:	56                   	push   %esi
40ee7f:	e8 6e 4e 00 00       	call   0x413cf2
40ee84:	83 c4 10             	add    $0x10,%esp
40ee87:	56                   	push   %esi
40ee88:	e8 01 50 00 00       	call   0x413e8e
40ee8d:	85 c0                	test   %eax,%eax
40ee8f:	59                   	pop    %ecx
40ee90:	0f 84 f6 01 00 00    	je     0x40f08c
40ee96:	8b 07                	mov    (%edi),%eax
40ee98:	f6 44 03 04 80       	testb  $0x80,0x4(%ebx,%eax,1)
40ee9d:	0f 84 e9 01 00 00    	je     0x40f08c
40eea3:	e8 a4 d6 ff ff       	call   0x40c54c
40eea8:	8b 40 6c             	mov    0x6c(%eax),%eax
40eeab:	33 c9                	xor    %ecx,%ecx
40eead:	39 48 14             	cmp    %ecx,0x14(%eax)
40eeb0:	8d 45 84             	lea    -0x7c(%ebp),%eax
40eeb3:	0f 94 c1             	sete   %cl
40eeb6:	50                   	push   %eax
40eeb7:	8b 07                	mov    (%edi),%eax
40eeb9:	ff 34 03             	push   (%ebx,%eax,1)
40eebc:	8b f1                	mov    %ecx,%esi
40eebe:	ff 15 50 71 41 00    	call   *0x417150
40eec4:	85 c0                	test   %eax,%eax
40eec6:	0f 84 c0 01 00 00    	je     0x40f08c
40eecc:	85 f6                	test   %esi,%esi
40eece:	74 0a                	je     0x40eeda
40eed0:	80 7d ab 00          	cmpb   $0x0,-0x55(%ebp)
40eed4:	0f 84 b2 01 00 00    	je     0x40f08c
40eeda:	ff 15 4c 71 41 00    	call   *0x41714c
40eee0:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
40eee4:	83 bd 28 05 00 00 00 	cmpl   $0x0,0x528(%ebp)
40eeeb:	8b 75 9c             	mov    -0x64(%ebp),%esi
40eeee:	89 45 84             	mov    %eax,-0x7c(%ebp)
40eef1:	89 75 8c             	mov    %esi,-0x74(%ebp)
40eef4:	0f 86 ff 03 00 00    	jbe    0x40f2f9
40eefa:	83 65 a4 00          	andl   $0x0,-0x5c(%ebp)
40eefe:	eb 03                	jmp    0x40ef03
40ef00:	8b 75 8c             	mov    -0x74(%ebp),%esi
40ef03:	8a 45 ab             	mov    -0x55(%ebp),%al
40ef06:	84 c0                	test   %al,%al
40ef08:	0f 85 06 01 00 00    	jne    0x40f014
40ef0e:	8a 06                	mov    (%esi),%al
40ef10:	33 c9                	xor    %ecx,%ecx
40ef12:	3c 0a                	cmp    $0xa,%al
40ef14:	0f 94 c1             	sete   %cl
40ef17:	0f be c0             	movsbl %al,%eax
40ef1a:	50                   	push   %eax
40ef1b:	89 4d 88             	mov    %ecx,-0x78(%ebp)
40ef1e:	e8 f5 f9 ff ff       	call   0x40e918
40ef23:	85 c0                	test   %eax,%eax
40ef25:	59                   	pop    %ecx
40ef26:	75 1a                	jne    0x40ef42
40ef28:	6a 01                	push   $0x1
40ef2a:	8d 45 ac             	lea    -0x54(%ebp),%eax
40ef2d:	56                   	push   %esi
40ef2e:	50                   	push   %eax
40ef2f:	e8 97 f9 ff ff       	call   0x40e8cb
40ef34:	83 c4 0c             	add    $0xc,%esp
40ef37:	83 f8 ff             	cmp    $0xffffffff,%eax
40ef3a:	0f 84 af 03 00 00    	je     0x40f2ef
40ef40:	eb 30                	jmp    0x40ef72
40ef42:	8b 45 9c             	mov    -0x64(%ebp),%eax
40ef45:	2b c6                	sub    %esi,%eax
40ef47:	03 85 28 05 00 00    	add    0x528(%ebp),%eax
40ef4d:	83 f8 01             	cmp    $0x1,%eax
40ef50:	0f 86 99 03 00 00    	jbe    0x40f2ef
40ef56:	6a 02                	push   $0x2
40ef58:	8d 45 ac             	lea    -0x54(%ebp),%eax
40ef5b:	56                   	push   %esi
40ef5c:	50                   	push   %eax
40ef5d:	e8 69 f9 ff ff       	call   0x40e8cb
40ef62:	83 c4 0c             	add    $0xc,%esp
40ef65:	83 f8 ff             	cmp    $0xffffffff,%eax
40ef68:	0f 84 81 03 00 00    	je     0x40f2ef
40ef6e:	46                   	inc    %esi
40ef6f:	ff 45 a4             	incl   -0x5c(%ebp)
40ef72:	33 c0                	xor    %eax,%eax
40ef74:	50                   	push   %eax
40ef75:	50                   	push   %eax
40ef76:	6a 05                	push   $0x5
40ef78:	8d 8d 0c 05 00 00    	lea    0x50c(%ebp),%ecx
40ef7e:	51                   	push   %ecx
40ef7f:	6a 01                	push   $0x1
40ef81:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40ef84:	51                   	push   %ecx
40ef85:	50                   	push   %eax
40ef86:	ff 75 84             	push   -0x7c(%ebp)
40ef89:	46                   	inc    %esi
40ef8a:	ff 45 a4             	incl   -0x5c(%ebp)
40ef8d:	89 75 8c             	mov    %esi,-0x74(%ebp)
40ef90:	ff 15 90 70 41 00    	call   *0x417090
40ef96:	8b f0                	mov    %eax,%esi
40ef98:	85 f6                	test   %esi,%esi
40ef9a:	0f 84 4f 03 00 00    	je     0x40f2ef
40efa0:	6a 00                	push   $0x0
40efa2:	8d 45 b0             	lea    -0x50(%ebp),%eax
40efa5:	50                   	push   %eax
40efa6:	56                   	push   %esi
40efa7:	8d 85 0c 05 00 00    	lea    0x50c(%ebp),%eax
40efad:	50                   	push   %eax
40efae:	8b 07                	mov    (%edi),%eax
40efb0:	ff 34 03             	push   (%ebx,%eax,1)
40efb3:	ff 15 28 70 41 00    	call   *0x417028
40efb9:	85 c0                	test   %eax,%eax
40efbb:	0f 84 25 03 00 00    	je     0x40f2e6
40efc1:	8b 45 b0             	mov    -0x50(%ebp),%eax
40efc4:	01 45 a0             	add    %eax,-0x60(%ebp)
40efc7:	3b c6                	cmp    %esi,%eax
40efc9:	0f 8c 20 03 00 00    	jl     0x40f2ef
40efcf:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40efd3:	0f 84 9f 00 00 00    	je     0x40f078
40efd9:	6a 00                	push   $0x0
40efdb:	8d 45 b0             	lea    -0x50(%ebp),%eax
40efde:	50                   	push   %eax
40efdf:	6a 01                	push   $0x1
40efe1:	8d 85 0c 05 00 00    	lea    0x50c(%ebp),%eax
40efe7:	50                   	push   %eax
40efe8:	8b 07                	mov    (%edi),%eax
40efea:	c6 85 0c 05 00 00 0d 	movb   $0xd,0x50c(%ebp)
40eff1:	ff 34 03             	push   (%ebx,%eax,1)
40eff4:	ff 15 28 70 41 00    	call   *0x417028
40effa:	85 c0                	test   %eax,%eax
40effc:	0f 84 e4 02 00 00    	je     0x40f2e6
40f002:	83 7d b0 01          	cmpl   $0x1,-0x50(%ebp)
40f006:	0f 8c e3 02 00 00    	jl     0x40f2ef
40f00c:	ff 45 98             	incl   -0x68(%ebp)
40f00f:	ff 45 a0             	incl   -0x60(%ebp)
40f012:	eb 64                	jmp    0x40f078
40f014:	3c 01                	cmp    $0x1,%al
40f016:	74 04                	je     0x40f01c
40f018:	3c 02                	cmp    $0x2,%al
40f01a:	75 1b                	jne    0x40f037
40f01c:	0f b7 0e             	movzwl (%esi),%ecx
40f01f:	33 d2                	xor    %edx,%edx
40f021:	66 83 f9 0a          	cmp    $0xa,%cx
40f025:	0f 94 c2             	sete   %dl
40f028:	46                   	inc    %esi
40f029:	46                   	inc    %esi
40f02a:	83 45 a4 02          	addl   $0x2,-0x5c(%ebp)
40f02e:	89 4d ac             	mov    %ecx,-0x54(%ebp)
40f031:	89 75 8c             	mov    %esi,-0x74(%ebp)
40f034:	89 55 88             	mov    %edx,-0x78(%ebp)
40f037:	3c 01                	cmp    $0x1,%al
40f039:	74 04                	je     0x40f03f
40f03b:	3c 02                	cmp    $0x2,%al
40f03d:	75 39                	jne    0x40f078
40f03f:	ff 75 ac             	push   -0x54(%ebp)
40f042:	e8 f7 5b 00 00       	call   0x414c3e
40f047:	66 3b 45 ac          	cmp    -0x54(%ebp),%ax
40f04b:	59                   	pop    %ecx
40f04c:	0f 85 94 02 00 00    	jne    0x40f2e6
40f052:	ff 45 a0             	incl   -0x60(%ebp)
40f055:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40f059:	74 1d                	je     0x40f078
40f05b:	6a 0d                	push   $0xd
40f05d:	58                   	pop    %eax
40f05e:	50                   	push   %eax
40f05f:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f062:	e8 d7 5b 00 00       	call   0x414c3e
40f067:	66 3b 45 ac          	cmp    -0x54(%ebp),%ax
40f06b:	59                   	pop    %ecx
40f06c:	0f 85 74 02 00 00    	jne    0x40f2e6
40f072:	ff 45 a0             	incl   -0x60(%ebp)
40f075:	ff 45 98             	incl   -0x68(%ebp)
40f078:	8b 85 28 05 00 00    	mov    0x528(%ebp),%eax
40f07e:	39 45 a4             	cmp    %eax,-0x5c(%ebp)
40f081:	0f 82 79 fe ff ff    	jb     0x40ef00
40f087:	e9 63 02 00 00       	jmp    0x40f2ef
40f08c:	8b 07                	mov    (%edi),%eax
40f08e:	03 c3                	add    %ebx,%eax
40f090:	f6 40 04 80          	testb  $0x80,0x4(%eax)
40f094:	0f 84 25 02 00 00    	je     0x40f2bf
40f09a:	8b 45 9c             	mov    -0x64(%ebp),%eax
40f09d:	33 f6                	xor    %esi,%esi
40f09f:	80 7d ab 00          	cmpb   $0x0,-0x55(%ebp)
40f0a3:	89 75 ac             	mov    %esi,-0x54(%ebp)
40f0a6:	0f 85 91 00 00 00    	jne    0x40f13d
40f0ac:	39 b5 28 05 00 00    	cmp    %esi,0x528(%ebp)
40f0b2:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f0b5:	0f 86 65 02 00 00    	jbe    0x40f320
40f0bb:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40f0be:	83 65 a4 00          	andl   $0x0,-0x5c(%ebp)
40f0c2:	2b 4d 9c             	sub    -0x64(%ebp),%ecx
40f0c5:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f0c8:	3b 8d 28 05 00 00    	cmp    0x528(%ebp),%ecx
40f0ce:	73 27                	jae    0x40f0f7
40f0d0:	8b 55 b0             	mov    -0x50(%ebp),%edx
40f0d3:	ff 45 b0             	incl   -0x50(%ebp)
40f0d6:	8a 12                	mov    (%edx),%dl
40f0d8:	41                   	inc    %ecx
40f0d9:	80 fa 0a             	cmp    $0xa,%dl
40f0dc:	75 0a                	jne    0x40f0e8
40f0de:	ff 45 98             	incl   -0x68(%ebp)
40f0e1:	c6 00 0d             	movb   $0xd,(%eax)
40f0e4:	40                   	inc    %eax
40f0e5:	ff 45 a4             	incl   -0x5c(%ebp)
40f0e8:	88 10                	mov    %dl,(%eax)
40f0ea:	40                   	inc    %eax
40f0eb:	ff 45 a4             	incl   -0x5c(%ebp)
40f0ee:	81 7d a4 00 04 00 00 	cmpl   $0x400,-0x5c(%ebp)
40f0f5:	72 d1                	jb     0x40f0c8
40f0f7:	8b f0                	mov    %eax,%esi
40f0f9:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f0fc:	2b f0                	sub    %eax,%esi
40f0fe:	6a 00                	push   $0x0
40f100:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f103:	50                   	push   %eax
40f104:	56                   	push   %esi
40f105:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f108:	50                   	push   %eax
40f109:	8b 07                	mov    (%edi),%eax
40f10b:	ff 34 03             	push   (%ebx,%eax,1)
40f10e:	ff 15 28 70 41 00    	call   *0x417028
40f114:	85 c0                	test   %eax,%eax
40f116:	0f 84 ca 01 00 00    	je     0x40f2e6
40f11c:	8b 45 94             	mov    -0x6c(%ebp),%eax
40f11f:	01 45 a0             	add    %eax,-0x60(%ebp)
40f122:	3b c6                	cmp    %esi,%eax
40f124:	0f 8c c5 01 00 00    	jl     0x40f2ef
40f12a:	8b 45 b0             	mov    -0x50(%ebp),%eax
40f12d:	2b 45 9c             	sub    -0x64(%ebp),%eax
40f130:	3b 85 28 05 00 00    	cmp    0x528(%ebp),%eax
40f136:	72 83                	jb     0x40f0bb
40f138:	e9 b2 01 00 00       	jmp    0x40f2ef
40f13d:	80 7d ab 02          	cmpb   $0x2,-0x55(%ebp)
40f141:	0f 85 9d 00 00 00    	jne    0x40f1e4
40f147:	39 b5 28 05 00 00    	cmp    %esi,0x528(%ebp)
40f14d:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f150:	0f 86 ca 01 00 00    	jbe    0x40f320
40f156:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40f159:	33 f6                	xor    %esi,%esi
40f15b:	2b 4d 9c             	sub    -0x64(%ebp),%ecx
40f15e:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f161:	3b 8d 28 05 00 00    	cmp    0x528(%ebp),%ecx
40f167:	73 31                	jae    0x40f19a
40f169:	8b 55 b0             	mov    -0x50(%ebp),%edx
40f16c:	83 45 b0 02          	addl   $0x2,-0x50(%ebp)
40f170:	0f b7 12             	movzwl (%edx),%edx
40f173:	41                   	inc    %ecx
40f174:	41                   	inc    %ecx
40f175:	66 83 fa 0a          	cmp    $0xa,%dx
40f179:	75 0d                	jne    0x40f188
40f17b:	83 45 98 02          	addl   $0x2,-0x68(%ebp)
40f17f:	66 c7 00 0d 00       	movw   $0xd,(%eax)
40f184:	40                   	inc    %eax
40f185:	40                   	inc    %eax
40f186:	46                   	inc    %esi
40f187:	46                   	inc    %esi
40f188:	8b 7d 90             	mov    -0x70(%ebp),%edi
40f18b:	66 89 10             	mov    %dx,(%eax)
40f18e:	40                   	inc    %eax
40f18f:	40                   	inc    %eax
40f190:	46                   	inc    %esi
40f191:	46                   	inc    %esi
40f192:	81 fe ff 03 00 00    	cmp    $0x3ff,%esi
40f198:	72 c7                	jb     0x40f161
40f19a:	8b f0                	mov    %eax,%esi
40f19c:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f19f:	2b f0                	sub    %eax,%esi
40f1a1:	6a 00                	push   $0x0
40f1a3:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f1a6:	50                   	push   %eax
40f1a7:	56                   	push   %esi
40f1a8:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f1ab:	50                   	push   %eax
40f1ac:	8b 07                	mov    (%edi),%eax
40f1ae:	ff 34 03             	push   (%ebx,%eax,1)
40f1b1:	ff 15 28 70 41 00    	call   *0x417028
40f1b7:	85 c0                	test   %eax,%eax
40f1b9:	0f 84 27 01 00 00    	je     0x40f2e6
40f1bf:	8b 45 94             	mov    -0x6c(%ebp),%eax
40f1c2:	01 45 a0             	add    %eax,-0x60(%ebp)
40f1c5:	3b c6                	cmp    %esi,%eax
40f1c7:	0f 8c 22 01 00 00    	jl     0x40f2ef
40f1cd:	8b 45 b0             	mov    -0x50(%ebp),%eax
40f1d0:	2b 45 9c             	sub    -0x64(%ebp),%eax
40f1d3:	3b 85 28 05 00 00    	cmp    0x528(%ebp),%eax
40f1d9:	0f 82 77 ff ff ff    	jb     0x40f156
40f1df:	e9 0b 01 00 00       	jmp    0x40f2ef
40f1e4:	39 b5 28 05 00 00    	cmp    %esi,0x528(%ebp)
40f1ea:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40f1ed:	0f 86 2d 01 00 00    	jbe    0x40f320
40f1f3:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
40f1f6:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
40f1fa:	2b 4d 9c             	sub    -0x64(%ebp),%ecx
40f1fd:	6a 02                	push   $0x2
40f1ff:	8d 85 b8 03 00 00    	lea    0x3b8(%ebp),%eax
40f205:	5e                   	pop    %esi
40f206:	3b 8d 28 05 00 00    	cmp    0x528(%ebp),%ecx
40f20c:	73 2c                	jae    0x40f23a
40f20e:	8b 55 a4             	mov    -0x5c(%ebp),%edx
40f211:	0f b7 12             	movzwl (%edx),%edx
40f214:	01 75 a4             	add    %esi,-0x5c(%ebp)
40f217:	03 ce                	add    %esi,%ecx
40f219:	66 83 fa 0a          	cmp    $0xa,%dx
40f21d:	75 0a                	jne    0x40f229
40f21f:	66 c7 00 0d 00       	movw   $0xd,(%eax)
40f224:	03 c6                	add    %esi,%eax
40f226:	01 75 b0             	add    %esi,-0x50(%ebp)
40f229:	01 75 b0             	add    %esi,-0x50(%ebp)
40f22c:	66 89 10             	mov    %dx,(%eax)
40f22f:	03 c6                	add    %esi,%eax
40f231:	81 7d b0 52 01 00 00 	cmpl   $0x152,-0x50(%ebp)
40f238:	72 cc                	jb     0x40f206
40f23a:	33 f6                	xor    %esi,%esi
40f23c:	56                   	push   %esi
40f23d:	56                   	push   %esi
40f23e:	68 ab 02 00 00       	push   $0x2ab
40f243:	8d 8d 08 01 00 00    	lea    0x108(%ebp),%ecx
40f249:	51                   	push   %ecx
40f24a:	8d 8d b8 03 00 00    	lea    0x3b8(%ebp),%ecx
40f250:	2b c1                	sub    %ecx,%eax
40f252:	99                   	cltd
40f253:	2b c2                	sub    %edx,%eax
40f255:	d1 f8                	sar    $1,%eax
40f257:	50                   	push   %eax
40f258:	8b c1                	mov    %ecx,%eax
40f25a:	50                   	push   %eax
40f25b:	56                   	push   %esi
40f25c:	68 e9 fd 00 00       	push   $0xfde9
40f261:	ff 15 90 70 41 00    	call   *0x417090
40f267:	8b f8                	mov    %eax,%edi
40f269:	3b fe                	cmp    %esi,%edi
40f26b:	74 79                	je     0x40f2e6
40f26d:	6a 00                	push   $0x0
40f26f:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f272:	50                   	push   %eax
40f273:	8b c7                	mov    %edi,%eax
40f275:	2b c6                	sub    %esi,%eax
40f277:	50                   	push   %eax
40f278:	8d 84 35 08 01 00 00 	lea    0x108(%ebp,%esi,1),%eax
40f27f:	50                   	push   %eax
40f280:	8b 45 90             	mov    -0x70(%ebp),%eax
40f283:	8b 00                	mov    (%eax),%eax
40f285:	ff 34 03             	push   (%ebx,%eax,1)
40f288:	ff 15 28 70 41 00    	call   *0x417028
40f28e:	85 c0                	test   %eax,%eax
40f290:	74 09                	je     0x40f29b
40f292:	03 75 94             	add    -0x6c(%ebp),%esi
40f295:	3b fe                	cmp    %esi,%edi
40f297:	7f d4                	jg     0x40f26d
40f299:	eb 09                	jmp    0x40f2a4
40f29b:	ff 15 b0 70 41 00    	call   *0x4170b0
40f2a1:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f2a4:	3b fe                	cmp    %esi,%edi
40f2a6:	7f 47                	jg     0x40f2ef
40f2a8:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40f2ab:	2b 45 9c             	sub    -0x64(%ebp),%eax