40ef03:	ff 76 34             	push   0x34(%esi)
40ef06:	e8 47 01 00 00       	call   0x40f052
40ef0b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ef0e:	b0 01                	mov    $0x1,%al
40ef10:	5f                   	pop    %edi
40ef11:	5e                   	pop    %esi
40ef12:	33 cd                	xor    %ebp,%ecx
40ef14:	5b                   	pop    %ebx
40ef15:	e8 46 81 ff ff       	call   0x407060
40ef1a:	8b e5                	mov    %ebp,%esp
40ef1c:	5d                   	pop    %ebp
40ef1d:	c2 04 00             	ret    $0x4
40ef20:	8b ff                	mov    %edi,%edi
40ef22:	55                   	push   %ebp
40ef23:	8b ec                	mov    %esp,%ebp
40ef25:	83 ec 10             	sub    $0x10,%esp
40ef28:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40ef2d:	33 c5                	xor    %ebp,%eax
40ef2f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ef32:	53                   	push   %ebx
40ef33:	56                   	push   %esi
40ef34:	8b f1                	mov    %ecx,%esi
40ef36:	57                   	push   %edi
40ef37:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
40ef3b:	74 5d                	je     0x40ef9a
40ef3d:	8b 46 38             	mov    0x38(%esi),%eax
40ef40:	85 c0                	test   %eax,%eax
40ef42:	7e 56                	jle    0x40ef9a
40ef44:	8b 7e 34             	mov    0x34(%esi),%edi
40ef47:	33 db                	xor    %ebx,%ebx
40ef49:	85 c0                	test   %eax,%eax
40ef4b:	74 65                	je     0x40efb2
40ef4d:	0f b7 07             	movzwl (%edi),%eax
40ef50:	8d 7f 02             	lea    0x2(%edi),%edi
40ef53:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40ef57:	50                   	push   %eax
40ef58:	6a 06                	push   $0x6
40ef5a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ef5d:	50                   	push   %eax
40ef5e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ef61:	50                   	push   %eax
40ef62:	e8 34 ac 00 00       	call   0x419b9b
40ef67:	83 c4 10             	add    $0x10,%esp
40ef6a:	85 c0                	test   %eax,%eax
40ef6c:	75 26                	jne    0x40ef94
40ef6e:	39 45 f0             	cmp    %eax,-0x10(%ebp)
40ef71:	74 21                	je     0x40ef94
40ef73:	ff 76 0c             	push   0xc(%esi)
40ef76:	8d 46 18             	lea    0x18(%esi),%eax
40ef79:	50                   	push   %eax
40ef7a:	ff 75 f0             	push   -0x10(%ebp)
40ef7d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ef80:	50                   	push   %eax
40ef81:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40ef87:	e8 dd 01 00 00       	call   0x40f169
40ef8c:	43                   	inc    %ebx
40ef8d:	3b 5e 38             	cmp    0x38(%esi),%ebx
40ef90:	75 bb                	jne    0x40ef4d
40ef92:	eb 1e                	jmp    0x40efb2
40ef94:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
40ef98:	eb 18                	jmp    0x40efb2
40ef9a:	ff 76 0c             	push   0xc(%esi)
40ef9d:	8d 46 18             	lea    0x18(%esi),%eax
40efa0:	50                   	push   %eax
40efa1:	ff 76 38             	push   0x38(%esi)
40efa4:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40efaa:	ff 76 34             	push   0x34(%esi)
40efad:	e8 b7 01 00 00       	call   0x40f169
40efb2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40efb5:	b0 01                	mov    $0x1,%al
40efb7:	5f                   	pop    %edi
40efb8:	5e                   	pop    %esi
40efb9:	33 cd                	xor    %ebp,%ecx
40efbb:	5b                   	pop    %ebx
40efbc:	e8 9f 80 ff ff       	call   0x407060
40efc1:	8b e5                	mov    %ebp,%esp
40efc3:	5d                   	pop    %ebp
40efc4:	c2 04 00             	ret    $0x4
40efc7:	8b ff                	mov    %edi,%edi
40efc9:	55                   	push   %ebp
40efca:	8b ec                	mov    %esp,%ebp
40efcc:	51                   	push   %ecx
40efcd:	51                   	push   %ecx
40efce:	53                   	push   %ebx
40efcf:	56                   	push   %esi
40efd0:	8b f1                	mov    %ecx,%esi
40efd2:	57                   	push   %edi
40efd3:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
40efd7:	75 56                	jne    0x40f02f
40efd9:	8b 46 38             	mov    0x38(%esi),%eax
40efdc:	85 c0                	test   %eax,%eax
40efde:	7e 4f                	jle    0x40f02f
40efe0:	8b 5e 34             	mov    0x34(%esi),%ebx
40efe3:	33 ff                	xor    %edi,%edi
40efe5:	85 c0                	test   %eax,%eax
40efe7:	74 5e                	je     0x40f047
40efe9:	33 c0                	xor    %eax,%eax
40efeb:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40efef:	8b 46 08             	mov    0x8(%esi),%eax
40eff2:	50                   	push   %eax
40eff3:	8b 00                	mov    (%eax),%eax
40eff5:	ff 70 04             	push   0x4(%eax)
40eff8:	8d 45 fc             	lea    -0x4(%ebp),%eax
40effb:	53                   	push   %ebx
40effc:	50                   	push   %eax
40effd:	e8 64 a9 00 00       	call   0x419966
40f002:	83 c4 10             	add    $0x10,%esp
40f005:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f008:	85 c0                	test   %eax,%eax
40f00a:	7e 1d                	jle    0x40f029
40f00c:	8d 4e 18             	lea    0x18(%esi),%ecx
40f00f:	51                   	push   %ecx
40f010:	ff 75 fc             	push   -0x4(%ebp)
40f013:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40f019:	e8 d9 fd ff ff       	call   0x40edf7
40f01e:	03 5d f8             	add    -0x8(%ebp),%ebx
40f021:	47                   	inc    %edi
40f022:	3b 7e 38             	cmp    0x38(%esi),%edi
40f025:	75 c2                	jne    0x40efe9
40f027:	eb 1e                	jmp    0x40f047
40f029:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
40f02d:	eb 18                	jmp    0x40f047
40f02f:	ff 76 0c             	push   0xc(%esi)
40f032:	8d 46 18             	lea    0x18(%esi),%eax
40f035:	50                   	push   %eax
40f036:	ff 76 38             	push   0x38(%esi)
40f039:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40f03f:	ff 76 34             	push   0x34(%esi)
40f042:	e8 95 00 00 00       	call   0x40f0dc
40f047:	5f                   	pop    %edi
40f048:	5e                   	pop    %esi
40f049:	b0 01                	mov    $0x1,%al
40f04b:	5b                   	pop    %ebx
40f04c:	8b e5                	mov    %ebp,%esp
40f04e:	5d                   	pop    %ebp
40f04f:	c2 04 00             	ret    $0x4
40f052:	8b ff                	mov    %edi,%edi
40f054:	55                   	push   %ebp
40f055:	8b ec                	mov    %esp,%ebp
40f057:	51                   	push   %ecx
40f058:	51                   	push   %ecx
40f059:	53                   	push   %ebx
40f05a:	8b d9                	mov    %ecx,%ebx
40f05c:	8b 03                	mov    (%ebx),%eax
40f05e:	8b 40 0c             	mov    0xc(%eax),%eax
40f061:	c1 e8 0c             	shr    $0xc,%eax
40f064:	a8 01                	test   $0x1,%al
40f066:	74 12                	je     0x40f07a
40f068:	8b 03                	mov    (%ebx),%eax
40f06a:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40f06e:	75 0a                	jne    0x40f07a
40f070:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f073:	8b 45 0c             	mov    0xc(%ebp),%eax
40f076:	01 01                	add    %eax,(%ecx)
40f078:	eb 5b                	jmp    0x40f0d5
40f07a:	8b 45 0c             	mov    0xc(%ebp),%eax
40f07d:	56                   	push   %esi
40f07e:	8b 75 14             	mov    0x14(%ebp),%esi
40f081:	57                   	push   %edi
40f082:	8b 7d 08             	mov    0x8(%ebp),%edi
40f085:	03 c7                	add    %edi,%eax
40f087:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f08a:	8b 0e                	mov    (%esi),%ecx
40f08c:	83 26 00             	andl   $0x0,(%esi)
40f08f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40f092:	3b f8                	cmp    %eax,%edi
40f094:	74 32                	je     0x40f0c8
40f096:	8b 45 10             	mov    0x10(%ebp),%eax
40f099:	50                   	push   %eax
40f09a:	0f b6 07             	movzbl (%edi),%eax
40f09d:	8b cb                	mov    %ebx,%ecx
40f09f:	50                   	push   %eax
40f0a0:	e8 15 fd ff ff       	call   0x40edba
40f0a5:	8b 45 10             	mov    0x10(%ebp),%eax
40f0a8:	83 38 ff             	cmpl   $0xffffffff,(%eax)
40f0ab:	75 12                	jne    0x40f0bf
40f0ad:	83 3e 2a             	cmpl   $0x2a,(%esi)
40f0b0:	75 13                	jne    0x40f0c5
40f0b2:	50                   	push   %eax
40f0b3:	6a 3f                	push   $0x3f
40f0b5:	8b cb                	mov    %ebx,%ecx
40f0b7:	e8 fe fc ff ff       	call   0x40edba
40f0bc:	8b 45 10             	mov    0x10(%ebp),%eax
40f0bf:	47                   	inc    %edi
40f0c0:	3b 7d fc             	cmp    -0x4(%ebp),%edi
40f0c3:	75 d4                	jne    0x40f099
40f0c5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f0c8:	83 3e 00             	cmpl   $0x0,(%esi)
40f0cb:	75 06                	jne    0x40f0d3
40f0cd:	85 c9                	test   %ecx,%ecx
40f0cf:	74 02                	je     0x40f0d3
40f0d1:	89 0e                	mov    %ecx,(%esi)
40f0d3:	5f                   	pop    %edi
40f0d4:	5e                   	pop    %esi
40f0d5:	5b                   	pop    %ebx
40f0d6:	8b e5                	mov    %ebp,%esp
40f0d8:	5d                   	pop    %ebp
40f0d9:	c2 10 00             	ret    $0x10
40f0dc:	8b ff                	mov    %edi,%edi
40f0de:	55                   	push   %ebp
40f0df:	8b ec                	mov    %esp,%ebp
40f0e1:	51                   	push   %ecx
40f0e2:	51                   	push   %ecx
40f0e3:	53                   	push   %ebx
40f0e4:	8b d9                	mov    %ecx,%ebx
40f0e6:	8b 03                	mov    (%ebx),%eax
40f0e8:	8b 40 0c             	mov    0xc(%eax),%eax
40f0eb:	c1 e8 0c             	shr    $0xc,%eax
40f0ee:	a8 01                	test   $0x1,%al
40f0f0:	74 12                	je     0x40f104
40f0f2:	8b 03                	mov    (%ebx),%eax
40f0f4:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40f0f8:	75 0a                	jne    0x40f104
40f0fa:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f0fd:	8b 45 0c             	mov    0xc(%ebp),%eax
40f100:	01 01                	add    %eax,(%ecx)
40f102:	eb 5e                	jmp    0x40f162
40f104:	8b 45 0c             	mov    0xc(%ebp),%eax
40f107:	56                   	push   %esi
40f108:	8b 75 14             	mov    0x14(%ebp),%esi
40f10b:	57                   	push   %edi
40f10c:	8b 7d 08             	mov    0x8(%ebp),%edi
40f10f:	8b 0e                	mov    (%esi),%ecx
40f111:	83 26 00             	andl   $0x0,(%esi)
40f114:	8d 04 47             	lea    (%edi,%eax,2),%eax
40f117:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40f11a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f11d:	3b f8                	cmp    %eax,%edi
40f11f:	74 34                	je     0x40f155
40f121:	8b 45 10             	mov    0x10(%ebp),%eax
40f124:	50                   	push   %eax
40f125:	0f b7 07             	movzwl (%edi),%eax
40f128:	8b cb                	mov    %ebx,%ecx
40f12a:	50                   	push   %eax
40f12b:	e8 c7 fc ff ff       	call   0x40edf7
40f130:	8b 45 10             	mov    0x10(%ebp),%eax
40f133:	83 38 ff             	cmpl   $0xffffffff,(%eax)
40f136:	75 12                	jne    0x40f14a
40f138:	83 3e 2a             	cmpl   $0x2a,(%esi)
40f13b:	75 15                	jne    0x40f152
40f13d:	50                   	push   %eax
40f13e:	6a 3f                	push   $0x3f
40f140:	8b cb                	mov    %ebx,%ecx
40f142:	e8 b0 fc ff ff       	call   0x40edf7
40f147:	8b 45 10             	mov    0x10(%ebp),%eax
40f14a:	83 c7 02             	add    $0x2,%edi
40f14d:	3b 7d fc             	cmp    -0x4(%ebp),%edi
40f150:	75 d2                	jne    0x40f124
40f152:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f155:	83 3e 00             	cmpl   $0x0,(%esi)
40f158:	75 06                	jne    0x40f160
40f15a:	85 c9                	test   %ecx,%ecx
40f15c:	74 02                	je     0x40f160
40f15e:	89 0e                	mov    %ecx,(%esi)
40f160:	5f                   	pop    %edi
40f161:	5e                   	pop    %esi
40f162:	5b                   	pop    %ebx
40f163:	8b e5                	mov    %ebp,%esp
40f165:	5d                   	pop    %ebp
40f166:	c2 10 00             	ret    $0x10
40f169:	8b ff                	mov    %edi,%edi
40f16b:	55                   	push   %ebp
40f16c:	8b ec                	mov    %esp,%ebp
40f16e:	51                   	push   %ecx
40f16f:	51                   	push   %ecx
40f170:	56                   	push   %esi
40f171:	57                   	push   %edi
40f172:	8b 7d 14             	mov    0x14(%ebp),%edi
40f175:	8b c1                	mov    %ecx,%eax
40f177:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f17a:	8b 0f                	mov    (%edi),%ecx
40f17c:	83 27 00             	andl   $0x0,(%edi)
40f17f:	8b 00                	mov    (%eax),%eax
40f181:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f184:	8b 70 04             	mov    0x4(%eax),%esi
40f187:	39 70 08             	cmp    %esi,0x8(%eax)
40f18a:	75 18                	jne    0x40f1a4
40f18c:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
40f190:	74 0a                	je     0x40f19c
40f192:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f195:	8b 45 0c             	mov    0xc(%ebp),%eax
40f198:	01 01                	add    %eax,(%ecx)
40f19a:	eb 4a                	jmp    0x40f1e6
40f19c:	8b 45 10             	mov    0x10(%ebp),%eax
40f19f:	83 08 ff             	orl    $0xffffffff,(%eax)
40f1a2:	eb 45                	jmp    0x40f1e9
40f1a4:	2b 70 08             	sub    0x8(%eax),%esi
40f1a7:	53                   	push   %ebx
40f1a8:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f1ab:	3b f3                	cmp    %ebx,%esi
40f1ad:	72 02                	jb     0x40f1b1
40f1af:	8b f3                	mov    %ebx,%esi
40f1b1:	56                   	push   %esi
40f1b2:	ff 75 08             	push   0x8(%ebp)
40f1b5:	ff 30                	push   (%eax)
40f1b7:	e8 a4 92 ff ff       	call   0x408460
40f1bc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f1bf:	83 c4 0c             	add    $0xc,%esp
40f1c2:	8b 01                	mov    (%ecx),%eax
40f1c4:	01 30                	add    %esi,(%eax)
40f1c6:	8b 01                	mov    (%ecx),%eax
40f1c8:	01 70 08             	add    %esi,0x8(%eax)
40f1cb:	8b 01                	mov    (%ecx),%eax
40f1cd:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
40f1d1:	8b 45 10             	mov    0x10(%ebp),%eax
40f1d4:	74 04                	je     0x40f1da
40f1d6:	01 18                	add    %ebx,(%eax)
40f1d8:	eb 0b                	jmp    0x40f1e5
40f1da:	3b f3                	cmp    %ebx,%esi
40f1dc:	74 05                	je     0x40f1e3
40f1de:	83 08 ff             	orl    $0xffffffff,(%eax)
40f1e1:	eb 02                	jmp    0x40f1e5
40f1e3:	01 30                	add    %esi,(%eax)
40f1e5:	5b                   	pop    %ebx
40f1e6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f1e9:	83 3f 00             	cmpl   $0x0,(%edi)
40f1ec:	75 06                	jne    0x40f1f4
40f1ee:	85 c9                	test   %ecx,%ecx
40f1f0:	74 02                	je     0x40f1f4
40f1f2:	89 0f                	mov    %ecx,(%edi)
40f1f4:	5f                   	pop    %edi
40f1f5:	5e                   	pop    %esi
40f1f6:	8b e5                	mov    %ebp,%esp
40f1f8:	5d                   	pop    %ebp
40f1f9:	c2 10 00             	ret    $0x10
40f1fc:	8b ff                	mov    %edi,%edi
40f1fe:	55                   	push   %ebp
40f1ff:	8b ec                	mov    %esp,%ebp
40f201:	83 ec 2c             	sub    $0x2c,%esp
40f204:	8b 45 1c             	mov    0x1c(%ebp),%eax
40f207:	8b 55 10             	mov    0x10(%ebp),%edx
40f20a:	8b 4d 14             	mov    0x14(%ebp),%ecx
40f20d:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f210:	8b 45 18             	mov    0x18(%ebp),%eax
40f213:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f216:	8b 45 08             	mov    0x8(%ebp),%eax
40f219:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f21c:	8b 45 0c             	mov    0xc(%ebp),%eax
40f21f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40f222:	89 55 fc             	mov    %edx,-0x4(%ebp)
40f225:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f228:	85 d2                	test   %edx,%edx
40f22a:	75 15                	jne    0x40f241
40f22c:	e8 3a 58 00 00       	call   0x414a6b
40f231:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f237:	e8 a6 ca ff ff       	call   0x40bce2
40f23c:	83 c8 ff             	or     $0xffffffff,%eax
40f23f:	eb 2e                	jmp    0x40f26f
40f241:	85 c9                	test   %ecx,%ecx
40f243:	74 e7                	je     0x40f22c