40bea9:	0f 86 ea 00 00 00    	jbe    0x40bf99
40beaf:	90                   	nop
40beb0:	8b 8f f4 00 00 00    	mov    0xf4(%edi),%ecx
40beb6:	8b 34 81             	mov    (%ecx,%eax,4),%esi
40beb9:	85 f6                	test   %esi,%esi
40bebb:	0f 84 c8 00 00 00    	je     0x40bf89
40bec1:	8d 45 f0             	lea    -0x10(%ebp),%eax
40bec4:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40becb:	50                   	push   %eax
40becc:	8b ce                	mov    %esi,%ecx
40bece:	e8 dd 02 00 00       	call   0x40c1b0
40bed3:	85 c0                	test   %eax,%eax
40bed5:	0f 84 b9 8b 01 00    	je     0x424a94
40bedb:	8b 5e 08             	mov    0x8(%esi),%ebx
40bede:	85 db                	test   %ebx,%ebx
40bee0:	74 60                	je     0x40bf42
40bee2:	f6 c3 1f             	test   $0x1f,%bl
40bee5:	0f 85 da 8b 01 00    	jne    0x424ac5
40beeb:	33 c0                	xor    %eax,%eax
40beed:	c1 eb 05             	shr    $0x5,%ebx
40bef0:	bf 00 00 00 00       	mov    $0x0,%edi
40bef5:	03 d8                	add    %eax,%ebx
40bef7:	74 38                	je     0x40bf31
40bef9:	8b 0e                	mov    (%esi),%ecx
40befb:	eb 03                	jmp    0x40bf00
40befd:	8d 49 00             	lea    0x0(%ecx),%ecx
40bf00:	85 c9                	test   %ecx,%ecx
40bf02:	74 2d                	je     0x40bf31
40bf04:	8b 01                	mov    (%ecx),%eax
40bf06:	89 45 f0             	mov    %eax,-0x10(%ebp)
40bf09:	8b 46 0c             	mov    0xc(%esi),%eax
40bf0c:	8b 40 04             	mov    0x4(%eax),%eax
40bf0f:	85 c0                	test   %eax,%eax
40bf11:	74 12                	je     0x40bf25
40bf13:	51                   	push   %ecx
40bf14:	6a 00                	push   $0x0
40bf16:	50                   	push   %eax
40bf17:	ff 15 70 10 45 00    	call   *0x451070
40bf1d:	85 c0                	test   %eax,%eax
40bf1f:	0f 84 aa 8b 01 00    	je     0x424acf
40bf25:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bf28:	47                   	inc    %edi
40bf29:	89 06                	mov    %eax,(%esi)
40bf2b:	8b c8                	mov    %eax,%ecx
40bf2d:	3b fb                	cmp    %ebx,%edi
40bf2f:	72 cf                	jb     0x40bf00
40bf31:	8b 7d ec             	mov    -0x14(%ebp),%edi
40bf34:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40bf3b:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40bf42:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40bf49:	8b 46 08             	mov    0x8(%esi),%eax
40bf4c:	85 c0                	test   %eax,%eax
40bf4e:	0f 85 86 8b 01 00    	jne    0x424ada
40bf54:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40bf5b:	a1 80 0b 45 00       	mov    0x450b80,%eax
40bf60:	8b 40 04             	mov    0x4(%eax),%eax
40bf63:	85 c0                	test   %eax,%eax
40bf65:	74 12                	je     0x40bf79
40bf67:	56                   	push   %esi
40bf68:	6a 00                	push   $0x0
40bf6a:	50                   	push   %eax
40bf6b:	ff 15 70 10 45 00    	call   *0x451070
40bf71:	85 c0                	test   %eax,%eax
40bf73:	0f 84 7c 8b 01 00    	je     0x424af5
40bf79:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bf7c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40bf83:	8b 8f f4 00 00 00    	mov    0xf4(%edi),%ecx
40bf89:	40                   	inc    %eax
40bf8a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40bf8d:	3b 87 1c 01 00 00    	cmp    0x11c(%edi),%eax
40bf93:	0f 82 17 ff ff ff    	jb     0x40beb0
40bf99:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40bfa0:	85 c9                	test   %ecx,%ecx
40bfa2:	74 1e                	je     0x40bfc2
40bfa4:	a1 80 0b 45 00       	mov    0x450b80,%eax
40bfa9:	8b 40 04             	mov    0x4(%eax),%eax
40bfac:	85 c0                	test   %eax,%eax
40bfae:	74 12                	je     0x40bfc2
40bfb0:	51                   	push   %ecx
40bfb1:	6a 00                	push   $0x0
40bfb3:	50                   	push   %eax
40bfb4:	ff 15 70 10 45 00    	call   *0x451070
40bfba:	85 c0                	test   %eax,%eax
40bfbc:	0f 84 3e 8b 01 00    	je     0x424b00
40bfc2:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40bfc9:	c7 87 f4 00 00 00 00 	movl   $0x0,0xf4(%edi)
40bfd0:	00 00 00
40bfd3:	83 bf 20 01 00 00 00 	cmpl   $0x0,0x120(%edi)
40bfda:	74 0a                	je     0x40bfe6
40bfdc:	c7 87 20 01 00 00 00 	movl   $0x0,0x120(%edi)
40bfe3:	00 00 00
40bfe6:	8b 8f 30 01 00 00    	mov    0x130(%edi),%ecx
40bfec:	85 c9                	test   %ecx,%ecx
40bfee:	74 10                	je     0x40c000
40bff0:	8b 01                	mov    (%ecx),%eax
40bff2:	51                   	push   %ecx
40bff3:	8b 70 08             	mov    0x8(%eax),%esi
40bff6:	8b ce                	mov    %esi,%ecx
40bff8:	ff 15 c4 12 45 00    	call   *0x4512c4
40bffe:	ff d6                	call   *%esi
40c000:	8b 87 2c 01 00 00    	mov    0x12c(%edi),%eax
40c006:	85 c0                	test   %eax,%eax
40c008:	74 07                	je     0x40c011
40c00a:	50                   	push   %eax
40c00b:	ff 15 5c 10 45 00    	call   *0x45105c
40c011:	8b 87 40 01 00 00    	mov    0x140(%edi),%eax
40c017:	85 c0                	test   %eax,%eax
40c019:	74 07                	je     0x40c022
40c01b:	50                   	push   %eax
40c01c:	ff 15 0c 30 45 00    	call   *0x45300c
40c022:	8b 87 38 01 00 00    	mov    0x138(%edi),%eax
40c028:	85 c0                	test   %eax,%eax
40c02a:	0f 85 db 8a 01 00    	jne    0x424b0b
40c030:	8b 87 3c 01 00 00    	mov    0x13c(%edi),%eax
40c036:	85 c0                	test   %eax,%eax
40c038:	0f 85 1f 01 00 00    	jne    0x40c15d
40c03e:	8b b7 34 01 00 00    	mov    0x134(%edi),%esi
40c044:	85 f6                	test   %esi,%esi
40c046:	74 1a                	je     0x40c062
40c048:	83 c8 ff             	or     $0xffffffff,%eax
40c04b:	f0 0f c1 06          	lock xadd %eax,(%esi)
40c04f:	48                   	dec    %eax
40c050:	75 10                	jne    0x40c062
40c052:	8b ce                	mov    %esi,%ecx
40c054:	e8 6d 60 01 00       	call   0x4220c6
40c059:	56                   	push   %esi
40c05a:	e8 6b 01 00 00       	call   0x40c1ca
40c05f:	83 c4 04             	add    $0x4,%esp
40c062:	8b 87 a8 00 00 00    	mov    0xa8(%edi),%eax
40c068:	85 c0                	test   %eax,%eax
40c06a:	0f 85 a7 8a 01 00    	jne    0x424b17
40c070:	f0 ff 0d 70 0a 45 00 	lock decl 0x450a70
40c077:	f0 ff 0d 7c 0b 45 00 	lock decl 0x450b7c
40c07e:	83 3d c0 0a 45 00 00 	cmpl   $0x0,0x450ac0
40c085:	0f 84 a7 8a 01 00    	je     0x424b32
40c08b:	a1 5c 09 45 00       	mov    0x45095c,%eax
40c090:	85 c0                	test   %eax,%eax
40c092:	74 09                	je     0x40c09d
40c094:	ff 70 14             	push   0x14(%eax)
40c097:	ff 15 4c 11 45 00    	call   *0x45114c
40c09d:	8d b7 f0 00 00 00    	lea    0xf0(%edi),%esi
40c0a3:	8b ce                	mov    %esi,%ecx
40c0a5:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
40c0ac:	e8 be 01 00 00       	call   0x40c26f
40c0b1:	83 c6 08             	add    $0x8,%esi
40c0b4:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40c0b8:	80 7e 18 00          	cmpb   $0x0,0x18(%esi)
40c0bc:	74 07                	je     0x40c0c5
40c0be:	56                   	push   %esi
40c0bf:	ff 15 48 11 45 00    	call   *0x451148
40c0c5:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40c0cc:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
40c0d3:	c7 87 84 00 00 00 34 	movl   $0x401434,0x84(%edi)
40c0da:	14 40 00
40c0dd:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40c0e1:	8b 87 a8 00 00 00    	mov    0xa8(%edi),%eax
40c0e7:	85 c0                	test   %eax,%eax
40c0e9:	0f 85 5e 8a 01 00    	jne    0x424b4d
40c0ef:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40c0f3:	8d 87 8c 00 00 00    	lea    0x8c(%edi),%eax
40c0f9:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40c0fd:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
40c101:	74 07                	je     0x40c10a
40c103:	50                   	push   %eax
40c104:	ff 15 48 11 45 00    	call   *0x451148
40c10a:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40c111:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
40c118:	8b 4f 6c             	mov    0x6c(%edi),%ecx
40c11b:	c7 47 58 04 14 40 00 	movl   $0x401404,0x58(%edi)
40c122:	85 c9                	test   %ecx,%ecx
40c124:	74 1e                	je     0x40c144
40c126:	8b 01                	mov    (%ecx),%eax
40c128:	51                   	push   %ecx
40c129:	8b 70 08             	mov    0x8(%eax),%esi
40c12c:	81 fe 30 c2 40 00    	cmp    $0x40c230,%esi
40c132:	0f 85 30 8a 01 00    	jne    0x424b68
40c138:	e8 f3 00 00 00       	call   0x40c230
40c13d:	c7 47 6c 00 00 00 00 	movl   $0x0,0x6c(%edi)
40c144:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40c14b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c14e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c155:	59                   	pop    %ecx
40c156:	5f                   	pop    %edi
40c157:	5e                   	pop    %esi
40c158:	5b                   	pop    %ebx
40c159:	8b e5                	mov    %ebp,%esp
40c15b:	5d                   	pop    %ebp
40c15c:	c3                   	ret
40c15d:	50                   	push   %eax
40c15e:	ff 15 0c 30 45 00    	call   *0x45300c
40c164:	e9 d5 fe ff ff       	jmp    0x40c03e
40c169:	8b 01                	mov    (%ecx),%eax
40c16b:	51                   	push   %ecx
40c16c:	8b 70 08             	mov    0x8(%eax),%esi
40c16f:	8b ce                	mov    %esi,%ecx
40c171:	ff 15 c4 12 45 00    	call   *0x4512c4
40c177:	ff d6                	call   *%esi
40c179:	e9 98 fc ff ff       	jmp    0x40be16
40c17e:	8b 01                	mov    (%ecx),%eax
40c180:	51                   	push   %ecx
40c181:	8b 70 08             	mov    0x8(%eax),%esi
40c184:	8b ce                	mov    %esi,%ecx
40c186:	ff 15 c4 12 45 00    	call   *0x4512c4
40c18c:	ff d6                	call   *%esi
40c18e:	e9 91 fc ff ff       	jmp    0x40be24
40c193:	8b 01                	mov    (%ecx),%eax
40c195:	51                   	push   %ecx
40c196:	8b 70 08             	mov    0x8(%eax),%esi
40c199:	8b ce                	mov    %esi,%ecx
40c19b:	ff 15 c4 12 45 00    	call   *0x4512c4
40c1a1:	ff d6                	call   *%esi
40c1a3:	e9 8a fc ff ff       	jmp    0x40be32
40c1a8:	cc                   	int3
40c1a9:	cc                   	int3
40c1aa:	cc                   	int3
40c1ab:	cc                   	int3
40c1ac:	cc                   	int3
40c1ad:	cc                   	int3
40c1ae:	cc                   	int3
40c1af:	cc                   	int3
40c1b0:	8b ff                	mov    %edi,%edi
40c1b2:	55                   	push   %ebp
40c1b3:	8b ec                	mov    %esp,%ebp
40c1b5:	8b 51 04             	mov    0x4(%ecx),%edx
40c1b8:	83 fa ff             	cmp    $0xffffffff,%edx
40c1bb:	0f 85 b6 89 01 00    	jne    0x424b77
40c1c1:	b8 02 00 00 80       	mov    $0x80000002,%eax
40c1c6:	5d                   	pop    %ebp
40c1c7:	c2 04 00             	ret    $0x4
40c1ca:	8b ff                	mov    %edi,%edi
40c1cc:	55                   	push   %ebp
40c1cd:	8b ec                	mov    %esp,%ebp
40c1cf:	6a ff                	push   $0xffffffff
40c1d1:	68 0b 2c 42 00       	push   $0x422c0b
40c1d6:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c1dc:	50                   	push   %eax
40c1dd:	a1 54 02 45 00       	mov    0x450254,%eax
40c1e2:	33 c5                	xor    %ebp,%eax
40c1e4:	50                   	push   %eax
40c1e5:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c1e8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c1ee:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40c1f2:	74 1d                	je     0x40c211
40c1f4:	a1 80 0b 45 00       	mov    0x450b80,%eax
40c1f9:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40c1fd:	74 12                	je     0x40c211
40c1ff:	ff 75 08             	push   0x8(%ebp)
40c202:	6a 00                	push   $0x0
40c204:	ff 70 04             	push   0x4(%eax)
40c207:	ff 15 70 10 45 00    	call   *0x451070
40c20d:	85 c0                	test   %eax,%eax
40c20f:	74 0d                	je     0x40c21e
40c211:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c214:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c21b:	59                   	pop    %ecx
40c21c:	c9                   	leave
40c21d:	c3                   	ret
40c21e:	ff 15 54 10 45 00    	call   *0x451054
40c224:	eb eb                	jmp    0x40c211
40c226:	cc                   	int3
40c227:	cc                   	int3
40c228:	cc                   	int3
40c229:	cc                   	int3
40c22a:	cc                   	int3
40c22b:	cc                   	int3
40c22c:	cc                   	int3
40c22d:	cc                   	int3
40c22e:	cc                   	int3
40c22f:	cc                   	int3
40c230:	8b ff                	mov    %edi,%edi
40c232:	55                   	push   %ebp
40c233:	8b ec                	mov    %esp,%ebp
40c235:	56                   	push   %esi
40c236:	8b 75 08             	mov    0x8(%ebp),%esi
40c239:	57                   	push   %edi
40c23a:	83 cf ff             	or     $0xffffffff,%edi
40c23d:	f0 0f c1 7e 04       	lock xadd %edi,0x4(%esi)
40c242:	4f                   	dec    %edi
40c243:	74 08                	je     0x40c24d
40c245:	8b c7                	mov    %edi,%eax
40c247:	5f                   	pop    %edi
40c248:	5e                   	pop    %esi
40c249:	5d                   	pop    %ebp
40c24a:	c2 04 00             	ret    $0x4
40c24d:	85 f6                	test   %esi,%esi
40c24f:	74 f4                	je     0x40c245
40c251:	8b 06                	mov    (%esi),%eax
40c253:	53                   	push   %ebx
40c254:	6a 01                	push   $0x1
40c256:	8b 58 0c             	mov    0xc(%eax),%ebx
40c259:	81 fb 10 70 41 00    	cmp    $0x417010,%ebx
40c25f:	0f 85 27 89 01 00    	jne    0x424b8c
40c265:	8b ce                	mov    %esi,%ecx
40c267:	e8 a4 ad 00 00       	call   0x417010
40c26c:	5b                   	pop    %ebx
40c26d:	eb d6                	jmp    0x40c245
40c26f:	6a 08                	push   $0x8
40c271:	b8 26 2c 42 00       	mov    $0x422c26,%eax
40c276:	e8 f2 33 01 00       	call   0x41f66d
40c27b:	8b f9                	mov    %ecx,%edi
40c27d:	8b 47 04             	mov    0x4(%edi),%eax
40c280:	85 c0                	test   %eax,%eax
40c282:	0f 85 15 89 01 00    	jne    0x424b9d
40c288:	83 7f 30 00          	cmpl   $0x0,0x30(%edi)
40c28c:	75 08                	jne    0x40c296
40c28e:	33 c0                	xor    %eax,%eax
40c290:	e8 a6 33 01 00       	call   0x41f63b
40c295:	c3                   	ret
40c296:	83 67 30 00          	andl   $0x0,0x30(%edi)
40c29a:	eb f2                	jmp    0x40c28e
40c29c:	cc                   	int3
40c29d:	cc                   	int3
40c29e:	cc                   	int3
40c29f:	cc                   	int3
40c2a0:	8b ff                	mov    %edi,%edi
40c2a2:	55                   	push   %ebp
40c2a3:	8b ec                	mov    %esp,%ebp
40c2a5:	83 ec 0c             	sub    $0xc,%esp
40c2a8:	53                   	push   %ebx
40c2a9:	8b d9                	mov    %ecx,%ebx
40c2ab:	56                   	push   %esi
40c2ac:	57                   	push   %edi
40c2ad:	8b 03                	mov    (%ebx),%eax
40c2af:	8b 70 18             	mov    0x18(%eax),%esi
40c2b2:	81 fe 60 3c 41 00    	cmp    $0x413c60,%esi
40c2b8:	0f 85 9a 89 01 00    	jne    0x424c58
40c2be:	80 7b 20 00          	cmpb   $0x0,0x20(%ebx)
40c2c2:	74 10                	je     0x40c2d4
40c2c4:	8d 4b 08             	lea    0x8(%ebx),%ecx
40c2c7:	e8 d4 f8 ff ff       	call   0x40bba0
40c2cc:	84 c0                	test   %al,%al
40c2ce:	0f 84 58 89 01 00    	je     0x424c2c
40c2d4:	8b 73 24             	mov    0x24(%ebx),%esi
40c2d7:	85 f6                	test   %esi,%esi
40c2d9:	0f 84 8a 89 01 00    	je     0x424c69
40c2df:	8b 45 08             	mov    0x8(%ebp),%eax
40c2e2:	8b 08                	mov    (%eax),%ecx
40c2e4:	3b 0e                	cmp    (%esi),%ecx
40c2e6:	75 48                	jne    0x40c330
40c2e8:	8b 7e 0c             	mov    0xc(%esi),%edi
40c2eb:	8d 4b 24             	lea    0x24(%ebx),%ecx
40c2ee:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c2f1:	85 ff                	test   %edi,%edi
40c2f3:	75 49                	jne    0x40c33e
40c2f5:	ff 4b 28             	decl   0x28(%ebx)
40c2f8:	8d 45 ff             	lea    -0x1(%ebp),%eax
40c2fb:	50                   	push   %eax
40c2fc:	56                   	push   %esi
40c2fd:	e8 be 00 00 00       	call   0x40c3c0
40c302:	8b f0                	mov    %eax,%esi