40fb9a:	50                   	push   %eax
40fb9b:	68 30 6a 40 00       	push   $0x406a30
40fba0:	8b 31                	mov    (%ecx),%esi
40fba2:	51                   	push   %ecx
40fba3:	8b 36                	mov    (%esi),%esi
40fba5:	8b ce                	mov    %esi,%ecx
40fba7:	ff 15 c4 12 45 00    	call   *0x4512c4
40fbad:	ff d6                	call   *%esi
40fbaf:	85 c0                	test   %eax,%eax
40fbb1:	0f 88 fc 94 01 00    	js     0x4290b3
40fbb7:	8b 45 d8             	mov    -0x28(%ebp),%eax
40fbba:	89 45 c8             	mov    %eax,-0x38(%ebp)
40fbbd:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40fbc1:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40fbc4:	8b 45 d8             	mov    -0x28(%ebp),%eax
40fbc7:	51                   	push   %ecx
40fbc8:	6a 00                	push   $0x0
40fbca:	6a 00                	push   $0x0
40fbcc:	8b 30                	mov    (%eax),%esi
40fbce:	50                   	push   %eax
40fbcf:	8b b6 14 01 00 00    	mov    0x114(%esi),%esi
40fbd5:	8b ce                	mov    %esi,%ecx
40fbd7:	ff 15 c4 12 45 00    	call   *0x4512c4
40fbdd:	ff d6                	call   *%esi
40fbdf:	3d 3c 10 04 80       	cmp    $0x8004103c,%eax
40fbe4:	0f 85 bf 94 01 00    	jne    0x4290a9
40fbea:	8b 75 08             	mov    0x8(%ebp),%esi
40fbed:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fbf0:	83 c6 60             	add    $0x60,%esi
40fbf3:	50                   	push   %eax
40fbf4:	8b ce                	mov    %esi,%ecx
40fbf6:	e8 55 02 00 00       	call   0x40fe50
40fbfb:	85 c0                	test   %eax,%eax
40fbfd:	0f 85 cb 01 00 00    	jne    0x40fdce
40fc03:	8b 45 f0             	mov    -0x10(%ebp),%eax
40fc06:	50                   	push   %eax
40fc07:	8b 08                	mov    (%eax),%ecx
40fc09:	8b 79 04             	mov    0x4(%ecx),%edi
40fc0c:	8b cf                	mov    %edi,%ecx
40fc0e:	ff 15 c4 12 45 00    	call   *0x4512c4
40fc14:	ff d7                	call   *%edi
40fc16:	8b 7d 08             	mov    0x8(%ebp),%edi
40fc19:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40fc1c:	01 47 5c             	add    %eax,0x5c(%edi)
40fc1f:	8b 47 5c             	mov    0x5c(%edi),%eax
40fc22:	3b 05 78 02 45 00    	cmp    0x450278,%eax
40fc28:	73 53                	jae    0x40fc7d
40fc2a:	8b 7d ec             	mov    -0x14(%ebp),%edi
40fc2d:	8b 75 e0             	mov    -0x20(%ebp),%esi
40fc30:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40fc34:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40fc37:	e8 b4 01 00 00       	call   0x40fdf0
40fc3c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40fc43:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40fc46:	e8 a5 01 00 00       	call   0x40fdf0
40fc4b:	8b 45 0c             	mov    0xc(%ebp),%eax
40fc4e:	43                   	inc    %ebx
40fc4f:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40fc52:	85 f6                	test   %esi,%esi
40fc54:	0f 89 e8 fe ff ff    	jns    0x40fb42
40fc5a:	80 7f 18 00          	cmpb   $0x0,0x18(%edi)
40fc5e:	74 07                	je     0x40fc67
40fc60:	57                   	push   %edi
40fc61:	ff 15 40 11 45 00    	call   *0x451140
40fc67:	8b c6                	mov    %esi,%eax
40fc69:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40fc6c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40fc73:	59                   	pop    %ecx
40fc74:	5f                   	pop    %edi
40fc75:	5e                   	pop    %esi
40fc76:	5b                   	pop    %ebx
40fc77:	8b e5                	mov    %ebp,%esp
40fc79:	5d                   	pop    %ebp
40fc7a:	c2 0c 00             	ret    $0xc
40fc7d:	8b 47 70             	mov    0x70(%edi),%eax
40fc80:	33 c9                	xor    %ecx,%ecx
40fc82:	89 45 e8             	mov    %eax,-0x18(%ebp)
40fc85:	ba 04 00 00 00       	mov    $0x4,%edx
40fc8a:	f7 e2                	mul    %edx
40fc8c:	0f 90 c1             	seto   %cl
40fc8f:	f7 d9                	neg    %ecx
40fc91:	0b c8                	or     %eax,%ecx
40fc93:	a1 80 0b 45 00       	mov    0x450b80,%eax
40fc98:	8b 50 08             	mov    0x8(%eax),%edx
40fc9b:	8b 40 04             	mov    0x4(%eax),%eax
40fc9e:	83 e2 05             	and    $0x5,%edx
40fca1:	83 ca 08             	or     $0x8,%edx
40fca4:	85 c0                	test   %eax,%eax
40fca6:	0f 84 d1 93 01 00    	je     0x42907d
40fcac:	51                   	push   %ecx
40fcad:	52                   	push   %edx
40fcae:	50                   	push   %eax
40fcaf:	ff 15 78 10 45 00    	call   *0x451078
40fcb5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fcb8:	85 c0                	test   %eax,%eax
40fcba:	0f 84 b7 93 01 00    	je     0x429077
40fcc0:	8d 45 d0             	lea    -0x30(%ebp),%eax
40fcc3:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40fcca:	50                   	push   %eax
40fccb:	8b ce                	mov    %esi,%ecx
40fccd:	e8 be 01 00 00       	call   0x40fe90
40fcd2:	85 c0                	test   %eax,%eax
40fcd4:	75 4f                	jne    0x40fd25
40fcd6:	8b 7d e0             	mov    -0x20(%ebp),%edi
40fcd9:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40fcdc:	8d 64 24 00          	lea    0x0(%esp),%esp
40fce0:	3b fb                	cmp    %ebx,%edi
40fce2:	73 3b                	jae    0x40fd1f
40fce4:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40fce7:	8b 45 d0             	mov    -0x30(%ebp),%eax
40fcea:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
40fced:	47                   	inc    %edi
40fcee:	8b 06                	mov    (%esi),%eax
40fcf0:	3b 46 04             	cmp    0x4(%esi),%eax
40fcf3:	75 08                	jne    0x40fcfd
40fcf5:	8b 46 08             	mov    0x8(%esi),%eax
40fcf8:	3b 46 0c             	cmp    0xc(%esi),%eax
40fcfb:	74 13                	je     0x40fd10
40fcfd:	ff 46 08             	incl   0x8(%esi)
40fd00:	81 7e 08 00 01 00 00 	cmpl   $0x100,0x8(%esi)
40fd07:	0f 84 7d 93 01 00    	je     0x42908a
40fd0d:	ff 4e 10             	decl   0x10(%esi)
40fd10:	8d 45 d0             	lea    -0x30(%ebp),%eax
40fd13:	8b ce                	mov    %esi,%ecx
40fd15:	50                   	push   %eax
40fd16:	e8 75 01 00 00       	call   0x40fe90
40fd1b:	85 c0                	test   %eax,%eax
40fd1d:	74 c1                	je     0x40fce0
40fd1f:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40fd22:	8b 7d 08             	mov    0x8(%ebp),%edi
40fd25:	c7 47 5c 00 00 00 00 	movl   $0x0,0x5c(%edi)
40fd2c:	8b 7d ec             	mov    -0x14(%ebp),%edi
40fd2f:	80 7f 18 00          	cmpb   $0x0,0x18(%edi)
40fd33:	74 07                	je     0x40fd3c
40fd35:	57                   	push   %edi
40fd36:	ff 15 40 11 45 00    	call   *0x451140
40fd3c:	8b 45 08             	mov    0x8(%ebp),%eax
40fd3f:	8d 70 28             	lea    0x28(%eax),%esi
40fd42:	89 75 c0             	mov    %esi,-0x40(%ebp)
40fd45:	f0 ff 06             	lock incl (%esi)
40fd48:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40fd4c:	83 78 58 00          	cmpl   $0x0,0x58(%eax)
40fd50:	0f 85 47 93 01 00    	jne    0x42909d
40fd56:	8b 40 34             	mov    0x34(%eax),%eax
40fd59:	ff 75 e4             	push   -0x1c(%ebp)
40fd5c:	ff 75 e8             	push   -0x18(%ebp)
40fd5f:	8b 08                	mov    (%eax),%ecx
40fd61:	50                   	push   %eax
40fd62:	8b 79 0c             	mov    0xc(%ecx),%edi
40fd65:	8b cf                	mov    %edi,%ecx
40fd67:	ff 15 c4 12 45 00    	call   *0x4512c4
40fd6d:	ff d7                	call   *%edi
40fd6f:	8b 7d ec             	mov    -0x14(%ebp),%edi
40fd72:	89 45 e0             	mov    %eax,-0x20(%ebp)
40fd75:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40fd79:	f0 ff 0e             	lock decl (%esi)
40fd7c:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40fd80:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
40fd87:	76 28                	jbe    0x40fdb1
40fd89:	8b 7d cc             	mov    -0x34(%ebp),%edi
40fd8c:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40fd8f:	90                   	nop
40fd90:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fd93:	8b 04 b8             	mov    (%eax,%edi,4),%eax
40fd96:	50                   	push   %eax
40fd97:	8b 08                	mov    (%eax),%ecx
40fd99:	8b 71 08             	mov    0x8(%ecx),%esi
40fd9c:	8b ce                	mov    %esi,%ecx
40fd9e:	ff 15 c4 12 45 00    	call   *0x4512c4
40fda4:	ff d6                	call   *%esi
40fda6:	47                   	inc    %edi
40fda7:	3b fb                	cmp    %ebx,%edi
40fda9:	72 e5                	jb     0x40fd90
40fdab:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40fdae:	8b 7d ec             	mov    -0x14(%ebp),%edi
40fdb1:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40fdb4:	e8 57 02 00 00       	call   0x410010
40fdb9:	80 7f 18 00          	cmpb   $0x0,0x18(%edi)
40fdbd:	74 0f                	je     0x40fdce
40fdbf:	8b cf                	mov    %edi,%ecx
40fdc1:	e8 da bd ff ff       	call   0x40bba0
40fdc6:	84 c0                	test   %al,%al
40fdc8:	0f 85 5f fe ff ff    	jne    0x40fc2d
40fdce:	be 06 10 04 80       	mov    $0x80041006,%esi
40fdd3:	e9 58 fe ff ff       	jmp    0x40fc30
40fdd8:	b8 33 10 04 80       	mov    $0x80041033,%eax
40fddd:	e9 87 fe ff ff       	jmp    0x40fc69
40fde2:	cc                   	int3
40fde3:	cc                   	int3
40fde4:	cc                   	int3
40fde5:	cc                   	int3
40fde6:	cc                   	int3
40fde7:	cc                   	int3
40fde8:	cc                   	int3
40fde9:	cc                   	int3
40fdea:	cc                   	int3
40fdeb:	cc                   	int3
40fdec:	cc                   	int3
40fded:	cc                   	int3
40fdee:	cc                   	int3
40fdef:	cc                   	int3
40fdf0:	8b ff                	mov    %edi,%edi
40fdf2:	55                   	push   %ebp
40fdf3:	8b ec                	mov    %esp,%ebp
40fdf5:	6a ff                	push   $0xffffffff
40fdf7:	68 10 31 42 00       	push   $0x423110
40fdfc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40fe02:	50                   	push   %eax
40fe03:	56                   	push   %esi
40fe04:	57                   	push   %edi
40fe05:	a1 54 02 45 00       	mov    0x450254,%eax
40fe0a:	33 c5                	xor    %ebp,%eax
40fe0c:	50                   	push   %eax
40fe0d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fe10:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40fe16:	8b f9                	mov    %ecx,%edi
40fe18:	8b 07                	mov    (%edi),%eax
40fe1a:	85 c0                	test   %eax,%eax
40fe1c:	74 10                	je     0x40fe2e
40fe1e:	8b 10                	mov    (%eax),%edx
40fe20:	50                   	push   %eax
40fe21:	8b 72 08             	mov    0x8(%edx),%esi
40fe24:	8b ce                	mov    %esi,%ecx
40fe26:	ff 15 c4 12 45 00    	call   *0x4512c4
40fe2c:	ff d6                	call   *%esi
40fe2e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40fe34:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40fe37:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40fe3e:	59                   	pop    %ecx
40fe3f:	5f                   	pop    %edi
40fe40:	5e                   	pop    %esi
40fe41:	8b e5                	mov    %ebp,%esp
40fe43:	5d                   	pop    %ebp
40fe44:	c3                   	ret
40fe45:	cc                   	int3
40fe46:	cc                   	int3
40fe47:	cc                   	int3
40fe48:	cc                   	int3
40fe49:	cc                   	int3
40fe4a:	cc                   	int3
40fe4b:	cc                   	int3
40fe4c:	cc                   	int3
40fe4d:	cc                   	int3
40fe4e:	cc                   	int3
40fe4f:	cc                   	int3
40fe50:	8b ff                	mov    %edi,%edi
40fe52:	55                   	push   %ebp
40fe53:	8b ec                	mov    %esp,%ebp
40fe55:	56                   	push   %esi
40fe56:	8b f1                	mov    %ecx,%esi
40fe58:	33 c9                	xor    %ecx,%ecx
40fe5a:	39 4e 14             	cmp    %ecx,0x14(%esi)
40fe5d:	0f 84 64 92 01 00    	je     0x4290c7
40fe63:	ff 46 0c             	incl   0xc(%esi)
40fe66:	53                   	push   %ebx
40fe67:	8b 5e 04             	mov    0x4(%esi),%ebx
40fe6a:	57                   	push   %edi
40fe6b:	8b 7e 0c             	mov    0xc(%esi),%edi
40fe6e:	81 ff 00 01 00 00    	cmp    $0x100,%edi
40fe74:	0f 84 63 92 01 00    	je     0x4290dd
40fe7a:	8b 45 08             	mov    0x8(%ebp),%eax
40fe7d:	8b 00                	mov    (%eax),%eax
40fe7f:	89 04 bb             	mov    %eax,(%ebx,%edi,4)
40fe82:	ff 46 10             	incl   0x10(%esi)
40fe85:	5f                   	pop    %edi
40fe86:	8b c1                	mov    %ecx,%eax
40fe88:	5b                   	pop    %ebx
40fe89:	5e                   	pop    %esi
40fe8a:	5d                   	pop    %ebp
40fe8b:	c2 04 00             	ret    $0x4
40fe8e:	cc                   	int3
40fe8f:	cc                   	int3
40fe90:	8b ff                	mov    %edi,%edi
40fe92:	55                   	push   %ebp
40fe93:	8b ec                	mov    %esp,%ebp
40fe95:	8b 11                	mov    (%ecx),%edx
40fe97:	3b 51 04             	cmp    0x4(%ecx),%edx
40fe9a:	75 08                	jne    0x40fea4
40fe9c:	8b 41 08             	mov    0x8(%ecx),%eax
40fe9f:	3b 41 0c             	cmp    0xc(%ecx),%eax
40fea2:	74 12                	je     0x40feb6
40fea4:	8b 49 08             	mov    0x8(%ecx),%ecx
40fea7:	33 c0                	xor    %eax,%eax
40fea9:	8b 54 8a 04          	mov    0x4(%edx,%ecx,4),%edx
40fead:	8b 4d 08             	mov    0x8(%ebp),%ecx
40feb0:	89 11                	mov    %edx,(%ecx)
40feb2:	5d                   	pop    %ebp
40feb3:	c2 04 00             	ret    $0x4
40feb6:	b8 02 00 00 80       	mov    $0x80000002,%eax
40febb:	5d                   	pop    %ebp
40febc:	c2 04 00             	ret    $0x4
40febf:	cc                   	int3
40fec0:	8b ff                	mov    %edi,%edi
40fec2:	55                   	push   %ebp
40fec3:	8b ec                	mov    %esp,%ebp
40fec5:	83 ec 18             	sub    $0x18,%esp
40fec8:	53                   	push   %ebx
40fec9:	56                   	push   %esi
40feca:	57                   	push   %edi
40fecb:	8b d9                	mov    %ecx,%ebx
40fecd:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40fed4:	8b fa                	mov    %edx,%edi
40fed6:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40fed9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fedc:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fedf:	51                   	push   %ecx
40fee0:	53                   	push   %ebx
40fee1:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40fee7:	8b 03                	mov    (%ebx),%eax
40fee9:	8b 70 20             	mov    0x20(%eax),%esi
40feec:	8b ce                	mov    %esi,%ecx
40feee:	ff 15 c4 12 45 00    	call   *0x4512c4
40fef4:	ff d6                	call   *%esi
40fef6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40fef9:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fefc:	85 c9                	test   %ecx,%ecx
40fefe:	0f 84 0c 92 01 00    	je     0x429110
40ff04:	33 f6                	xor    %esi,%esi
40ff06:	85 c9                	test   %ecx,%ecx
40ff08:	0f 84 e0 00 00 00    	je     0x40ffee
40ff0e:	8b ff                	mov    %edi,%edi
40ff10:	8b 3b                	mov    (%ebx),%edi
40ff12:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ff15:	6a 00                	push   $0x0
40ff17:	50                   	push   %eax
40ff18:	56                   	push   %esi
40ff19:	8b 7f 28             	mov    0x28(%edi),%edi
40ff1c:	8b cf                	mov    %edi,%ecx
40ff1e:	53                   	push   %ebx
40ff1f:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40ff26:	ff 15 c4 12 45 00    	call   *0x4512c4
40ff2c:	ff d7                	call   *%edi
40ff2e:	85 c0                	test   %eax,%eax
40ff30:	0f 88 c0 91 01 00    	js     0x4290f6
40ff36:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ff39:	33 c9                	xor    %ecx,%ecx
40ff3b:	40                   	inc    %eax
40ff3c:	ba 02 00 00 00       	mov    $0x2,%edx
40ff41:	f7 e2                	mul    %edx
40ff43:	0f 90 c1             	seto   %cl
40ff46:	f7 d9                	neg    %ecx
40ff48:	0b c8                	or     %eax,%ecx
40ff4a:	a1 80 0b 45 00       	mov    0x450b80,%eax
40ff4f:	8b 50 08             	mov    0x8(%eax),%edx
40ff52:	8b 40 04             	mov    0x4(%eax),%eax
40ff55:	83 e2 05             	and    $0x5,%edx
40ff58:	83 ca 08             	or     $0x8,%edx
40ff5b:	85 c0                	test   %eax,%eax
40ff5d:	0f 84 a3 91 01 00    	je     0x429106
40ff63:	51                   	push   %ecx