40eda1:	6a 08                	push   $0x8
40eda3:	ba dc 00 00 00       	mov    $0xdc,%edx
40eda8:	59                   	pop    %ecx
40eda9:	e8 31 e7 ff ff       	call   0x40d4df
40edae:	8b d0                	mov    %eax,%edx
40edb0:	89 56 10             	mov    %edx,0x10(%esi)
40edb3:	85 d2                	test   %edx,%edx
40edb5:	0f 84 84 00 00 00    	je     0x40ee3f
40edbb:	6a 05                	push   $0x5
40edbd:	58                   	pop    %eax
40edbe:	66 89 46 14          	mov    %ax,0x14(%esi)
40edc2:	33 c0                	xor    %eax,%eax
40edc4:	66 89 46 16          	mov    %ax,0x16(%esi)
40edc8:	8d 82 dc 00 00 00    	lea    0xdc(%edx),%eax
40edce:	3b d0                	cmp    %eax,%edx
40edd0:	74 0c                	je     0x40edde
40edd2:	66 89 1a             	mov    %bx,(%edx)
40edd5:	03 d3                	add    %ebx,%edx
40edd7:	3b d0                	cmp    %eax,%edx
40edd9:	75 f7                	jne    0x40edd2
40eddb:	8b 56 10             	mov    0x10(%esi),%edx
40edde:	85 d2                	test   %edx,%edx
40ede0:	74 5d                	je     0x40ee3f
40ede2:	85 ff                	test   %edi,%edi
40ede4:	8b 7d 08             	mov    0x8(%ebp),%edi
40ede7:	74 29                	je     0x40ee12
40ede9:	0f b7 46 14          	movzwl 0x14(%esi),%eax
40eded:	6b c8 2c             	imul   $0x2c,%eax,%ecx
40edf0:	03 ca                	add    %edx,%ecx
40edf2:	3b d1                	cmp    %ecx,%edx
40edf4:	74 1c                	je     0x40ee12
40edf6:	8b 5e 0c             	mov    0xc(%esi),%ebx
40edf9:	83 c2 08             	add    $0x8,%edx
40edfc:	39 5a fc             	cmp    %ebx,-0x4(%edx)
40edff:	76 07                	jbe    0x40ee08
40ee01:	8b 02                	mov    (%edx),%eax
40ee03:	3b 47 04             	cmp    0x4(%edi),%eax
40ee06:	74 37                	je     0x40ee3f
40ee08:	83 c2 2c             	add    $0x2c,%edx
40ee0b:	8d 42 f8             	lea    -0x8(%edx),%eax
40ee0e:	3b c1                	cmp    %ecx,%eax
40ee10:	75 ea                	jne    0x40edfc
40ee12:	0f b7 46 16          	movzwl 0x16(%esi),%eax
40ee16:	33 d2                	xor    %edx,%edx
40ee18:	0f b7 4e 14          	movzwl 0x14(%esi),%ecx
40ee1c:	40                   	inc    %eax
40ee1d:	f7 f1                	div    %ecx
40ee1f:	8b 46 08             	mov    0x8(%esi),%eax
40ee22:	33 c9                	xor    %ecx,%ecx
40ee24:	66 89 56 16          	mov    %dx,0x16(%esi)
40ee28:	41                   	inc    %ecx
40ee29:	f0 0f c1 08          	lock xadd %ecx,(%eax)
40ee2d:	41                   	inc    %ecx
40ee2e:	0f b7 46 16          	movzwl 0x16(%esi),%eax
40ee32:	51                   	push   %ecx
40ee33:	6b c8 2c             	imul   $0x2c,%eax,%ecx
40ee36:	57                   	push   %edi
40ee37:	03 4e 10             	add    0x10(%esi),%ecx
40ee3a:	e8 f9 fd ff ff       	call   0x40ec38
40ee3f:	5f                   	pop    %edi
40ee40:	5e                   	pop    %esi
40ee41:	5b                   	pop    %ebx
40ee42:	5d                   	pop    %ebp
40ee43:	c2 04 00             	ret    $0x4
40ee46:	8b ff                	mov    %edi,%edi
40ee48:	55                   	push   %ebp
40ee49:	8b ec                	mov    %esp,%ebp
40ee4b:	51                   	push   %ecx
40ee4c:	53                   	push   %ebx
40ee4d:	56                   	push   %esi
40ee4e:	57                   	push   %edi
40ee4f:	8b 3d 70 ba 42 00    	mov    0x42ba70,%edi
40ee55:	33 db                	xor    %ebx,%ebx
40ee57:	8b f3                	mov    %ebx,%esi
40ee59:	85 ff                	test   %edi,%edi
40ee5b:	74 60                	je     0x40eebd
40ee5d:	39 5f 04             	cmp    %ebx,0x4(%edi)
40ee60:	75 1c                	jne    0x40ee7e
40ee62:	8b 0f                	mov    (%edi),%ecx
40ee64:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ee67:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ee6a:	e8 6a 3e 00 00       	call   0x412cd9
40ee6f:	85 c0                	test   %eax,%eax
40ee71:	78 0b                	js     0x40ee7e
40ee73:	39 5f 04             	cmp    %ebx,0x4(%edi)
40ee76:	75 06                	jne    0x40ee7e
40ee78:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ee7b:	89 47 04             	mov    %eax,0x4(%edi)
40ee7e:	8b 7f 04             	mov    0x4(%edi),%edi
40ee81:	8d 47 10             	lea    0x10(%edi),%eax
40ee84:	f7 df                	neg    %edi
40ee86:	1b ff                	sbb    %edi,%edi
40ee88:	23 f8                	and    %eax,%edi
40ee8a:	74 31                	je     0x40eebd
40ee8c:	ff 15 74 c2 42 00    	call   *0x42c274
40ee92:	6a 0a                	push   $0xa
40ee94:	5e                   	pop    %esi
40ee95:	33 d2                	xor    %edx,%edx
40ee97:	8b c8                	mov    %eax,%ecx
40ee99:	f7 f6                	div    %esi
40ee9b:	8b 74 97 08          	mov    0x8(%edi,%edx,4),%esi
40ee9f:	eb 07                	jmp    0x40eea8
40eea1:	39 0e                	cmp    %ecx,(%esi)
40eea3:	74 1f                	je     0x40eec4
40eea5:	8b 76 04             	mov    0x4(%esi),%esi
40eea8:	85 f6                	test   %esi,%esi
40eeaa:	75 f5                	jne    0x40eea1
40eeac:	8b f3                	mov    %ebx,%esi
40eeae:	85 f6                	test   %esi,%esi
40eeb0:	74 0b                	je     0x40eebd
40eeb2:	39 5e 08             	cmp    %ebx,0x8(%esi)
40eeb5:	75 06                	jne    0x40eebd
40eeb7:	8d 4f 04             	lea    0x4(%edi),%ecx
40eeba:	89 4e 08             	mov    %ecx,0x8(%esi)
40eebd:	5f                   	pop    %edi
40eebe:	8b c6                	mov    %esi,%eax
40eec0:	5e                   	pop    %esi
40eec1:	5b                   	pop    %ebx
40eec2:	c9                   	leave
40eec3:	c3                   	ret
40eec4:	83 c6 08             	add    $0x8,%esi
40eec7:	eb e5                	jmp    0x40eeae
40eec9:	8b ff                	mov    %edi,%edi
40eecb:	55                   	push   %ebp
40eecc:	8b ec                	mov    %esp,%ebp
40eece:	51                   	push   %ecx
40eecf:	53                   	push   %ebx
40eed0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40eed3:	32 c0                	xor    %al,%al
40eed5:	56                   	push   %esi
40eed6:	57                   	push   %edi
40eed7:	8b f2                	mov    %edx,%esi
40eed9:	8b f9                	mov    %ecx,%edi
40eedb:	89 7d fc             	mov    %edi,-0x4(%ebp)
40eede:	c6 03 00             	movb   $0x0,(%ebx)
40eee1:	85 f6                	test   %esi,%esi
40eee3:	0f 84 91 00 00 00    	je     0x40ef7a
40eee9:	ff 75 0c             	push   0xc(%ebp)
40eeec:	8b 56 08             	mov    0x8(%esi),%edx
40eeef:	53                   	push   %ebx
40eef0:	e8 d4 ff ff ff       	call   0x40eec9
40eef5:	8b 56 10             	mov    0x10(%esi),%edx
40eef8:	85 d2                	test   %edx,%edx
40eefa:	74 7e                	je     0x40ef7a
40eefc:	83 3a 00             	cmpl   $0x0,(%edx)
40eeff:	75 0e                	jne    0x40ef0f
40ef01:	33 c0                	xor    %eax,%eax
40ef03:	40                   	inc    %eax
40ef04:	f0 0f c1 05 84 b6 42 	lock xadd %eax,0x42b684
40ef0b:	00
40ef0c:	40                   	inc    %eax
40ef0d:	89 02                	mov    %eax,(%edx)
40ef0f:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
40ef13:	75 0b                	jne    0x40ef20
40ef15:	8b f2                	mov    %edx,%esi
40ef17:	8d 7f 2c             	lea    0x2c(%edi),%edi
40ef1a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ef1b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ef1c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ef1d:	8b 7d fc             	mov    -0x4(%ebp),%edi
40ef20:	83 c7 38             	add    $0x38,%edi
40ef23:	8b f2                	mov    %edx,%esi
40ef25:	8b cb                	mov    %ebx,%ecx
40ef27:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ef28:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ef29:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ef2a:	8b 75 0c             	mov    0xc(%ebp),%esi
40ef2d:	8d 79 01             	lea    0x1(%ecx),%edi
40ef30:	03 f3                	add    %ebx,%esi
40ef32:	8a 01                	mov    (%ecx),%al
40ef34:	41                   	inc    %ecx
40ef35:	84 c0                	test   %al,%al
40ef37:	75 f9                	jne    0x40ef32
40ef39:	2b cf                	sub    %edi,%ecx
40ef3b:	8b c6                	mov    %esi,%eax
40ef3d:	03 d9                	add    %ecx,%ebx
40ef3f:	2b c3                	sub    %ebx,%eax
40ef41:	83 f8 02             	cmp    $0x2,%eax
40ef44:	7e 32                	jle    0x40ef78
40ef46:	c6 03 5c             	movb   $0x5c,(%ebx)
40ef49:	43                   	inc    %ebx
40ef4a:	8b 4a 04             	mov    0x4(%edx),%ecx
40ef4d:	8d 79 01             	lea    0x1(%ecx),%edi
40ef50:	8a 01                	mov    (%ecx),%al
40ef52:	41                   	inc    %ecx
40ef53:	84 c0                	test   %al,%al
40ef55:	75 f9                	jne    0x40ef50
40ef57:	2b cf                	sub    %edi,%ecx
40ef59:	2b f3                	sub    %ebx,%esi
40ef5b:	8d 79 01             	lea    0x1(%ecx),%edi
40ef5e:	3b fe                	cmp    %esi,%edi
40ef60:	72 02                	jb     0x40ef64
40ef62:	8b fe                	mov    %esi,%edi
40ef64:	57                   	push   %edi
40ef65:	ff 72 04             	push   0x4(%edx)
40ef68:	56                   	push   %esi
40ef69:	53                   	push   %ebx
40ef6a:	ff 15 60 c3 42 00    	call   *0x42c360
40ef70:	83 c4 10             	add    $0x10,%esp
40ef73:	c6 44 1f ff 00       	movb   $0x0,-0x1(%edi,%ebx,1)
40ef78:	b0 01                	mov    $0x1,%al
40ef7a:	5f                   	pop    %edi
40ef7b:	5e                   	pop    %esi
40ef7c:	5b                   	pop    %ebx
40ef7d:	c9                   	leave
40ef7e:	c2 08 00             	ret    $0x8
40ef81:	cc                   	int3
40ef82:	8b ff                	mov    %edi,%edi
40ef84:	55                   	push   %ebp
40ef85:	8b ec                	mov    %esp,%ebp
40ef87:	83 ec 0c             	sub    $0xc,%esp
40ef8a:	53                   	push   %ebx
40ef8b:	56                   	push   %esi
40ef8c:	57                   	push   %edi
40ef8d:	8b fa                	mov    %edx,%edi
40ef8f:	33 db                	xor    %ebx,%ebx
40ef91:	8b c1                	mov    %ecx,%eax
40ef93:	88 5d f4             	mov    %bl,-0xc(%ebp)
40ef96:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ef99:	88 1f                	mov    %bl,(%edi)
40ef9b:	8b 35 64 ba 42 00    	mov    0x42ba64,%esi
40efa1:	85 f6                	test   %esi,%esi
40efa3:	74 27                	je     0x40efcc
40efa5:	ff 15 74 c2 42 00    	call   *0x42c274
40efab:	33 d2                	xor    %edx,%edx
40efad:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
40efb4:	8b c8                	mov    %eax,%ecx
40efb6:	f7 75 f8             	divl   -0x8(%ebp)
40efb9:	8b 34 96             	mov    (%esi,%edx,4),%esi
40efbc:	eb 07                	jmp    0x40efc5
40efbe:	39 0e                	cmp    %ecx,(%esi)
40efc0:	74 7c                	je     0x40f03e
40efc2:	8b 76 04             	mov    0x4(%esi),%esi
40efc5:	85 f6                	test   %esi,%esi
40efc7:	75 f5                	jne    0x40efbe
40efc9:	8b 45 fc             	mov    -0x4(%ebp),%eax
40efcc:	8b f3                	mov    %ebx,%esi
40efce:	85 f6                	test   %esi,%esi
40efd0:	74 4b                	je     0x40f01d
40efd2:	39 1e                	cmp    %ebx,(%esi)
40efd4:	74 47                	je     0x40f01d
40efd6:	ff 75 08             	push   0x8(%ebp)
40efd9:	88 1f                	mov    %bl,(%edi)
40efdb:	8b c8                	mov    %eax,%ecx
40efdd:	8b 16                	mov    (%esi),%edx
40efdf:	57                   	push   %edi
40efe0:	e8 e4 fe ff ff       	call   0x40eec9
40efe5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40efe8:	84 c0                	test   %al,%al
40efea:	74 03                	je     0x40efef
40efec:	89 79 28             	mov    %edi,0x28(%ecx)
40efef:	8b 06                	mov    (%esi),%eax
40eff1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40eff4:	8b 78 04             	mov    0x4(%eax),%edi
40eff7:	51                   	push   %ecx
40eff8:	8b 07                	mov    (%edi),%eax
40effa:	8b 30                	mov    (%eax),%esi
40effc:	8b ce                	mov    %esi,%ecx
40effe:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f004:	8b cf                	mov    %edi,%ecx
40f006:	ff d6                	call   *%esi
40f008:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f00b:	0a d8                	or     %al,%bl
40f00d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f010:	88 5d f4             	mov    %bl,-0xc(%ebp)
40f013:	8b 40 08             	mov    0x8(%eax),%eax
40f016:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f019:	85 c0                	test   %eax,%eax
40f01b:	75 d7                	jne    0x40eff4
40f01d:	8b 35 4c bb 42 00    	mov    0x42bb4c,%esi
40f023:	85 f6                	test   %esi,%esi
40f025:	74 10                	je     0x40f037
40f027:	ff 75 fc             	push   -0x4(%ebp)
40f02a:	8b ce                	mov    %esi,%ecx
40f02c:	ff 75 f4             	push   -0xc(%ebp)
40f02f:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f035:	ff d6                	call   *%esi
40f037:	5f                   	pop    %edi
40f038:	5e                   	pop    %esi
40f039:	5b                   	pop    %ebx
40f03a:	c9                   	leave
40f03b:	c2 04 00             	ret    $0x4
40f03e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f041:	83 c6 08             	add    $0x8,%esi
40f044:	eb 88                	jmp    0x40efce
40f046:	cc                   	int3
40f047:	cc                   	int3
40f048:	cc                   	int3
40f049:	cc                   	int3
40f04a:	cc                   	int3
40f04b:	cc                   	int3
40f04c:	cc                   	int3
40f04d:	cc                   	int3
40f04e:	cc                   	int3
40f04f:	cc                   	int3
40f050:	8b ff                	mov    %edi,%edi
40f052:	55                   	push   %ebp
40f053:	8b ec                	mov    %esp,%ebp
40f055:	ff 75 10             	push   0x10(%ebp)
40f058:	8b 55 0c             	mov    0xc(%ebp),%edx
40f05b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f05e:	e8 1f ff ff ff       	call   0x40ef82
40f063:	ff 15 74 c2 42 00    	call   *0x42c274
40f069:	39 05 6c ba 42 00    	cmp    %eax,0x42ba6c
40f06f:	74 3a                	je     0x40f0ab
40f071:	33 c9                	xor    %ecx,%ecx
40f073:	41                   	inc    %ecx
40f074:	f0 0f c1 0d 68 ba 42 	lock xadd %ecx,0x42ba68
40f07b:	00
40f07c:	41                   	inc    %ecx
40f07d:	83 f9 04             	cmp    $0x4,%ecx
40f080:	7d 22                	jge    0x40f0a4
40f082:	a3 6c ba 42 00       	mov    %eax,0x42ba6c
40f087:	e8 ba fd ff ff       	call   0x40ee46
40f08c:	85 c0                	test   %eax,%eax
40f08e:	74 0a                	je     0x40f09a
40f090:	ff 75 08             	push   0x8(%ebp)
40f093:	8b c8                	mov    %eax,%ecx
40f095:	e8 e8 fc ff ff       	call   0x40ed82
40f09a:	c7 05 6c ba 42 00 00 	movl   $0x0,0x42ba6c
40f0a1:	00 00 00
40f0a4:	f0 ff 0d 68 ba 42 00 	lock decl 0x42ba68
40f0ab:	5d                   	pop    %ebp
40f0ac:	c2 0c 00             	ret    $0xc
40f0af:	8b ff                	mov    %edi,%edi
40f0b1:	55                   	push   %ebp
40f0b2:	8b ec                	mov    %esp,%ebp
40f0b4:	51                   	push   %ecx
40f0b5:	51                   	push   %ecx
40f0b6:	53                   	push   %ebx
40f0b7:	57                   	push   %edi
40f0b8:	8b 39                	mov    (%ecx),%edi
40f0ba:	8b da                	mov    %edx,%ebx
40f0bc:	85 ff                	test   %edi,%edi
40f0be:	74 2f                	je     0x40f0ef
40f0c0:	56                   	push   %esi
40f0c1:	8b 75 08             	mov    0x8(%ebp),%esi
40f0c4:	6a ff                	push   $0xffffffff
40f0c6:	68 f0 d8 ff ff       	push   $0xffffd8f0
40f0cb:	ff 75 0c             	push   0xc(%ebp)
40f0ce:	56                   	push   %esi
40f0cf:	e8 ec 91 01 00       	call   0x4282c0
40f0d4:	c1 ee 02             	shr    $0x2,%esi
40f0d7:	56                   	push   %esi
40f0d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f0db:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f0de:	6a 00                	push   $0x0
40f0e0:	50                   	push   %eax
40f0e1:	57                   	push   %edi
40f0e2:	89 55 fc             	mov    %edx,-0x4(%ebp)